需求分析编程
实现一个命令行程序;
自动生成小学四则运算题目(加、减、乘、除)
支持整数
支持多运算符(好比生成包含100个运算符的题目)
支持真分数
统计正确率框架
设计思路
1.在此次结对编程中,咱们一开始的想法是设计一个可以处理分数的类,而后在教材中的Example4_22正好有相关的内容,因此咱们就在此个例子上进行修改,获得了一个可以处理分数运算的类,而后索性就直接从分数这个难点开始构思。学习
2.在结对编程四则运算的博客内,咱们接触到了运算后缀表达式以及将中缀表达式转化成后缀表达式的两个概念,其中都提到了栈,这个是用做运算,转换中临时存储数据的一个结构,是整个计算方法的核心内容,是一个基本框架。因此咱们按照要求设计了一个有关的栈类为转化与计算作准备。优化
3.最后就是一个计算器和一个转化器的设计,博客中提到了如下的计算规则:命令行
若是遇到数字,咱们就直接将其输出。设计
若是遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。3d
若是遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,而后将左括号出栈(注意,左括号只出栈,不输出),右括号不入栈。blog
若是遇到运算符号且栈非空,查看栈顶元素,若是栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素入栈。开发
若是咱们读到了输入的末尾,则将栈中全部元素依次弹出。字符串
这几点就是后缀表达式的转化方法,咱们经过这几点设计了一个转化器,即Tran类。
计算器的规则:
计算规则就是创建一个空栈,遇到数字就入栈,遇到符号就以符号前面的两个数为运算数进行计算。
以上四类咱们已经开发完毕,目前的程序能够实现:计算一个正常的运算式(即中缀表达式)的值(支持有理数的运算,输出结果为一个字符串类型)。根据需求分析,咱们还须要如下功能:
随机生成(多个)运算式;
判断计算结果值是否正确;
判断随机生成的(多个)运算式是否有重复;
计算正确率
系统优化
以上功能须要在下一周的编程中开发实现。
功能截图
结对感觉
在这一次的结对编程学习中,我深入地体会到娄老师为何要推荐咱们结对学习。此次的学习任务比以往要重不少,一我的单打独斗很难取得特别快的进展,尤为是当你的Parter是一个很是优秀的队友时,你能从他的身上发现特别多本身的不足之处,在生活的方方面面,不单单是学习。因此,我以为这次结对学习让我受益不浅。
结对编程照片