20172316 结对编程-四则运算 第一周 阶段总结

Posted zhaoqianchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172316 结对编程-四则运算 第一周 阶段总结相关的知识,希望对你有一定的参考价值。

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

结对评价

王文彬同学唐才铭同学 和我都存在着一个问题,那就是在产生新的想法和思路后没有及时与队友取得联系、及时交流,导致设想中“将各自负责部分轻易结合”的情况没有实现。


遇到的困难及解决方法

没有重大问题,因为分配的任务较为简单。

以上是关于20172316 结对编程-四则运算 第一周 阶段总结的主要内容,如果未能解决你的问题,请参考以下文章

20172316 结对编程-四则运算 第二周 阶段总结

20172319 结对编程练习_四则运算第二周阶段性总结

2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

20172305 结对编程项目-四则运算 第一周 阶段总结

20172301 结对编程练习_四则运算 第一周 阶段总结

172328 结对编程练习_四则运算 第一周 阶段总结