20172305 结对编程项目-四则运算 第一周 阶段总结编程
结对编程的好丽友
- 20172323 王禹涵:中缀转后缀
- 20172314 方艺雯:后缀表达式的计算
- 20172305 谭鑫:中缀表达式的输出
需求分析
1.能随机生成由使用者肯定的任意多道四则运算题目函数
2.题目的难度等级能够选择,也能够选择不作混合运算。学习
3.题目运算实现中缀表达式转为后缀表达式并计算。测试
4.能够判断正误,并计算正确率。编码
5.支持真分数的运算。spa
设计思路
无栈(方艺雯)
- 首先要肯定生成题目的数量,能够用一个循环,使用Scanner,循环次数由用户输入的数肯定。
- 算式的产生
- 写一个类实现整数的四则运算:定义两个整数numerator和denominator,利用 int nextInt(4) 方法随机输出0123四个整数,分别表明进行加减乘除运算,而后根据随机输出实现的的运算符进行numerator和denominator的加减乘除运算。
- 再写一个类实现分数的四则运算:利用书上的第七章RationalNumber和RationalTester类能够实现。
- 还须要判断正误的操做,并输出成绩和正确率。再写一个类,将运算结果与用户输入的值比较,用if-else语句输出“正确”或“错误”并利用“x++”统计正确题目个数,与题目总数相除即得正确率。
- 这种方法只是最开始的简单构思,并无实现要求的全部功能,好比“实现中缀表达式转为后缀表达式并计算”,在老师讲完有关栈的知识后进一步构思。
有栈(方艺雯)
- 产生式子:首先,让用户选择题目的难度等级,分别对应不一样数量的数字进行运算,肯定随机产生的整数的个数,定义两个整数numerator和denominator表明分子和分母。分数的产生利用书上第七章RationalNumber类和RationalTest类(也能够单独调用该方法只进行分式的计算),而后调用函数StringTokenizer将分数做为一个String型的,而后同时调用产生分数和整数混合,而后用一个hasMoreTokens方法遍历全部的数,遇到String型的提出,遇到整数型的则将其做为分子,分母为1,而后将这些数存入设立的栈1中(全为分数),而后另外设立一个栈2,利用 int nextInt(4) 方法随机输出0123四个整数(产生的数量为栈1 中数字数量减一),分别表明加减乘除运算符,将数存入栈中,而后先读取栈1的一个数字,而后读取栈2的一个运算符,而后继续读取栈1的,直到读取完全部的数。而后再将这些数输出,此时这些数都是String型的分数,返回出来字符串再用next循环,一个一个分开,分数在中缀转后缀时,2/3为一个总体,转成后缀,声称出来又是一串,分开后next出来一个分数,建立一个对象自定义以/为分隔符分开。得出结果,利用RationalNumber类的reduce和gcd方法化简,结果为真分数的话会保留分数形式,假分数的话结果为整数。
- 判断正误:将用户输入的数字与计算机的结果比较,输出正误。若是答案是分数,分别比较分子分母来判断。
- 统计正确率:用一个循环,当判断正误时为正确时,正确题数加一,最后总数与题目数相除可得。
UML类图(谭鑫)

遇到的困难及解决办法
UML类图的编写
解决办法:UML类图算是编写程序的一个蓝图吧,这部分是你们商讨后,有我进行实现的,最开始没有用到栈的问题很好想,因此UML类图的编写也很简单,产生出咱们组的UML类图1.0版,可是经过分析和用到栈的问题,咱们又产生出一个UML类图2.0版,很不成熟,在编写产生算数式子的类的同时,进行了第三次的修改,产生出UML类图3.0版

设计
输出式子的问题
- 解决办法:咱们最早讨论的以问题是进行运算符和数字的交替进行,经过输入题目量进行在发那个发里面自动生成题目,可是在编写的过程当中,咱们以为能够是题目量在产品代码中进行重复,每一个题目等级下面进行产生一个式子的循环便可。经过对一个算数式子的分析,一个式子里面扣除等号,数字始终要比运算符多一个,因此,咱们能够经过一个数配一个字符的方式进行循环,最后添加一个数以及等号就完成式子的整串输出了。
分式的问题
解决办法:对于分式,我刚开始的想法如今想一想,若是那样作的话,最后确定会被扣分的,我想分式的表示形式和两个整数的除法同样,因此在输出式子的时候,咱们彻底能够忽略分式的问题了。在偷偷看到别的组作的问题的时候,他们的除号用“÷”表示,因此分式的问题还得考虑。这样的话就能够很清晰的分出是整数的运算和分式的运算,同时能够进行二者的混合运算了。代码规范
结对评价
- 王禹涵:王禹涵负责的是PSP表格的制定、代码的规范性、以及最重要的对我提出的想法进行边界性的分析,算是找不足吧!因为他负责编写的是中缀转后缀的问题,感受比较难,因此在以前就没有有太大的任务,可以转换为后缀的大问题解决就行。
- 方艺雯:方艺雯负责的是需求分析,就是把咱们脑中想法进行编写输出,同时也负责运算后缀表达式的计算,对咱们的不成条理的问题进行串接,感受也比较难。
- 两位同窗都很给力,一直熬夜进行程序的构思,以及理解我先编出的输出式子的代码,和两位同窗进行合做编写,是本身的荣幸,一块儿找出问题,一块儿解决问题。
PSP(王禹涵)
Planning |
计划 |
1 |
1 |
Estimate |
估计这个任务须要多少时间 |
20 |
|
Development |
开发 |
2 |
10 |
Analysis |
需求分析 (包括学习新技术) |
2 |
2 |
Design Spec |
生成设计文档 |
1 |
1 |
Design Review |
设计复审 (和同事审核设计文档) |
0.5 |
2 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
0.5 |
0.5 |
Design |
具体设计 |
2 |
|
Coding |
具体编码 |
2 |
|
Code Review |
代码复审 |
1 |
|
Test |
测试(自我测试,修改代码,提交修改) |
1 |
|
Reporting |
报告 |
2 |
|
Test Report |
测试报告 |
2 |
|
Size Measurement |
计算工做量 |
1 |
|
Postmortem & Process Improvement Plan |
过后总结, 并提出过程改进计划 |
1 |