结对项目
姓名 | 学号 |
---|---|
李嘉鹏 | 3121005091 |
田小古 | 3121005098 |
作业概述
这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | 1.实现一个自动生成小学四则运算题目的命令行程序 2.结对编程 |
一、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类是主程序,负责调用方法生成文件和写入文件
生成计算式并计算结果
根据不同的运算符调用不同的计算函数
四、代码效果展示
代码支持生成10000个公式 Question.txt
代码支持生成10000个正确答案 Answer.txt
对应的10个公式 Exercises.txt
对应的10个生成答案 Answer.tsx
将Exercises.txt文件与Answer.txt文件对比 以验证代码的正确性
五、性能分析
从图中可以看出 本程序对于内存的占用情况,其中char[]和String类占用的内存最多,由于生成算式的函数中涉及到诸多char的引用,以及生成StirngBuilder类对String的调用。
六、项目总结
在这个结对项目中,我们与团队中的另一位成员紧密合作,共同完成了一个具有挑战性的任务。通过结对编程的方式,我们成功地实现了项目的目标。
在项目的初期,我们进行了充分的讨论和沟通,明确了项目的需求和目标。我们共同制定了项目计划和时间表,并确定了每个阶段的任务和分工。这种明确的规划为我们后续的工作奠定了基础,并确保了我们在整个项目过程中保持同步。
通过结对编程的方式,我们能够充分发挥彼此的优势,并互相补充。我们共同解决了遇到的问题,共享了知识和经验,并且能够及时给予对方反馈和支持。这种密切合作的方式提高了我们的工作效率,并促进了团队的凝聚力和合作精神。在项目的后期,我们进行了全面的测试和调试,确保程序的功能和稳定性。
通过这个结对项目,我们不仅实现了项目的目标,还提升了自己的编程技能和团队合作能力。我们学会了更好地与他人合作,有效地分工协作,并在压力下保持高效和稳定。这个项目的成功离不开我们之间的合作和信任,以及相互支持和理解的团队精神。
总的来说,通过结对项目,我们不仅获得了技术上的成就,还培养了良好的团队合作和沟通能力。我们相信这种结对编程的方式在实践中具有很大的价值,并且可以在未来的项目中继续应用和发展。我们对于项目的成果感到自豪,并期待将这种积极的合作精神延续下去。