前言
我的结对编程队友是王飞杨,经过对他的代码的研读和学习,现在对他的个人项目进行分析、总结和评价。
项目简介
项目名称:中小学数学卷子自动生成程序
编程语言:C++
项目完成者:王飞杨
评价人:木拉迪力·艾海提
题目需求
本题目要求实现的是一个中小学数学卷子自动生成程序
具体需求可以概括:具有登录和切换出题年级的功能,限制为10-30道题,可以重新登陆,对于输出的题目不能有重复,且以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。小学、初中、高中分别有相应运算符号。
整体分析
程序结构:
队友的代码用了一个cpp文件便包含了所有代码,这稍微有点不规范,如果能够将各个功能函数各自放在头文件,就能让代码读起来更加通俗易懂。看上去也更加美观,方便读者理解。
函数功能:
1.SignIn()为登录函数,主要用来显示登录界面和输入账号密码。
2. CreateFile()函数用来生成试卷
优点:
代码结构清晰,将用户登录、生成试卷、创建文件等功能封装在User类中,提高了代码的可读性和可维护性。
优化建议:
1)程序嵌套太多层,方法层层调用,过于繁琐。可以再主类中体现一下整体运行流程。
2)对于括号的放置并未能实现完全随机。
3)要手动创建文件夹,可以改进为自动检测生成文件夹。
4)不能自己添加用户,这个也可以完善一下。
5)缺乏注释,没有对关键代码进行注释说明,降低了代码的可读性和可维护性。
6)缺少异常处理机制,例如在输入不合法的选项时没有进行异常处理,可能导致程序崩溃或产生错误结果。
7)缺少代码的模块化和重用性,例如生成试卷的逻辑和生成题目的逻辑没有进行分离,导致代码耦合度较高。
总结
总的来说,该项目基本完成了各项功能,方法简洁,层层递进。很多函数的实现方法值得我去学习。后续可以优化测试用例,重构部分类的设计,以提升代码质量和扩展性。该项目提供了一个很好的学习参考案例。