一、团队简介及代码仓库相关地址
本次作业结对成员信息如下:
姓名:刘小兵 学号:D23381007
姓名:江超宇 学号:Z23181002
具体工作分配如下所示:
成员 | 姓名 | 学号 | 工作 |
成员1 | 刘小兵 | D23381007 | 负责gitee上的代码仓库相关创建、修改、更新等工作,对最终代码进行可扩展性和可维护性的分析评价。 |
成员2 | 江超宇 | Z23181002 | 负责对于扩展功能的代码实现过程,对最终代码进行性能测试,并提出改进意见。 |
https://gitee.com/liududuxixi/sizeyunsuan
1、在代码仓库中进行版本更新
2、在原来版本的基础上进行删改,使得功能进一步完善
二、具体结果生成
1、点击开始按钮,开始答题
2、开始答题后,生成一道四则运算题,系统开始对于每题进行10s的倒计时
3、输入回答后,进入下一题的界面,同时判断上一题回答的正误,并给出正确答案,以及目前的得分和所有题目的总分。
4、回答完所有题目后,生成四则运算练习的答题记录
三、性能测试
四、可扩展性分析评价
1、目前只支持四则运算,如果需要支持其他类型的数学运算,比如指数、开方等,需要修改generate_question方法中的运算符列表和生成表达式的逻辑。这样的硬编码限制了代码的可扩展性。
2、如果想要增加更多的题目类型或规则,比如添加括号运算、负数运算等,也需要修改generate_question方法中的逻辑。这样的修改可能会导致代码变得复杂且难以维护。
五、可维护性分析评价
1、代码中的一些功能逻辑存在于ExerciseGenerator
类的各个方法中,这样的设计使得代码的维护和理解变得困难。最好将相关的功能逻辑封装到单独的方法中,以提高代码的可读性和可维护性。
2、generate_question
方法中的表达式生成逻辑较为复杂,包含多个嵌套的随机数和运算符选择。这种复杂的逻辑使得代码难以理解和调试,建议将其拆分为多个辅助方法,以提高代码的可读性和可维护性。
3、check_answer
方法中的条件判断较为冗长,可以考虑将其拆分为多个辅助方法,以提高代码的可读性和可维护性。
4、get_history
方法中的历史记录生成逻辑与显示逻辑混在一起,建议将其拆分为两个独立的方法,以提高代码的可读性和可维护性。
六、改进分析
1、创建一个单独的类来处理题目生成和答题逻辑,将相关的功能封装到不同的方法中,使得代码更加模块化和易于理解。
2、使用配置文件或参数来灵活地设置题目类型、规则和数量,避免硬编码。
3、将复杂的逻辑拆分为多个简单的辅助方法,使得代码结构清晰,易于维护和调试。
4、使用注释和文档字符串来解释代码的功能和逻辑,提高代码的可读性。
5、考虑使用面向对象的设计模式,如工厂模式或策略模式,以支持更灵活的题目生成和答题规则。这样可以通过添加新的题目类型或规则类来扩展功能,而无需修改现有代码。
6、添加适当的错误处理和异常处理机制,以提高代码的健壮性和容错性。