2023年秋 软件工程课程第三次任务安排(结对项目2)

一、团队简介及代码仓库相关地址

本次作业结对成员信息如下:

姓名:刘小兵  学号: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、添加适当的错误处理和异常处理机制,以提高代码的健壮性和容错性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值