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

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(王禹涵)

PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
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
相关文章
相关标签/搜索