结对项目

这个作业属于哪个课程 网工1934-软件工程
这个作业要求在哪里 作业要求
这个作业的目标 学会团队合作 ,实现一个自动生成小学四则运算题目的命令行程序

项目成员
吴嘉辉 3119005344
卢乔斌 3119005334

GitHub链接

一、PSP表格

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

二、性能分析

结对项目

由图可知,String[] 、StringBuffer 类型用得最多。String.nextLine()获取用户答案时,占用了绝大部分的资源。

三、设计与实现过程

1.设计思路

  • 生成计算表达式

    根据要求随机生成数字和符号,再在生成的表达式上生成括号,删去不规范的括号,得到初步的表达式。

  • 筛选不符合规则表达式

    判断子表达式是否为负数和是否有除数为0的列为粗略筛选,再根据子答案是否相同、长度是否相同、运算符优先级别是否相同、层次遍历是否相同作为精细筛选,筛选出不符合规则的表示式。

  • 用户输入答案

    通过控制台输出表达式,用户在控制台输入答案,从而获取用户答案。

  • 答案校对

    用递归表达式,根据符号优先级一步一步算子表达式,最后得出答案,再通过比较正确答案和用户答案两个数组内容得出答案是否正确,从而得到成绩。

2.项目结构
结对项目
关键类和方法:

  • CreateExpression类:用于生成表达式
  • CorrectAnswer类:用于得到表达式的正确答案
  • AccuracyUtil工具类:将正确率输出到文件中
  • FIleUtil工具类:读写文档工具
  • InputUtil工具类:输入基本信息,输出控制台引导信息
  • RepeatUtil工具类:查重表达式
  • ScreenUtil工具类:筛选表达式,筛选出不符合的表达式

3.实现过程
结对项目

四、代码说明、

结对项目

结对项目

结对项目

结对项目

五、测试运行

生成10000道题

结对项目

题目

结对项目

答案

结对项目

得到成绩

结对项目

结对项目

六、项目小结

卢乔斌:这次结对遇到的问题有由于前期没有和队友很好的规划好架构,同时也缺少了一些必要的交流,导致后期项目的开发受阻,难度加大。在开发过程中,没有对项目有较好和清晰的分包,所以造成了业务层没有完全抽离出来,代码和功能的组织结构性做的不够好。因为没有比较好的前期规划,所以在后期的开发测试的调试中,遇到BUG并着手解决 BUG 时会比较困难。经过这次的结对项目,我们不再局限于是个人编程,而是作为一个小团队来进行开发,可以充分发挥出各自的长处。首先在做结对编程项目的时候,先要一起讨论题目以及整个项目的需求,再综合两个人的想法,得到最后的执行方案。编码过程中,各自完成属于自己的部分并且进行测试,这大大提高了我们的效率。并且在开发过程中应及时沟通双方工作进程,当遇到推进困难问题可以双方一起解决,这样就不会落下进度。总之,通过本次的结对项目体验到了小团队开发的经历,学会相互合作,共同进步。

吴嘉辉:

上一篇:表格


下一篇:黑马:const修饰指针(60)