结对作业1
211606334吴庭威 211606315李昕洪
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
• Estimate | • 估计这个任务需要多少时间 | 5 | 10 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 60 | 120 |
• Design Spec | • 生成设计文档 | 10 | 15 |
• Design Review | • 设计复审 | 10 | 10 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 15 |
• Design | • 具体设计 | 20 | 20 |
• Coding | • 具体编码 | 480 | 480 |
• Code Review | • 代码复审 | 20 | 20 |
• Test | • 测试(自我测试,修改代码,提交修改) | 15 | 15 |
Reporting | 报告 | ||
• Test Repor | • 测试报告 | 15 | 15 |
• Size Measurement | • 计算工作量 | 600 | 600 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 15 | 20 |
合计 | 1325 |
二、需求分析
我通过题目、上网查询、讨论的方式了解到,小学三年级数学有如下的几个特点:
- 运算符在2~4个,且至少两个不同的运算符
- 可以加括号
- 减法运算的结果不能有负数
- 除法运算除数不能为0,不能有余数
经过分析,我认为,这个程序应当:
- 使用的数字范围在0-99之间
- 程序保留一二年级的功能
- 程序需符合优先级
- 注意括号的有效性
三、设计
1. 设计思路
说明你如何设计这个程序
- 这个程序有1个类,3个函数分别是一年级方法、二年级方法、三年级方法,函数之间的调用关系是用主函数调用各年级方法
- 算法的关键是首先保证各个年级的算法完善,其中关键在于,随机符号,以及随机数是否满足题目要求,除数不能为零、减法不可为负数;
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:选择我们两人之前的代码,进行讨论,以其中一份作为主要代码,在该份代码上进行补充修改。
- 技术关键点:如何判断算法的优先级、括号的添加、对除法的判断
四、编码
本段字体中加粗的表示遇到的困难以及未实现的功能。
我们的主代码已经完成一二年级的功能,因此只需写出三年级的代码,在写三年级的方法中,我们的主要思路步骤是1.求出随机符号的个数。且保证至少两个不同,在这当中该功能暂未实现2.判断符号(即判断生成的是什么符号,来判断优先级,并对之后的生成数字进行判断)3.随机数字插入运算式当中,根据优先级,对生成的数字进行是否符合规定判断
4.调整运算式格式满足客户需求5.运算,将答案及题目存入数组后,
返回数组。
1. 调试日志
尝试是否程序能够运行
2. 关键代码
3. 代码规范
第一条:代码中的参数命名等符合规定。
第二条:保持缩进,良好的代码规范。
并人工检查代码是否符合规范
五、测试
功能还未实现。。。。。。。代码无法运行。。。。
六、总结
请总结过程中的教训和经验,思考
在本次作业当中,我们两个人比较积极的讨论其中的问题,在讨论过程中有了许多的思路,但是出现的问题是,有了一定量的思路之后两人有点无从下手,不知如何进行下一步,因为代码敲不出来,在这一段时间中出现白热化状态,情绪有点烦躁,起先是心有余而力不足,到后来有点逃避不想思考,但是经过老师的鼓励,想起放弃一个东西只需要3秒钟但是坚持真的很难,虽然我们这次没有写出代码,当是我们在其中发现了很多的不足,包括自身以及互相配合方面,当然,目前我们一致认为我们的主要问题是基础薄弱,因此我们会在这段时间好好坚持,花更多的时间来弥补之前的不足。