20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
需求分析
这是利用栈来设计一个计算器的第二阶段总结。
- 自动生成四则运算的题目(加、减、乘、除)
- 需要实现计算结果的输出
- 将正确的计算结果与用户输入的计算结果进行比较得出最终的正确率
之前编写的程序还有很多问题,比如说没有办法将用户的输入和最终的答案进行比较,没有统计出正确率等问题。这周主要对这些问题进行改进和升级,我们成功解决了这些问题,但是还是存在一些暂时没有解决的问题。
设计思路
1. 首先我们需要编写随机生成数字和随机生成符号的代码,把他们编写好后保存
2. 我们需要利用之前编写好的随机生成数字和符号的代码来组成一道题,然后根据用户的输入需要生成多道题
3. 利用在博客中提到的栈的计算方法设计栈的计算,遇到数字直接输出,遇到符号看情况压栈或输出。
4. 经过上一步的操作,我们把中缀表达式转化成后缀表达式之后就可以计算了。
5. 利用逆波兰表达式求值,并返回得到的值
6. 读取用户经过计算后输入的值,将用户输入的值与正确的值进行比较,正确则正确题数加一,错误则不变。最终返回用户答题的正确率。
实现过程中的关键代码解释

这是目前编写修改出的主类的代码,大体能够实现结对作业的要求。
* 首先先让用户输入想要生成的题目数量,并且读入这个变量。
* 利用这个读入的变量循环出题,然后将题目用字符串s保存并打印。
* 打印完题目后,提示让用户输入自己计算出的题目的结果,并且保存在result变量里。
* 将保存题目的字符串转化成字符数组类型,目的是为了进行中缀转后缀的操作,然后调用中缀转后缀方法。
* 调用逆波兰表达式计算最后的结果并且输出。
* 将输出的结果和result进行比较,若相等,则输出“congratulations”,将正确题数加一;若不相等,则输出“what a pity”,正确题数不变。
* 最后得到所有题目中正确的数量以及总体的正确率。
运行过程截图

这是目前编写出的程序运行结果截图,但是还是存在一些问题。比如说用户的答案没有办法输入小数,否则会出现报错的情况。出题时会出现除号间隔出现的情况,暂时还没有想到好的办法改进。
代码托管地址
码云链接:https://gitee.com/H2742/HelloWorld
遇到的困难及解决方法
问题一:刚刚开始接触这么庞大的程序,对于我这个新手小白来说无从下手。
问题解决方法:自己在平时没有大量地手打练习代码,因此真正需要我们编写程序的时候就一头雾水了。我首先看了实验的具体要求,然后在脑子里大概构想出程序的大概框架,我们需要先完成什么再完成什么。这样子把一个大程序解剖开就会稍微轻松一些。遇到一些不懂的地方,我就进行百度了解一下相关的知识点再进行编译。
问题二:对堆栈的概念完全不理解,开不明白具体用堆栈是如何完成计算器功能的。
问题解决方法:主要通过询问已经完成的同学他们的经验,已经在网上寻找一些相关的内容、教程或者方法。然后学习他们的编程过程。
问题三:在看一些教程的过程中遇到许多新的没有学过的知识点,比如object等
问题解决方法:还是利用百度在网上查找一些相关的知识点,主要就是与同学讨论以及自学为主。
对结对的小伙伴做出评价(重点指出需要改进的地方)
在评价别人之前,我想先说说自己的问题。我在之前没有很认真的注意过结对的截止时间,因此学习的时间拉得不够长,学习的便也有些仓促。然后就导致了代码不过关,没有完全达到老师的要求。我认为这些问题归根结底主要还是我对这个结对的不重视,我在之前没有主动的关注蓝墨云上的结对消息,反而还认为一开始不会有作业的。这是我要检讨自己的问题。
关于我结对的小伙伴,他在过程中我们互相查资料,互相询问一些不懂的问题,还是给了我许多帮助。
20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结的更多相关文章
- 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175324王陈峤宇 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 这次的结对作业是要求我们利用栈来设计一个计算器. 自动生成四则运算 ...
- 20175229许钰玮 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
20175229许钰玮 2018-2019-2<Java程序设计>结对编程项目-四则运算 第一周 阶段性总结 需求分析 自动生成四则运算题目(加.减.乘.除). 既可以用前缀算法(波兰算法 ...
- 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结
码云链接 https://gitee.com/A5320/pair_programming_code 需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除) 2.支持整数 ...
- 20175316盛茂淞 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周(6)
20175316与20175329 结对编程练习_四则运算(第二周) 1.需求分析 实现一个命令行程序,要求: 自动生成指定数量的小学四则运算题目(加.减.乘.除) 支持整数 统计正确率 支持多运算符 ...
- 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结
20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...
- 《Java程序设计与数据结构教程(第二版)》学习指导
<Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- 20172306 2018-2019-2 《Java程序设计与数据结构》第八周学习总结
20172306 2018-2019-2 <Java程序设计与数据结构>第八周学习总结 教材学习内容总结 堆 堆是具有两个附加属性的一棵二叉树 它是一个完全树 对每一结点,它小于或等于其左 ...
- 20172306 2018-2019-2 《Java程序设计与数据结构》第七周学习总结
20172306 2018-2019-2 <Java程序设计与数据结构>第七周学习总结 教材学习内容总结 概述 二叉查找树是一种含有附加属性的二叉树,即其左孩子小于父结点,而父结点又小于或 ...
随机推荐
- loadrunner11浏览器兼容性的问题
最近项目中遇到了新开发的系统,全是HTML5和一些最新的前端框架技术,由于没有做浏览器兼容处理,所以该系统无法在IE浏览器进行操作,对firefox和google浏览器支持较好.但是又一个问题出现了, ...
- 2018-软工机试-D-定西
单点时限: 1.0 sec 内存限制: 256 MB 这么多年你一个人一直在走 方向和天气的节奏会让你忧愁 你说你遇见了一大堆奇怪的人 他们看上去好像都比你开心 ——李志<定西> 这首歌的 ...
- Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not work when importing projects or updating source folders.
安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not wor ...
- UI规范案例-宝龙广场
- 博三F5第二次站立会议(2019-03-21)
时间:2019-03-21(第五周) 地点:博三414寝室 时长:一个半小时 到勤:全员到勤 谈论内容: 大致确定本周计划与下周打算 本周计划: 杨澳:做出整个游戏软件开发过程的大致时间规划,做出需求 ...
- Python dict(或对象)与json之间的互相转化
Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...
- 局部变量,全局变量初始值问题----C与指针练习题4.14.1
全局变量初始化0 局部变量初始化是随机值 如下面一段代码,全局变量,将src复制n个字符到dst #include<stdio.h> void copy_n(char dst[],char ...
- Django_ORM相关操作
一般的操作 1.all():查询所有的结果 2.filter():包含与所有筛选条件匹配的对象 3.get():返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果对象没有或者超过一个会报错 4 ...
- TIME_WAIT
前言 请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一 ...
- laravel 还原项目到正常状态
首先回滚数据库迁移: $ php artisan migrate:rollback 还原修改文件到原始状态: $ git checkout . 查看文件修改状态: $ git status 可以看出剩 ...