结对项目
软件工程 | 首页 - 计科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调用文档