20172316 结对编程-四则运算 第一周 阶段总结
1.项目内容
以结对小组形式编写代码,实现以下功能:
1.自动生成题目
可独立使用(能实现自己编写测试类单独生成题目的功能)
可生成不同等级题目,类似于:
1级题目:2 + 5 =
10 - 5 =
之类的两个数,一个运算符的题目
2.题目运算(判题)
可独立使用
实现中缀表达式转为后缀表达式并计算
判断用户答题正误,并输出正确结果
3.支持真分数
可独立使用
实现分数算式的计算
4.题目去重(扩展需求,加分项)
可独立使用
实现对自动生成表达式的去重:如下
若生成:2 + 5 =
5 + 2 =
为同一题目
需求分析
- 由上到下进行分析,依次判断,可以看出,每个需求都要求实现 “可独立使用” ,具有一定的独立性,这要求每一个程序都不要过于依赖另一个。 于是我们决定每个人确立好任务分工,做自己的那一部分。然后串联起来。
- 1.生成题目,根据题目等级生成拥有多个运算符的运算式,这一步很简单,利用循环和判断语句可以解决。
- 2.题目运算,运用栈(stack)解决,基本方法都写在PPT中。
- 3.支持真分数,第一反应是借用第四周做到过的
RationalNumber
类,进行适应性改造即可。 - 4.加分项,去重部分,我还没有与队友进行交流,但目前的想法是通过重写
equal
方法判断是否重复。
设计思路
根据分工,我的任务为,设计“自动生成题目”部分,
作为实验第一步,必须迅速完成,拖沓必将连累往后进展。
- Day1: 心急地做出了1~4级的运算式,
具体过程:利用随机生成九个数字,其中五个直接作为数字按顺序放入运算式,另外四个分别对应“+”“-”“*”“/”四个运算符,这时候有一个小问题,怎样尽可能简单地让1~4级运算式利用一个方法实现,突然想起switch
语句在不使用break;
时会从符合项直接执行下一项,于是设置了这样4条case由上到下依次是case 4:
~case 1:
当需要1级运算时,从最后一项生成一个一级式;当为2级运算时,在一级式前方加上一个数字和一个符号,进化为二级式,以此类推。 - Day2: 发现干脆设计成n级的运算式更方便,进行改进,生成以及运算式地部分不变,在前方增加数字和符号的部分运用
for
循环。 - Day3:Water Skiing(划水)
- Day4: 查找相关资料进一步了解“栈”的原理以及运用实例解析,为之后的设计进行学习。
相关过程截图
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 100 | 100 |
Development | 开发 | 800 | |
Analysis | 需求分析 (包括学习新技术) | 100 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
Design UML | 设计项目UML类图 | 50 | 30 |
Coding | 具体编码 | 30 | |
Code Review | 代码复审 | 50 | |
Test | 测试(自我测试,修改代码,提交修改) | 30 | |
Size Measurement | 计算工作量(实际时间) | 30 | |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | |
合计 | 1240 |
结对评价
王文彬同学唐才铭同学 和我都存在着一个问题,那就是在产生新的想法和思路后没有及时与队友取得联系、及时交流,导致设想中“将各自负责部分轻易结合”的情况没有实现。
遇到的困难及解决方法
没有重大问题,因为分配的任务较为简单。
原文地址:https://www.cnblogs.com/zhaoqianchen/p/8977875.html
时间: 2024-10-19 20:28:55