结对编程项目有感

结对编程项目在小伙伴和我的努力下终于做完了。最大的感受就是我俩都进步了很多。下面就来说说我们的感想。

 

还是先说说复用个人项目实现结对编程项目吧!

这次用的个人项目是本人上次个人项目中生成小初高题目的工程。如何复用?只是把上次项目中生成题目的函数拿过来放在这次的项目生成题目的类中作为引用。然后在出题界面的函数中调用生成题目的函数。

 

下面就来说说感想。

刚开始老师说结对编程项目就是把上次的项目做成图形化界面就行,我们的第一感觉是:哇,感觉好像不是很难的样子!因为上一次的个人项目就想着要不要做出图形化界面,但最后由于对图形化的处理不太熟悉和时间当时不充足的原因就放弃了。这次就摩肩擦掌,跃跃欲试!

第一步:设计。根据老师文档中的要求,设计要用几个界面来实现整个过程。在草纸上大致画了几个界面的结构布局后,我们就开始准备下一步了。

第二步:开始做界面。

做界面之前,我和小伙伴先对JAVA GUI的一些知识先复习了一遍,大致明白了一些组件和容器的基本特性和调用函数方法之后,才开始着手做界面的。

这里我做界面并没有自己写窗体、组件和布局的代码,而是借助了eclipse中的WindowsBuilder这个插件,直接选择组件,设置属性,布局,生成代码就行了!

扫描二维码关注公众号,回复: 3459478 查看本文章

(但是要想熟练运用这个工具,是建立在对JAVA GUI比较熟悉的基础上的。刚开始不熟悉,emmmm,并不会用这个~~~)

但是事件的响应代码肯定是要自己写的。反正不管怎么说,这个插件用起来还是很方便的,帮我们省了不少功夫,最后调试起来也很方便。

我是先把整个过程的六个界面全部做完之后,感觉比较满意后,才开始写事件响应的!

第三步:为做好的界面中的组件添加响应事件。(感觉这才是整个项目中最重要也是较复杂的部分)

从登录界面开始,为界面中的按钮添加响应事件。其间要调用各种函数,传递各种参数,等等。总之要把各种问题考虑的比较细致,在此我就不一一赘述了。具体遇到的问题会在后文中呈现。

第四步:前三步全部做完后,基本项目就做得差不多了。最后就是自己先测试一下,程序运行的咋样。经过测试,程序并没有我和小伙伴想像中的那么完美。其间也会抛出异常,运行报错等等各种情况。这个我们一般是根据报错信息定位到有bug的那一段,然后一点一点找bug。其间也会各种讨论争辩等等,尽管有时候观点有分歧,但最后还是谁的方法更好就用谁的!最后bug解决!

 

做项目的过程中不可避免地遇到了不少的困难:

1、印象最深的有一个困难是:全局变量的问题。就是要输入生成题目的数量,然后跳转到下一界面生成题目。要把题目总数从一个类传到另一个类中,我当时想了很长时间,也试了很多种办法,都没有得到一个合理又完美的方法。最后和同学讨论了一下,经过同学提点,最后采用了JAVA中全局变量的方法。把题目总数值传给全局变量,然后下一个类想得到生成题目总数值得时候,就从全局变量那里取就行了。最后用了全局变量,也顺利解决了后面的许多问题。总之,很好!

2、阿里云那个生成短信验证码的问题。emmmm,也曾在这个问题上头疼了好一阵儿。最开始是,对大致的流程不熟悉。尽管阿里云上面有介绍,但是我刚开始可能是内心急躁吧,感觉像读天书一样,咋感觉它写的辣么晦涩难懂呢~~~然后就放了一天,第二天耐着性子按照流程一步一步来。(后话:最后也正是因为太按照流程一步一步来了,最后也是栽了个大跟头~~~)然后,就是申请短信签名,申请了两三次不能通过。最后大胆尝试注册了一个微信小程序,然后放上截图,就通过了。接下来就是申请短信模板,第一次也没有通过,第二次仔细看了要求,修改了一下就通过了。最后,就到了运行测试程序,然后添加到自己的程序中的时候了。

嘤嘤嘤~~~~按照阿里云上面说的,我们没有学过maven,所以我就又跑去学maven,学了一点还是有点儿懵逼。总之最后用maven搞了好长时间,各种操作,最后由于没有经验还是没搞好!!!

最后的最后我才发现,jar包就在下载文件里面有啊,我为啥还要搞什么劳什子的maven,啊啊啊!!!气的要吐血~~~~

总之,阿里云验证码这部分真的费了不少心血,也花了不少时间和精力,最后万般无奈准备向助教请教一下的时候,突然搞好了!!!生活就是这么戏剧,发送短信的那一刻,真的体验到了很久不曾体验的激动!(可能是自己太菜了,哈哈哈~~~)

3、生成题目的函数,在第一季的时候,小伙伴看了我的代码,就给我提了不少建议。比如高中题目没有平方、根号和括号等等。第二季的时候当然要做一下修改,尽量追求完美。现在的我看我之前写的代码,才隔了几天,我就有点儿不想看它了,主人也嫌弃它,哈哈哈~~~

然后计算生成的题目的正确答案,也费了一番心思。最开始是用普通的方法计算,最后发现优先级没有考虑全面,一个括号以上的情况就算出来的答案是错误的。最后跟小伙伴讨论了这个问题,最终用了栈来解决了。

 

最后的总结:做项目的过程中真的遇到了不少困难,但是真的就是解决一个个困难和bug的过程中努力查资料,思考解决问题的方法,和队友一起讨论各抒己见,让我和小伙伴切切实实地感受到了进步,以及最后问题解决的喜悦!总之,收获还是有的!但我们也同样意识到了前进的空间还很大,自己还是需要不断努力!

附:

生成题目小程序类包具体分布见下:

 

包assignment中的Var类:声明保存全局变量。几个界面之间传数据(如输入生成的题目总数时,要把这个数据传到下一个生成具体题目的界面),最开始不知道怎么传数据比较好,最后采用了全局变量的方法。

包gui_designer:这个包下面的几个类分别是运行过程中我们操纵的6个界面。

Login:登录界面(如果账号之前注册过,可以直接输入手机号和密码进行登录,无需再注册)

ShortMessage_register:短信注册界面(如果需要短信注册,则输入手机号码,获取验证码,输入验证码,跳转到下一界面)

Set_password:设置密码界面。短信获取验证码并且输入正确后,需要为你的账号设置密码,两次确认密码输入一致(如果不一致会弹出界面提示您重新输入),直接登录~~~~

Choose:选择界面。选择需要生成题目的类型,小学、初中or高中。遵从老师发的文档要求,把出题数目也做在了这个界面,输入出题数目后,点击“生成题目”按钮,跳转到生成题目界面!

Exercise:出的题目展示界面。根据题目选择正确答案后,点击“提交”,会进行下一题。如果选择答案正确,界面会弹出答案正确的提示,反之,如果答案错误,界面也会弹出答案错误的提示。哈哈,这个功能便于助教判断本人的出题给出的答案是否正确,特地加的一个额外小功能。

Last:最后总结界面:总结总共做了多少题,做对了多少题,按照百分制最后总共得了多少分。然后可以做出选择,是继续做题还是退出程序。如果选择继续做题,则会跳转到Choose界面,继续选择出题类型和数目,继续做题!如果选择退出,则退出程序,停止运行!

 

猜你喜欢

转载自www.cnblogs.com/qqzjyywx/p/9749934.html