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

Posted 20165104mfb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165104孟凡斌-结对编程练习(第二周)相关的知识,希望对你有一定的参考价值。

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孟凡斌-结对编程练习(第二周)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA第五次试验-20165104孟凡斌

20165104-Java第一次结对编程练习

20172319 结对编程练习_四则运算第二周阶段性总结

20172312『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

20172326『Java程序设计』课程结对编程练习_四则运算第二周阶段总结