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

2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算

组队成员: 仇夏
学号: 20172310
博客地址:
@王志伟 四则运算第一周博客 @仇夏四则运算第一周博客
@王志伟 四则运算第二周博客 @仇夏四则运算第二周博客
结对照片:html

1.进度进程:

1.上周进度:

  • 已完成:
    - 完成了生成中缀表达式的类。
    - 完成了main函数用来运行的类。
    - 中缀表达式转化成后缀表达式的类
    - 后缀表达式的计算。
    - 去重。
    - 代码的完善与美化。
  • 待完成:
    - 将生成的题目存到一个文件中。
    - UML类图的完善。

2.这周进度:

  • 已完成:
    - 完成了生成中缀表达式的类。
    - 完成了main函数用来运行的类。
    - 中缀表达式转化成后缀表达式的类
    - 后缀表达式的计算。
    - 去重。
    - 代码的完善与美化。
    - 将生成的题目存到一个文件中。
    - UML类图的完善。

2.项目介绍:

  • 这个程序要求用户输入所要生成问题的个数n(每一个算式的等级都是随机的且最高级为5级),以后每出来一个问题就要求用户输入他计算的获得的答案。程序将自动计算出正确答案,并与用户答案相比较,最后全部问题计算完后,电脑自动显示全部正确答案与用户答案,并给出正确率。
  • 建立一个文件,并将生成的题目存入文件,并从文件中读题并计算:

3.项目中遇到的问题:

因为前面两周遇到的问题已经在前两篇博客中指出,所以在本篇博客中再也不赘述。这里只说出这周解决的问题:java

  • 问题一:
    在进行比较符号优先级的时候,出现了一些问题。例如在考虑一个符号是否应该进栈时,应该与栈顶元素进行比较,比他高就进栈,低就栈顶元素出栈,直到遇到比他高的元素或者栈中没有元素。git

    举个例子:
    3+5×2-1=
    第一步:在考虑“-”是否进栈时, 栈中元素为: + × 暂时输出的后缀表达式为: 3 5 2
    第二步:此时应该与栈顶元素“×”比较:没有栈顶元素优先级高,则输出,此时栈中元素为: + 暂时输出的后缀表达式为: 3 5 2 ×
    再与栈顶元素“+”比较:没有栈顶元素优先级高,则输出,此时栈中元素为: 空 暂时输出的后缀表达式为: 3 5 2 × +// 我遇到的问题是如何调用符号“+”
    此时栈中没有元素,则“-”入栈。
    ...
    最后获得的后缀表达式为:3 5 2 × + 1 - =编程

由于我符号优先级进行比较运用的方法是构建一个数组,所以在调用已经存入栈的元素很差再进行调用(它的横坐标与纵坐标每次赋值没有规律,很差进行赋值)。数组

  • 解决方案:咱们这个项目进行计算时不用考虑包含括号的运算。所以咱们发现一个规律:当须要进行二次符号比较时,每每是将栈中的元素所有输出,且栈中的元素最多不会超过两个!所以咱们的解决方案是当须要进行二次比较时,就把栈中元素所有输出便可!

    ************************************************************************************************
    *******************************************分割线*********************************************
    ************************************************************************************************
  • 问题二:
    图中的正确答案都是同样的,可是问题不一样的!!
  • 解决方案:咱们猜想出现这个问题的缘由是:在从本身建立的文件中读取写入的问题时,每一次都是只读取第一行。所以在读取第一行之后须要跳过已经读取过的行。所以我增添了下面语句,用于跳过已经读取的行。

4.UML类图:

5.项目代码连接:

项目目录函数

6.成员感想总结:

  • 20172309:

    嗯,写到这时这个项目也总算是作完了。心中不免是有点激动与开心的(特别是看到与队友一块儿制做的程序运行的时候),可是我以为,咱们更应该记住的是在制做这个项目过程当中所收获的东西。
    最初与队友接到这个项目的时候,队友与我都是一头雾水。由于咱们两什么都不知道,咱们就一块儿查资料。在第一周的时候,由于对这个项目的不了解,我不知道干什么,也不知道应该干什么,因此我就以为很是的沮丧,甚至有过放弃的念头,可是这时队友就过来安慰我,让我不要放弃(在整个过程当中,咱们互相鼓励),同时她还已经完成了一部分的代码,同时还给我讲解。这就让我一会儿了解了我下一步应该干什么(论队友的重要性!^_^),总而言之,再次感谢个人队友。
    在此后的两周至今,队友与我都是秉承“谁有空就谁作,谁能作就多作”的观念进行编码的。在其中的过程当中,咱们一块儿讨论、分享本身的方法,而后把最好的方法在代码中实现。在这一过程当中,由于队友最近都比较忙,因此项目编写任务天然地都落在我身上(队友准备请我吃饭吧)。在其间,我也遇到了很多问题,所以找了许多的同窗帮忙。好比侯泽洋同窗郭恺同窗(这里是他们的博客,就当给他们打广告吧)。不过,队友在百忙之中仍然很关心这个项目的,她时不时的在看过程序后给我提出程序存在的问题(队友是大佬,带我装×带我飞)。因此这个程序才能这么完美。
    编码

  • 20172310:

    首先能和个人小伙伴组队我是感到很开心的。队友是个编程能力很不错的人哟
    ٩(๑❛ᴗ❛๑)۶,并且态度还很积极,完成了此次任务的不少事呢,给个大大的赞
    (σ゚∀゚)σ..:*☆ 哎哟不错哦。
    设计

我认为咱们作的好的方面是:htm

  1. 在任务分配上很快达成了一致,使得任务可以快速的进行下去。虽然前期咱们是打算一块儿完成所有的任务,但考虑到各自的时间有差别,并且个人编程能力不是很好,因此为了更加的高效且团队成员可以都能展示本身能力,咱们进行了采起了分工合做的方式。
  2. 在编程的时候咱们都能拿出本身的见解,积极地讨论,而后接受队友的意见和想法,来完善咱们的代码。
  3. 遇到困难的时候互相鼓励,一点一点地解决了困难。
    作得不足的几个方面:
    1. 对任务的总体把握不是很好,有些代码过于的繁琐,没能精简。
    2. 由于后期我在忙一些复杂的(杂七杂八的)事情,因此致使队友一我的完成了不少的事情,我都没有出到什么力,不过好在队友很给力呢。
    3. 编程能力仍是有些欠缺,有些方式可以想获得,可是却都实现不了。

7. 好友评分:

王志伟 仇夏
我的贡献度 50% 50%
相关文章
相关标签/搜索