结对编程:队友个人项目分析评价
结对编程:队友个人项目分析评价
队友:常守豪
工程文件结构
工程文件结构很清晰,有很多仅包含一个静态方法体的类,能够降低类之间的耦合性,便于后续修改移植。
Paper:主程序MathGenerate:题目生成算法User:基本的用户类,包括构造方法,set与get方法UserInfoRead:从文件获取用户信息Login:登录功能,判定用户名与密码,以及对错误输入的反馈ExamInterface:用户需求的识别:生成题目数量与类型,是否切换类型,是否退出HaveExisted:将已生成的题目存入哈希表CheckDuplicates:题目文件的创建与写入,存入哈希表(用于重复判断)Finish:出题完毕后执行后续选择
需求实现情况分析
1、需求实现情况
所有基本的项目需求都完整地实现。除此之外,添加了试卷生成之后的不同选项,这样用户能够更方便准确地使用程序。
2、交互测试
交互界面设计美观清晰,用户体验性好。
完成了对错误输入的识别反馈,没有出现“乱输入就卡死”的这种情况,甚至对于不同的错误输入进行了不同的反馈,所有交互功能都能通过测试。

3、数据存储
用户信息文件与生成的题目文件夹都存放在工程目录下,能够自动生成缺少的目录和文件。
在程序中使用字符串拼接的方式编写文件名称,有一个弊端是,在mac系统下,目录之间使用‘/’;Windows系统下使用‘\’,因此在不同的系统中运行时会出错,需要修改文件名称字符串才能正确运行。
4、题目生成算法设计
基于树结构实现数学题目的生成,将实数与运算符视为不同类型的节点,通过设置左右子树再进行遍历来实现数学题目的生成,这样生成的题目既有难度同时逻辑性又很强。
代码编写
命名与格式都很符合Google规范;
注解、注释清晰明了;
代码简洁美观,结构清晰,可读性高。
总结
优点:
- 代码美观,结构清晰,可读性强;
- 程序功能完善,使用体验好;
- 算法设计很优秀,具有创新性;
缺点:
- 自定义类有点多,有些可以合并(?不是很懂……)
- 在路径名称的编写上略微考虑不周,没有考虑到不同系统下运行可能出现的问题

浙公网安备 33010602011771号