结对编程:队友个人项目分析评价

结对编程:队友个人项目分析评价

队友:常守豪

工程文件结构

工程文件结构很清晰,有很多仅包含一个静态方法体的类,能够降低类之间的耦合性,便于后续修改移植。

  • Paper:主程序
  • MathGenerate:题目生成算法
  • User:基本的用户类,包括构造方法,set与get方法
  • UserInfoRead:从文件获取用户信息
  • Login:登录功能,判定用户名与密码,以及对错误输入的反馈
  • ExamInterface:用户需求的识别:生成题目数量与类型,是否切换类型,是否退出
  • HaveExisted:将已生成的题目存入哈希表
  • CheckDuplicates:题目文件的创建与写入,存入哈希表(用于重复判断)
  • Finish:出题完毕后执行后续选择

需求实现情况分析

1、需求实现情况

所有基本的项目需求都完整地实现。除此之外,添加了试卷生成之后的不同选项,这样用户能够更方便准确地使用程序。

image-20201212190410230

2、交互测试

交互界面设计美观清晰,用户体验性好。

完成了对错误输入的识别反馈,没有出现“乱输入就卡死”的这种情况,甚至对于不同的错误输入进行了不同的反馈,所有交互功能都能通过测试。

image-20201212190410230 image-20201212190410230

3、数据存储

用户信息文件与生成的题目文件夹都存放在工程目录下,能够自动生成缺少的目录和文件。

在程序中使用字符串拼接的方式编写文件名称,有一个弊端是,在mac系统下,目录之间使用‘/’;Windows系统下使用‘\’,因此在不同的系统中运行时会出错,需要修改文件名称字符串才能正确运行。

image-20220913213357830

4、题目生成算法设计

基于树结构实现数学题目的生成,将实数与运算符视为不同类型的节点,通过设置左右子树再进行遍历来实现数学题目的生成,这样生成的题目既有难度同时逻辑性又很强。


代码编写

命名与格式都很符合Google规范;

注解、注释清晰明了;

代码简洁美观,结构清晰,可读性高。


总结

优点:

  • 代码美观,结构清晰,可读性强;
  • 程序功能完善,使用体验好;
  • 算法设计很优秀,具有创新性;

缺点:

  • 自定义类有点多,有些可以合并(?不是很懂……)
  • 在路径名称的编写上略微考虑不周,没有考虑到不同系统下运行可能出现的问题
posted @ 2022-09-13 22:44  刘半仙-  阅读(100)  评论(0)    收藏  举报