结对项目:实现一个自动生成小学四则运算题目的命令行程序

结对项目

软件工程 首页 - 计科21级12班 - 广东工业大学 - 班级博客 - 博客园
作业要求 结对项目 - 作业 - 计科21级12班 - 班级博客 - 博客园
作业目标 实现一个自动生成小学四则运算题目
项目成员 3121004692 甘盛培 3121004702 李梦承

GitHub

GitHub链接: GitHub链接

PSP表格

*PSP2.1* *Personal Software Process Stages* *预估耗时(分钟)* *实际耗时(分钟)*
Planning 计划 20 40
· Estimate · 估计这个任务需要多少时间 1000 1750
Development 开发 700 750
· Analysis · 需求分析 (包括学习新技术) 100 90
· Design Spec · 生成设计文档 30 20
· Design Review · 设计复审 (和同事审核设计文档) 40 20
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 20
· Design · 具体设计 60 100
· Coding · 具体编码 300 500
· Code Review · 代码复审 30 20
· Test · 测试(自我测试,修改代码,提交修改) 60 100
Reporting 报告 40 60
· Test Report · 测试报告 30 30
· Size Measurement · 计算工作量 20 20
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 20
合计 1470 1750

主要的流程

1、生成表达式

2、计算

3、判断、查重

4、生成文件

5、计算错题

类的设计和实现

具体的类

Arithmetic和Calculate是实现生成计算式子的类,GUI是实现简单的图形化界面的类。

主要的函数

生成表达式的函数:finalFormula

主要就是判断语句

判断对错的函数:check

读取文件,根据返回的布尔值判断。

逆波兰表达式函数:initRPN

主要运用了堆栈思维,能够很好的控制先后顺序。

计算类函数:

getGCD 找到最大公因数

processCalculate 提取后缀表达式函数

这个函数在算法课讲过思想,运用堆栈的思维。

程序的执行

程序设置好参数后进行执行

生成成功后的提示:

生成的题目:

生成的答案: 表示带分数的意思

切换检查作业功能:

将结果写入了文件:

将txt进行对比:

检查作业的结果是对的

单元测试

一共进行了三个主要函数的测试:

都是可以通过测试的。

第一个falseWork:生成的题目没有进行作答,全错。测试成功

第二个计算测试:

测试数据代码:

整个主要计算函数生成函数的测试:

能够顺利计算带括号题目,写入文件成功

类的覆盖率

占用情况

总结

甘盛培:这次主要负责计算题目、UI部分和报告的编写,与我合作的同学,我们为了方便,进行了大类大方法的编写,这个编写方式维护起来有点困难,接口函数的调用没有很清晰,下次合作的时候,一定要注意分好类,调试分配好接口任务。
李梦承:负责github上分支的合并管理,测试代码和数据的编写,运算器具体算法的构建。结对各做实现项目需要和队友提前确认分工,实时沟通,相互交流进展与问题。在每一次项目提交合并时,要和对方协调沟通,做好冲突处理,相互告知对方更改内容,涉及到的功能变化,必要时做出相关API调用文档

posted on 2023-09-28 19:35  lishaidapu  阅读(38)  评论(0编辑  收藏  举报

导航