20165325 2017-2018-2 《Java程序设计》结对编程_第一周:四则运算

1、码云连接

项目名称FAOhtml

码云连接git

2、需求分析

  • 实现一个命令行程序
  • 自动生成小学四则运算题目(加、减、乘、除)
  • 支持整数
  • 支持多运算符(好比生成包含100个运算符的题目)
  • 支持真分数
  • 统计正确率

3、设计思路

首先设计一个基础的数据类,因为本次项目编程的难点在于分数运算的处理,因此咱们打算从一开始就以“分数类”做为基础数据,并由此设计了Rational类(成员变量以及方法均详见UML图),Rational将全部的数据设计为分数,而且能进行+、-、*、/运算。编程

其次,咱们须要设计一个相似于“栈”的类(即Mystack类),其做用是存储用做运算的后缀表达式,后面的“计算器类”遍以此为基础进行运算。优化

接下来,四则运算的核心即是“计算器”类,即Calculator类,其做用是计算一个后缀表达式的值,其计算方法在2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算里面已经写的很清楚了,即创建一个空栈,遇到数字就入栈,遇到符号就以符号前面的两个数为运算数进行计算。命令行

这周咱们设计的程序的最后一个即是:“转换器”类,其做用是将一个正常的运算式(即中缀表达式)转换为后缀表达式,咱们将其命名为Transform类。设计

以上四类咱们已经开发完毕,目前的程序能够实现:计算一个正常的运算式(即中缀表达式)的值(支持有理数的运算,输出结果为一个字符串类型)。根据需求分析,咱们还须要如下功能:3d

  • 随机生成(多个)运算式;
  • 判断计算结果值是否正确;
  • 判断随机生成的(多个)运算式是否有重复;
  • 计算正确率
  • 系统优化

以上功能须要在下一周的编程中开发实现。调试

4、UML类图

5、功能截图

6、结对感觉

这一次的代码很是繁多,设计开发任务也很重。orm

首先是第一次结对设计这样大型项目,咱们缺少经验;其次,咱们在设计上花了较多的时间讨论,后来在实践开发过程当中才发现:一些想法和顾虑是多余的,果真实践是检验真理的惟一标准,一味地空想是错误的计划赶不上变化,要在实践中思考,作出选择判断htm

最后我以为这个程序,仅仅靠一我的,不管是体力仍是精神都难以支撑,我体会到了两人结对编程的最大好处:相互鼓励,相互帮助,共同面对和克服困难

7、结对编程照片

确认调试出来的那一瞬间,舒服了舒服了舒服了......

附:遇到的问题将在下周的博客中一并总结。

相关文章
相关标签/搜索