1、项目技术选择
个人项目是一个控制台版本的中小学数学练习项目,自认为自己完成的还可以,但是本次结对项目就要求严格一些,平心而论,难很多。主要有两点:一是没有开发经验,做中学确实是一个非常好的提高途径,但是学习难度必然存在,所以不得不说难。二是UI设计,理工男的直觉,这就很难。但是,做中学,软件工程的程序员是不惧怕开发的。在一轮激烈的讨论之后,我和我的好队友确定了用C++作为主要实现的开发语言,使用QT Designer作为UI的主要实现的工具,事实证明,我们的选择还是比较好的。没有遇到特别大的困难。
2、代码复用
首先,在这次结对编程中,QT是第一次接触,属于全新的学习内容。而C++有一定的基础,所以虽然QT是面向对象的写法,每一个页面甚至页面中的组件都是一个类,这对我们的开发有一定的要求。个人项目中,我们仅仅要求实现出题部分,尽管也是结对项目的核心内容,但是还要避免一些极端情况,稍微贴近实际一下。所以参考了一部分个人项目的代码,比如出题的整体逻辑完全可以参考个人项目,流程逻辑也可以根据个人项目来设计,但是在结对项目中需要设置随机的四个选项,题目太难要稍微降低难度,将一些人工难算的算式简化,控制台实现只有输入即可控制,转换成UI页面,我们就可以实现多个入口,多个转折,页面的跳转逻辑设计变得更加复杂一些。
3、个人开发任务
我和队友大致的方向是我做前端页面实现,队友实现后台出题逻辑。在开发过程中,不得不说,先行设计是一个重要的环节,中途我很多操作当时看起来是需要改动的需求,到了后期又将这些改动复原,这样的反复有一些,耽误了我的进度,不过在这个过程中,我确实也学到了很多的东西,QT使用也确实变得更加流畅。我大致写了6个页面:
第一个是LoginDlg,提供“登录”功能以及“注册”和“退出”接口,如下:

第二个是RegisterDlg,提供注册功能,如下:

第三个是MainWindows,提供选择难度、题目数量进行组卷功能、注销登录功能以及修改密码接口,如下:

第四个是changeDlg,提供修改密码功能,如下:

第五个是MathpaperDlg,主要实现做题界面以及提示答案便于测试,在最后一题可以选择交卷:

第六个是ScoreDlg,提供用户的试卷的评分表现:

4、使用文档
4.1、注册
用户注册依次输入用户名、两次匹配相同的密码,点击“注册”即可得到Trainer专属您的使用账户。
友情提醒:注意密码6-10位,必须含大小写字母和数字。
4.2、登录
用户在注册成功后,在登录界面依次输入用户名、密码点击“登录”即可进入Trainer进行使用,用户可根据自身情况选择。
4.3、已登录状态
4.3.1、用户在登录状态下可以选择修改自己的密码,再依次输入用户名、原密码、两次匹配相同的新密码后点4、击“修改密码”即可修改您的用户密码。
4.3.2、用户可以选择注销登录,回到登录页面进行重新登录。
4.4、使用Trainer
4.4.1、用户在登录后选择需要进行练习的难度等级(小学、初中、高中)和练习题目的数量(10-30)后,选择“开始练习”即可出现为用户单独准备的独一无二的试卷。
4.4.2、考试界面,左上角显示题号、右上角显示剩余试卷(每题5分钟),屏幕正中则是题干部分,用户通过选择答案以及上一题、下一题进行操作答题。
4.4.3、在考试界面,正在考试的下方有“提示”按钮,可以为学生提示正确答案,便于练习自我提高。
4.4.4、用户在选择了一题的答案后,系统会自动记录选择过的答案,再次回到该题时会自动回复到先前的状态。
4.4.5、用户在答完最后一题选择交卷或者时间耗尽之后,系统会为学生评分,分数根据答对题目的百分比计算,可根据做题情况选择“再做一卷”或者“退出”。
5、项目总结与教训
这次项目经历是一个非常好的锻炼机会,我和队友都在开发中得到了成长,非常我的队友的付出,积极沟通,努力优秀的态度。然后,通过这次开发,项目开发之前应该要做好设计,在设计中途反复修改实在太难了,这为以后i的开发提供宝贵的经验教训,不过还好我每一阶段完工之后都会和队友一起备份一次工作进度,这是一个非常好的习惯。另外,队友提出要用Git整合,我们当时考虑到成本问题就没有使用,最后整合的时候,大大感觉了十分难受,下一次大型开发要记得使用Git,另外,在最后,鸣谢我的队友,十分辛苦!
posted on
浙公网安备 33010602011771号