任务04——对四则运算小程序的进一步改进,并学习 Git 中 Branch 的用法
https://github.com/jinxiaohang/Operation/tree/test01
对于任务2的代码进行优化修改感觉很麻烦,所以直接选择重写代码完成任务四,
任务四很早就发布了,自己也很早开始动手,只是一直拖着,,不是懒,要做的事很多,也不想走在队伍的太前面,
所以跟着自己的节奏慢慢来。
对于这次的多运算符的四则运算,开学的时候早就有想过,而且把代码也写了一下,只不过是c++形式的,
想到栈,这种先进后出的数据结构。java有提供给我们这样的集合框架。所以用着很方便,但是在使用的过
程中很是遇到一些小问题(读栈顶时若栈空,会抛出异常,所以在读栈顶时要先判空),自己也顺利的解决了,
不知道这样的处理是不是有问题,还是说可以避免的。
这学期自己也选了软件工程这节课,上了有关软件工程的东西,深有感触,敲代码只是其中的10%-20%,是其中一
小部分,然而做一款软件(产品)也不是随随便便的事,所以我试着模仿软件工程的思路来做这款小程序。
需求分析;
- 生成的算式中的运算数必须为自然数(0、1、2……)或真分数(1/2、4/5 等分子比分母小的分数)。
- 乘号用 × 表示;除号用 ÷ 表示,代替 / 号。
- 算式中,运算符与运算数之间必须加空格,但若是分数形式,则不需要,如:3 + 1/2 。
- 能随机生成 2~3 个运算符的算式,如:2 + 3 * 4 ,注意此算式的答案也必须按照运算优先级进行计算。
- 能生成带括号的算式,如 (2 + 3) * 4 和 3 / (4 + 2)。括号的运算优先级要高于加减乘除。
- 在用户输入答案后,除显示对错之外,还需要显示此题的正确答案。
大概就是老师要求的这些。但是这是个小程序忽略了很多软件工程流程中的许多细节。不能跟着一步步来。
功能1,2,3,6简单,在任务2的基础上可以完成。4,5需要自己重新设计。对于功能4,选择栈。
运算优先级问题,栈可以解决,主要思路,中缀表达式转后缀表达式,然后根据后缀表达式算结果。根据用户的输入判断对错
在判断用户输入对错的问题上在任务2我处理的不太好,思路过于复杂,代码冗杂。于是我思考用户输入代码的特点,以及在任
务2遇到的bug,首先我将用户输入分为2类,1:带有字母的,2:不带字母的,
在第一类中,定义一个特殊单词,作为退出程序用,其余情况视为错误输入,
在第二类中。我接触了正则表达式(想要学习爬虫),所以根据根据特殊字符,分为(小数。分数。错误输入)和整数两类。
然后根据自己的特点进行处理操作,对于后缀表达式计算的结果以小数形式保存,在答案对比上可能存在一定的误差,但在测试时情况良好。
但是对于这样的操作还是有一些问题,所以对于小数,分数的判断加以优化。可是效果不好,感觉代码冗长。
今天2017/3/23和昨天,在想要学习爬虫的强大欲望下,学了一些网络编程和正则表达式的知识,想到了,接触了在网页上爬取邮箱,手机
号码,想到自己也可以定义小数,分数,整数的正则表达式,筛选出我要的答案进行处理,不要的都视为错误输入,很快就解决了。相对而言,代码简洁不少。
功能5,我选择设置成3种题型的形式,不带括号整数的四则混合运算,带括号的整数四则混合运算,带分数的四则混合运算
一个函数能生成三种情况或更多,我现在的想法还没想到,所以选择三个函数来完成。
在开始改进程序之前,需要先通过 Git (或其他的 GUI 工具)创建一个新的分支(Branch)。
对于这个问题,不想多说,推荐一个教程,我感觉不错,内容情况很全,关于在IDEA中实战Git http://blog.csdn.net/autfish/article/details/52513465
这次没有过多的参考老师提供的资料,都是根据自己的想法,缺什么找什么,不会什么学什么。
对于java学习还是有些迷茫,不知道下一步干嘛。但还是把基础打扎实了,这样心里靠谱。
附一段这段时间学习java的感受:

附上一张我总结的java类的层次图,很模糊,因为它比较大想看到全图就要缩小,我相信以后还会更大。
这是我前几个星期开始总结的,每次把新学到的或者接触的类,记录下来知道他在哪、他怎么用、他的”父亲“
是谁,有人会问这不是jdk api上都有的,傻不傻,干嘛浪费时间记这个,我想说jdk api是在的,但是这不是
我的东西,不是我脑子里的东西,也许这只是消除我迷茫的一个方式,手段,,但是这样的学习让我觉得很充实,
知道自己学到了哪些,掌握了哪些,知识增长了多少,jdk api不是java学习的全部,但是我觉得是他是学习
java的基础。学习了他,让我感觉迈进了java的大门。
学习编程,不仅让我学到了知识,还让我懂得做人,编程不是一件枯燥无味的事,学习编程不仅是学习他的表象
还要懂得他的内在,学习编程“内在”的比学习“编程表象”让我更快乐。
任务04——对四则运算小程序的进一步改进,并学习 Git 中 Branch 的用法的更多相关文章
- 300道随机四则运算小程序(java编写)
这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ pu ...
- 微信小程序错误——mpvue小程序:未找到 app.json 中的定义的 pages "pages/XXX/XXX" 对应的 WXML 文件
背景 在刚开始学习开发小程序时,使用微信开发工具在app.json建立页面,写好配置文件名称后,应该会自动生成页面的4个文件,结果没有生成文件,反而报错:mpvue小程序:未找到 app.json 中 ...
- 微信小程序入门——Mustache语法学习
微信小程序中用到了大量Mustache语法,特发此文学习一下 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" ...
- 微信小程序之swiper轮播图中的图片自适应高度
小程序中的轮播图很简单,官方都有例子的,但是唯一的缺陷就是swiper是固定死的150px高度,这样如果传入的图片大于这个高度就会被隐藏.辣么,怎样让图片自适应不同分辨率捏. 我的思路是:获取屏幕宽度 ...
- 坑:微信小程序wx.request和wx.uploadFile中传参数的区别
微信小程序中通过组件<form>提交表单的时候,在js中通过e.detail.value得到所提交表单的json格式数据.一般提交表单我们都是通过wx.request请求,提交表单数据,通 ...
- 微信小程序基本目录结构学习
今天我们就以firstdemo为例,介绍一下小程序的基本目录结构.当我们打开一个微信小程序项目后,点击进入“编辑”菜单,我们可以看到有以下5个文件/文件夹):pages文件夹,utils文件夹,全局文 ...
- Java的家庭记账本程序(H) :微信小程序 image 标签,在模拟器中无法显示图片?(已解决)
日期:2019.2.25 博客期:036 星期一 吼!今天我还是继续研究了自己的微信小程序,还没有连接数据库,只是在xml的设计上添加了不少东西,大家可以看我的截图,嗯~说到今天的收获,就是 marg ...
- 如何把原生小程序项目合并的mpvue项目中
当时的情景是这样的: 使用mpvue写微信小程序,写着写着项目写到一半了,突然间不想这样继续写了,想切换回原生小程序语法去写剩余部分. 如下图,红色框里的功能是已经用mpvue完成的功能,绿色框部分的 ...
- 微信小程序--getLocation需要在app.json中声明permission字段
在微信小程序开发中,需要获取用户所在地理位置,结果提示‘getLocation需要在app.json中声明permission字段’ 这是因为开发者需要填写获取用户地理位置的用途说明. 具体解决方法: ...
随机推荐
- Android - 错误:Unable to instantiate application
错误:Unable to instantiate application 本文地址: http://blog.csdn.net/caroline_wendy 错误:java.lang.RuntimeE ...
- 【Python3 爬虫】01_简单页面抓取
运行平台:Winodows 10 Python版本:Python 3.4.2 IDE:Sublime text3 网络爬虫 网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网 ...
- 2014哈商大ICPC/ACM校赛解题报告
被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数 ...
- android:ellipsize实现跑马灯效果总结
最近无意间看到了涉及到跑马灯效果的代码,于是在网上查阅了很多资料,在这里对自己看的一些文章进行一下总结,顺便加上自己的一些体会. 让我们一步步逐渐向下. 首先我们要实现走马灯这样一个效果,通常来说都是 ...
- WORD文档书签管理
最近在浏览一个word超长文档,在文档中有几处要点用颜色做了标记,但是在下次查找的时候无法定位,还得一页页去翻,而且无法通过目录概览的形式查看总共做了多少处标记 于是想到了书签 原本以为在视图中能够设 ...
- OUTLOOK之不能直接发送邮件的Mapi错误解决方法
近期在从office2010直接升级到2013,发现右键文件不能发送到邮件了,同一时候在word文档里.也不能作为附件发送到邮件了. 提示错误是: Mapi Failure - "Unspe ...
- MVC的设计模式在JavaWeb中的实现
JSP开发模式 jsp开发模式的发展 1.模式1:(适合小型项目的技术的开发) a.第一版本号,纯jsp(封装数据.处理数据,显示数据) b.第二版本号,Jsp+JavaBean. ...
- Redis_发布订阅(基础)
目录 前言 生产者和消费者 发布和订阅 Java实现 注意 前言 随着业务复杂, 业务的项目依赖关系增强, 使用消息队列帮助系统降低耦合度.发布订阅(pub/sub)是一种消息通信模式,主要目的是解除 ...
- shell实现洗牌随机
洗牌问题: 洗一副扑克,有什么好办法?既能洗得均匀,又能洗得快?即相对于一个文件来说怎样 高效率的实现乱序排列? 关于洗牌问题,其实已经有了一个很好的shell解法,这里另外给三个基于AWK的方法, ...
- layui表格渲染中模板的使用举例
实例一: { field: 'status', align: 'center', title: '活动状态', templet: function (d) { if (d.status == &quo ...