结对项目
这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | 四则运算生成器+生成应用程序+结对 |
项目成员1 | 3119005422 刘栋濠 |
项目成员2 | 3119005437 杨健鹏 |
1 代码链接
2 效能分析
性能分析
代码覆盖率
3 设计过程
本次程序设计了三个大模块并构建了四个类作为主要内容实现创建题目,生成答案和答案核对。其中创建题目和生成答案是同时实现的,后面可以修改答案内容再与原题目比较,实现答案核对
四个主要类为:
1、BinaryTree类
生成二叉树和判断两棵二叉树是否相同实现题目查重
2、SuffixExpr类
中缀表达式转换为后缀表达式
计算表达式的值
# 后缀表达式
suffix_list = []
# 操作符列表
operator_list = []
# 操作符优先级
operator_priority = {
'+': 1,
'-': 1,
'×': 2,
'÷': 2
}
if not self.infix_expr:
return []
infix_list = self.infix_expr.split(' ')
for item in infix_list:
if item in ['+', '-', '×', '÷']:
while len(operator_list) >= 0:
if len(operator_list) == 0:
operator_list.append(item)
break
operator = operator_list.pop()
if operator == '(' or operator_priority[item] > operator_priority[operator]:
operator_list.append(operator)
operator_list.append(item)
break
else:
suffix_list.append(operator)
elif item == '(':
operator_list.append(item)
elif item == ')':
while len(operator_list) > 0:
operator = operator_list.pop()
if operator == '(':
break
else:
suffix_list.append(operator)
else:
suffix_list.append(item)
3、AutoGenerate类
要求的四则运算式子
4、Solve类
通过生成的问题计算答案
验证答案是否正确
4、测试运行
测试用例
测试结果
修改答案前后验证对比
命令行测试
生成题目
校验答案
5、小结
刘栋濠
结对项目考验的不仅仅是代码和思维,还有与队友的互相协作,分工好各自的模块,把遇到的问题总结出来,集中突破重难点
杨健鹏
通过这次结对项目,收获了与他人共同开发的经验,从思路的构建,到主体框架的构建,都经历了不少讨论,还有代码规范方面需要我多加注意,我还需要提高编程能力通过这次结对项目,收获了与他人共同开发的经验,从思路的构建,到主体框架的构建,都经历了不少讨论,还有代码规范方面需要我多加注意,我还需要提高编程能力