这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11148
这个作业的目标 学习如何结对完成项目、练习 PSP 的使用

1.学生信息

3118005340 伍镇江 github地址:https://github.com/Zangong-Wu/-
这个是由我和一个软件工程专业的同学共同完成的,所以只有我一个人的信息。

2.PSP表格

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

3.项目结构展示

4.关键算法实现部分

符号生成部分:

利用数组存储要生成的符号,利用随机函数确定使用哪个符号,并且运算符的数量也是随机,最大不超过3个。

查重部分:

利用list<list>的方式存储运算顺序,然后每生成一个表达式expression就与之前的list比较,如有重复,则返回false。

其中我还增加了一个计算器,输入字符串等式可以计算出结果:

5.效能分析





可以看到generate方法占用的内存最多用时也是最久的。

6.测试结果

输入-n 10 -r 20:

输入-n 10000 -r 5:

输入 -t:

输入十道题答案时: