20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

需求分析

这次的结对作业是要求我们利用栈来设计一个计算器。

  • 自动生成四则运算的题目(加、减、乘、除)
  • 需要实现计算结果的输出
  • 将正确的计算结果与用户输入的计算结果进行比较得出最终的正确率
  • 因为现在编写的程序还有很多问题,我以为后续还可以完善一下程序,可以加入括号,可以比较正确与否

设计思路

现在得到的程序还是存在一定的问题,比如只能输出正确的结果但还没有办法实现将正确的计算结果和用户输入进行比较。

1. 首先我们需要编写随机生成数字和随机生成符号的代码,把他们编写好后保存
2. 我们需要利用之前编写好的随机生成数字和符号的代码来组成一道题,然后根据用户的输入需要生成多道题
3. 利用在博客中提到的栈的计算方法设计栈的计算,遇到数字直接输出,遇到符号看情况压栈或输出。
4. 经过上一步的操作,我们把中缀表达式转化成后缀表达式之后就可以计算了。
5. 利用逆波兰表达式求值,并返回得到的值
6. 读取用户经过计算后输入的值,将用户输入的值与正确的值进行比较,正确则正确题数加一,错误则不变。最终返回用户答题的正确率。

在实验开始的时候,我们决定先实现一个小目标,就是编写一个两个一百以内数字的四则运算计算器,可以自动出题、检验。

代码和运行截图如下

实现过程中的关键代码解释

这是在编写完成生成随机数的代码之后关于自动产生问题的程序,在程序中首先我们先创建对象,然后先生成一个随机数作为一道题中一共有几个数字的情况,将这个随机数带入for循环的终结语句中。在for循环中,我们在构建一道题目。首先是第一次循环,第一次循环带入一个随机数以及一个符号,按顺序依次构成一道题目。不过我们需要在循环最后的外面加上一个随机数,这样才能构成一道完整的题目。

运行过程截图

这是第一个,这里生成的随机数每道题只有两个。存在很大的问题,然后经过一些改进。

这是第二个,编写的这个程序到现在还是存在很多问题。不过这次生成一道题数字的个数完全随机,这个是在之前程序上进步的。我们有了用户的输入,但是我们还没有实现将用户的输入与我们正确的值进行比较的过程。这个问题还有待解决。
代码中的运算还没有括号的情况这些问题还有待改进。

代码托管地址

码云链接:https://gitee.com/H2742/HelloWorld

遇到的困难及解决方法

问题一:刚刚开始接触这么庞大的程序,对于我这个新手小白来说无从下手。
问题解决方法:自己在平时没有大量地手打练习代码,因此真正需要我们编写程序的时候就一头雾水了。我首先看了实验的具体要求,然后在脑子里大概构想出程序的大概框架,我们需要先完成什么再完成什么。这样子把一个大程序解剖开就会稍微轻松一些。遇到一些不懂的地方,我就进行百度了解一下相关的知识点再进行编译。
问题二:对堆栈的概念完全不理解,开不明白具体用堆栈是如何完成计算器功能的。
问题解决方法:主要通过询问已经完成的同学他们的经验,已经在网上寻找一些相关的内容、教程或者方法。然后学习他们的编程过程。
问题三:在看一些教程的过程中遇到许多新的没有学过的知识点,比如object等
问题解决方法:还是利用百度在网上查找一些相关的知识点,主要就是与同学讨论以及自学为主。

对结对的小伙伴做出评价(重点指出需要改进的地方)

在评价别人之前,我想先说说自己的问题。我在之前没有很认真的注意过结对的截止时间,因此学习的时间拉得不够长,学习的便也有些仓促。然后就导致了代码不过关,没有完全达到老师的要求。我认为这些问题归根结底主要还是我对这个结对的不重视,我在之前没有主动的关注蓝墨云上的结对消息,反而还认为一开始不会有作业的。这是我要检讨自己的问题。
关于我结对的小伙伴,他在过程中我们互相查资料,互相询问一些不懂的问题,还是给了我许多帮助。

20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结的更多相关文章

  1. 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...

  2. 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    码云链接 https://gitee.com/A5320/pair_programming_code 需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除) 2.支持整数 ...

  3. 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结

    20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...

  4. 20175316盛茂淞 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周(6)

    20175316与20175329 结对编程练习_四则运算(第二周) 1.需求分析 实现一个命令行程序,要求: 自动生成指定数量的小学四则运算题目(加.减.乘.除) 支持整数 统计正确率 支持多运算符 ...

  5. 20175324王陈峤宇 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章 一.内部类与外部类的关系 1.内部类可以使用外嵌类的成员变量和方法.2.类体中不可以声明类变量和类方法,外部类可以用内部类声明对象.3.内部类仅供外嵌类使用.4.类声明可以使 ...

  6. 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...

  7. 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

    20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...

  8. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...

  9. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

随机推荐

  1. JavaScript—var lef const区别

    今天刚刚学JavaScript 因为以前学过.学起来也就轻松.今天在练习.流程控制语句的时候,用WebStrom 写的时候 var 声明变量的时候 下面老是有一条白线.开始以为是开发环境有问题 然后, ...

  2. 在Linux搭建Git服务器

    搭建Git服务器 https://www.cnblogs.com/dee0912/p/5815267.html Git客户端的安装 https://www.cnblogs.com/xuwenjin/p ...

  3. 帆软报表(finereport)使用row_number ()进行组内排序

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也 ...

  4. ELK搭建<一>:搭建ES集群

    1.首先进入官网下载ES,如果下载最新之前的版本 点击past releases就行了. 2.解压后进入config修改配置文件elasticsearch.yml #集群名称 cluster.name ...

  5. echarts 自定义配置带单位的 tooltip 提示框方法 和 圆环数据 tooltip 过长超出屏幕

    -------tip1-------- 在 tooltip  里边配置:拼接字符串: tooltip : { trigger: 'axis', formatter:function(params) { ...

  6. window10 蓝牙只能发不能收文件解决办法

    打开“通过蓝牙发送和接收文件”,在“接收文件”界面中无法接收蓝牙发送的文件 解决办法: 1. win+R后,输入msconfig,回车 2. 点击服务,勾选隐藏Microsoft服务,点击全部禁用 3 ...

  7. skopeo---github简单记录

    新的redhat 8已默认不集成docker,而是使用podman了. podman和skopeo和buildah,cri-o一起,组成了新一代的容器四大天王. 花时时间了解下,是值得的. skope ...

  8. sql父子表结构,常用脚本

    在实际运用中经常会创建这样的结构表Category(Id, ParentId, Name),特别是用于树形结构时(菜单树,权限树..),这种表设计自然而然地会用到递归,若是在程序中进行递归(虽然在程序 ...

  9. SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

    解决方法一:@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8") / ...

  10. James Munkres Topology: Lemma 21.2 The sequence lemma

    Lemma 21.2 (The sequence lemma) Let \(X\) be a topological space; let \(A \subset X\). If there is a ...