四则运算生成器做法思路
- 定义一个四则运算符的字符数组,使用随机数方法每次产生1到3的随机数作为运算符个数,运算符的个数确定后操作数随之确定
- 用随机数方法Math.rabdom()产生确定范围内的随机数存入数组
- 同样使用随机数去取运算符,存放到一个数组里面
- 将操作数和运算符转成字符串存放到字符串数组,再将字符串数组转化成字符串,使用io流写入到文件中
public static float opt(String s) throws Exception {if (s == null || "".equals(s.trim())) {return 0f;}int a1 = s.indexOf("+");int a2 = s.indexOf("-");int a3 = s.indexOf("*");int a4 = s.indexOf("/");int a5 = s.indexOf("(");if (a1 == -1 && a2 == -1 && a3 == -1 && a4 == -1) {if (s.trim() == null || "".equals(s.trim())) {throw new Exception("operate error");}return Float.parseFloat(s.trim());}if (a5 != -1) {int a6 = s.indexOf(")");if (a6 == -1) {throw new Exception("括号不匹配");} else {float f = opt(s.substring(a5 + 1, a6).trim());s = s.replace(s.substring(a5, a6 + 1), String.valueOf(f));return opt(s);}}if (a1 != -1) {return opt(s.substring(0, a1))+ opt(s.substring(a1 + 1, s.length()));}if (a2 != -1) {return opt(s.substring(0, a2))- opt(s.substring(a2 + 1, s.length()));}if (a3 != -1) {return opt(s.substring(0, a3))* opt(s.substring(a3 + 1, s.length()));}if (a4 != -1) {return opt(s.substring(0, a4))/ opt(s.substring(a4 + 1, s.length()));}return Integer.parseInt(s.trim());}
使用以上的opt方法计算结果,该方法存在一些问题,比如计算结果没办法保留分数形式
- 目前只实现以上的功能
转载于:https://www.cnblogs.com/p-12/p/7535866.html
四则运算生成器做法思路相关推荐
- JEECG - 基于代码生成器的J2EE智能开发框架 续四: 查询条件SQL生成器设计思路
JEECG[J2EE Code Generation]是一款基于代码生成器的敏捷开发框架. 续前文:http://blog.csdn.net/zhangdaiscott/article/detail ...
- 小学四则运算生成器(Java实现)
跳转详细介绍的博客:小学四则运算生成器(Java实现) 实现效果图: 开始运行程序 未输入生成题目数量及数值范围 输入数值 随机生成题目 用户输入并提交答案,后台将用户答案与正确答案进行校正,统计正确 ...
- 7-15 QQ帐户的申请与登陆 (25 分)(map做法+思路分析)
一:题目 实现QQ新帐户申请和老帐户登陆的简化版功能.最大挑战是:据说现在的QQ号码已经有10位数了. 输入格式: 输入首先给出一个正整数N(≤10 5 ),随后给出N行指令.每行指令的格式为 ...
- 结队编程-基于gui的四则运算生成器
成员:卢少锐 201421123027.刘存201421033023 coding.net地址 1.需求分析:除了实现四则运算的功能外,还添加了计时器功能和语言选择功能 2.程序设计:这次作业是基于上 ...
- CSS Sprites图片拼合生成器实现思路
在对WEB前端做性能优化时,为了有效减少http请求数,通常会把Web用到的图片合并成一张大图,采用CSS的background-position 属性,控制页面的图片显示. 问题是,目前虽然有这么一 ...
- 结对编程1 - 四则运算生成器的改进(201421123040,60,61)
题目要求 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一 ...
- 7-7 有重复元素的全排列 (10 分)(set容器做法思路加详解)
一:题目 计算给定的n个数有多少种排列方式,即求全排列(可能出现重复的元素) 输入格式: 第一行输入数字的数量n(n>2),第二行给出每一个数字. 输出格式: 一个数字,不同排列方式的数量. 输 ...
- 7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫
一:题目 假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤ ...
- 结对编程1-基于GUI的四则运算生成器
https://git.coding.net/kjc976118457/work2.git 201421123017 康建灿 201421123016 郑怀勇 一.需求分析 记录用户的对错总数. 程序 ...
- 【个人项目总结】四则运算生成器
项目需求: 像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件", 分别满足下面的各种需求.下面这些需求都可以用命令行参数的形式来指定: a) 除了整数以外,还 ...
最新文章
- Java集合篇:Map总结
- GitHub 的前世今生
- Leetcode--149. 直线上最多的点数
- php登录注册脚本,PHP - 登录脚本
- C# 声明方法关键字
- phonegap免费视频
- 从ASP.NET的PHP执行速度比较谈起
- python对象的深复制与浅复制
- python入门教程基础语法_python入门教程13-02 (python语法入门之库相关操作)
- 多智能体自主协同技术
- 你可以将类似于Google Earth的地球仪嵌入到自己的网站中
- 字面量long后面的大小写l
- 使用USB充电的5号电池
- Linux下PCB的task_struck结构体
- 顺丰快递 : 请收下 MySQL 灵魂十连
- 客户分享微信个人号私域流量池养号技巧:外部储蓄号、内部储蓄号应该如何分别运营和养号!...
- 微信H5公众号获取openid爬坑记
- pandas, dataframe获取最后一行的三种方法
- 三大世界级难题,等你来解答
- 首篇!基于全景相机的深度学习综述:全面回顾未来展望