结对项目

1.团队成员

余有亮、陈德标(查看我们的代码库
查看我们的班级

2.需求分析

  • 实现一个自动生成小学四则运算题目的命令行程序
  • 使用 -n 参数控制生成题目的个数
  • 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
  • 将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。该参数必须给定,否则程序报错并给出帮助信息。
  • 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥ e2。
  • 生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
  • 每道题目中出现的运算符个数不超过3个。
  • 程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。
  • 生成的题目存入执行程序的当前目录下的Exercises.txt文件,格式如下:
    四则运算题目1
    四则运算题目2
    ……
    其中真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8。
  • 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件,格式如下:
    答案1
    答案2
    特别的,真分数的运算如下例所示:1/6 + 1/8 = 7/24
  • 程序应能支持一万道题目的生成。

2.PSP表格

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

3.效能分析

本项目有两个模块,一个是负责进行题目的生成,另一个是负责将生成的题目解出答案,两个相辅相成,缺一不可。

题目生成模块

cpu使用率和内存的分配

(1) 火焰图_CPU使用率

(2)火焰图_内存分配

解答模块

cpu使用率和内存的分配

(1) 火焰图_CPU使用率

(2)火焰图_内存分配

4.设计实现

本项目分为两个模块:生成题目模块和解析题目模块

生成题目模块:
题目的生成,生成分数和整数,拼接成字符串

内部有Expression类、Fraction类、NumGene类,其中Expression类是最关键的类,由他生成题目字符串
解析题目模块:
根据生成模块生成的题目,将字符串进行解析,进行计算得出答案

内部有Calculate类、Fraction类,Calculate类用于计算

5.代码测试

查看测试用例
查看测试报告

6.项目小结

(1)结对感受:1)优点:两个人一起完成代码,减少了工作量,还能提高开发的效率。2)缺点:两个人开发,之间的交流异常更重要,在开发前没能做到有效的交流,这
非但不提高效率,还会出现各种各样的问题,开发速度还没有一个人开发的速度快。


(2)闪光点:两个人一起开发项目,一起开动脑筋想新方法


(3)建议:一定一定要沟通和做好项目的需求分析,两个人分工合作要对应好方法接口。

posted @ 2024-03-25 01:56  zhinanai  阅读(44)  评论(0编辑  收藏  举报