码迷,mamicode.com
首页 > 其他好文 > 详细

20165104孟凡斌-结对编程练习(第二周)

时间:2018-04-23 00:11:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:bubuko   输入   和我   后缀表达式   作业   运算优先级   等价   img   uml   

20165104孟凡斌-结对编程练习(第二周)

很不幸,这次的结对练习作业的难度,依然远远远超出我,我的搭档两人得能力范围。结对学习,变成了结对向同学请教学习。两个人一起问,确实效率高一点,每周保持这样的学习状态,虽说很累,但确实比原来懒散的我学习好很多。
需求分析
-------------------

题目要求

自动生成小学四则运算题目(加、减、乘、除)

支持整数

支持多运算符(比如生成包含100个运算符的题目)

支持真分数

统计正确率

扩展要求

处理生成题目并输出到文件

完成题目后从文件读入并判题

多语言支持:简体中文, English

生成题目不能去重

>- 去重:程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。

实现思路

中缀表达式转换为后缀表达式

  • 如果遇到数字,我们就直接将其输出。
  • 如果遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。
  • 如果遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈(注意,左括号只出栈,不输出),右括号不入栈。
  • 如果遇到运算符号且栈非空,查看栈顶元素,如果栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素入栈。
  • 如果我们读到了输入的末尾,则将栈中所有元素依次弹出。

    计算后缀表达式

    ```
    public int doCal(List

```
码云链接

UML类图
技术分享图片

代码框架
技术分享图片

学习感受

延续了上一周的焦头烂额....果然和我预料的一摸一样

BUT

谢谢我的搭档。两个人一起向同学请教学习,说实话,确实两个人一起问,不懂得互相交流,学起来快乐多了~

  • 结对学习的照片已经放到蓝墨云班课里面了

20165104孟凡斌-结对编程练习(第二周)

标签:bubuko   输入   和我   后缀表达式   作业   运算优先级   等价   img   uml   

原文地址:https://www.cnblogs.com/20165104mfb/p/8909952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!