结对项目

姓名 学号
李嘉鹏 3121005091
田小古 3121005098

作业概述

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业链接
这个作业的目标 1.实现一个自动生成小学四则运算题目的命令行程序 2.结对编程

一、github仓库

github链接

二、PSP表格

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

三、程序分析

  • Fraction类是表示计算数的一个类
  • Operator类是生成运算符和运算优先级的一个类
  • Util类封装了计算的方法
  • Question类调用上面的几个类生成计算式并调util计算结果存入result集合中
  • Main类是主程序,负责调用方法生成文件和写入文件
    image

image

生成计算式并计算结果

image

根据不同的运算符调用不同的计算函数

四、代码效果展示

代码支持生成10000个公式 Question.txt
image

代码支持生成10000个正确答案 Answer.txt
image

对应的10个公式 Exercises.txt
image

对应的10个生成答案 Answer.tsx
image

将Exercises.txt文件与Answer.txt文件对比 以验证代码的正确性
image

五、性能分析

image

从图中可以看出 本程序对于内存的占用情况,其中char[]和String类占用的内存最多,由于生成算式的函数中涉及到诸多char的引用,以及生成StirngBuilder类对String的调用。

image

六、项目总结

在这个结对项目中,我们与团队中的另一位成员紧密合作,共同完成了一个具有挑战性的任务。通过结对编程的方式,我们成功地实现了项目的目标。

在项目的初期,我们进行了充分的讨论和沟通,明确了项目的需求和目标。我们共同制定了项目计划和时间表,并确定了每个阶段的任务和分工。这种明确的规划为我们后续的工作奠定了基础,并确保了我们在整个项目过程中保持同步。

通过结对编程的方式,我们能够充分发挥彼此的优势,并互相补充。我们共同解决了遇到的问题,共享了知识和经验,并且能够及时给予对方反馈和支持。这种密切合作的方式提高了我们的工作效率,并促进了团队的凝聚力和合作精神。在项目的后期,我们进行了全面的测试和调试,确保程序的功能和稳定性。

通过这个结对项目,我们不仅实现了项目的目标,还提升了自己的编程技能和团队合作能力。我们学会了更好地与他人合作,有效地分工协作,并在压力下保持高效和稳定。这个项目的成功离不开我们之间的合作和信任,以及相互支持和理解的团队精神。

总的来说,通过结对项目,我们不仅获得了技术上的成就,还培养了良好的团队合作和沟通能力。我们相信这种结对编程的方式在实践中具有很大的价值,并且可以在未来的项目中继续应用和发展。我们对于项目的成果感到自豪,并期待将这种积极的合作精神延续下去。