20190927结对项目编程总结
Posted cancerhzc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20190927结对项目编程总结相关的知识,希望对你有一定的参考价值。
结对编程项目:带UI的小初高数学学习软件
一、需求
用户:
小学、初中和高中学生。
功能:
- 用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;
- 用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
- 密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
- 用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,……,直至最后一题;
- 最后一题提交后,界面显示分数,分数根据答对的百分比计算;
- 用户在分数界面可选择退出或继续做题;
- 小初高数学题目要求见个人项目。
二、关于个人项目复用
在做个人项目的时候,考虑到对C++的熟悉,采用了C++语言。而本次结对编程项目一是要UI,二是要发送验证码。在上学期的《Java编程思想》课程讲到了Java GUI设计,也提到了Java 网络编程。后来,我们看阿里云的短信验证码提供了Java的API而没有C++的API,因此和队友商量之后果断变更Java。
复用难度?
1.代码复用。
由于个人项目做C++时也采用了类的结构以及相似的方法等,部分类和方法可以移植到Java。
2.出题逻辑
在做个人项目的时候就有此类疑问:题目出的要不要符合高中生的实际情况?初中高中生成的题目一般都是不用计算器算出答案的,比如三角函数,一般都是特殊角度的计算。在个人项目时,我无意中看到了其他同学的博客,他的队友采用的是“题库”的方式。因此我们认为题库更合理,于是我们转战“题库”出题模式。
3.复用谁的代码呢?
我在个人项目的博客中提到,我的队友的代码模块化更高,健壮性更好,因此采用了他的个人项目代码。
以上两张图是队友的C++和Java的类框架。
三、结对编程项目总结
这次结对编程项目用到了Java的GUI和网络编程,这也是我第一次能调用其他接口来实现功能,感觉很有趣。由于我们数据库才刚刚起步,且没有服务器,故没有建立DAL层(数据访问层)来专门读写数据。本次项目的UI和业务逻辑层是并行,由两人分工负责,我们俩的环境也不大一样(队友用的JDK 1.8,我使用的JDK 11,后来换成了13;目的是方便不同环境新旧版本兼容性查看),这对Debug相关程序及模块、检测兼容性也有一定的帮助。总的来说,本次项目遇到了很多之前没有遇见过的问题,获益匪浅。
四、经验教训
1.代码及程序读文件中的中文乱码问题
我们的txt文本和代码默认使用GBK编码格式,而队友的代码使用的是UTF-8编码,切换为UTF-8即可显示正常,有中文乱码在代码中(非注释)是编译不通过的哦!
今天部署Tomcat7.0也是因为乱码问题导致部署不成功!我又是升级JDK又是升级Eclipse版本的。。。原来只是编码格式问题。。。
有中文一定要注意编码问题!
方法:选中文件,右键,Properties,选择UTF-8。
2.关于版本
解决了乱码问题,为啥在队友电脑上运行正常的程序,在我的电脑上运行会有异常呢,我的电脑也加入了相应的包呀!
找来找去,原来是JDK版本问题!队友的电脑的环境是JDK1.8,而我的电脑是JDK11!JDK9.0之后的版本没有自带jaxb-api-2.3.1.jar扩展包,导致编译不通过!加入扩展包即解决问题。
以后还是要慎重选择最新版本,尽量使用稳定版本。
以上是关于20190927结对项目编程总结的主要内容,如果未能解决你的问题,请参考以下文章