四则加减混合运算

四则加减混合运算

代码仓库地址:https://dev.tencent.com/u/dtid_cdbdd0ff6b6d6cf4/p/sizeyunsuan/git

项目要求

使用JAVA编程语言,独立完成一个3到5个运算符的四则运算练习的软件。

软件基本功能要求如下:

程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号±÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出
3÷5+2=2.6,2-5+10=7等算式。
练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。
当程序接收的参数为4时,以下为一个输出文件示例。
2018010203
13+17-1=29
11
15-5=160
3+10+4-16=1
15÷5+3-2=4
软件附加功能要求如下:(请有余力的同学完成)

支持有括号的运算式,包括出题与求解正确答案。注意,算式中存在的括号数必须大于2对,且不得超过运算符的个数。

扩展程序功能支持真分数的出题与运算(只需要涵盖加减法即可),例如:1/6

  • 1/8 + 2/3= 23/24。注意在实现本功能时,需支持运算时分数的自动化简,比如
    1/2+1/6=2/3,而非4/6,且计算过程中与结果都须为真分数。

思路

1.项目要求整数运算时不能出现小数和负数,那我们就不能一口气全部生成,需要一个一个的运算并判断是否符合需要。对此我的想法是首先产生一个最简单的式子,只实现两个数的运算,然后通过循环增加运算数的个数,并且在每一次循环中都要判断产生的新式子是否符合规范,代码如下:
在这里插入图片描述

在这里插入图片描述
2.对于真分数的运算没有整数那么复杂,只需要实现加减运算即可,要注意的是在减运算过程中,通分后的分子运算一定要大于0;在加运算的过程中,分子的最终结果一定要小于分母,确保是真分数。
在这里插入图片描述
在这里插入图片描述
3.不过要实现以上的式子需要两个函数分别是:求最大公因数的算法和判断优先级的算法:
在这里插入图片描述

运行实例

在这里插入图片描述

收获与反思

在这次项目中,收益匪浅,首先是做项目的过程,一开始的时候思路不是很清晰,不知从哪下手,于是边想边做,做到后面突然发现有些功能实现不了,需要全部开始重做,说实话当时的心情是崩溃的,不过有了第一次的经验,后来是在纸上先画出主要架构,然后一步一步的去填写代码,结果要比之前的好了很多。最后是对代码的优化,通过参考学长的代码删除了很多冗余代码,最后只用了二百多行的代码实现了。不过对于这次项目的要求没有很好地实现,无法实现ab+cd这类式子,原因在于后者的优先级大于前者,会在乘号前面自动生成括号,对此我会继续优化改正。

谢谢大家!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值