用Java随机生成四则运算
代码链接:https://github.com/devilwjy/Code.Demo
需求分析:
1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。
2.每个练习题至少要包含2种运算符。
3.练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
4.练习题生成好后,将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。
当程序接收的参数为4时,以下为输出文件示例:

功能设计:
1.从键盘输入一个数值,并生成相应数量的四则运算练习题。
2.数值的范围为1到100,运算符的范围是+,-,*,/。
3.数值的个数为3个,运算符的个数为2个。
4.运算过程中不得出现负数与非整数。
5.将学号、生成的四则运算练习题并及计算答案输出到名为“Result.txt”的文档中。
设计实现:

测试运行:

核心代码:
以第一个运算符为“/”为例
//第一个运算符为“/”
else{
if(data1%data2==0 && data2!=0)//判断data1能否被data2整除,且除数data2不能为0
{
if(operator[num2]=="+")//乘除的优先级高于加减,所以可以顺着往下计算
{
result=data1/data2+data3;
System.out.println(str+"="+result); }
else if(operator[num2]=="-")
{
if(data1/data2>=data3)//判断data1/data2的商是否大于data3
{
result=data1/data2-data3;
System.out.println(str+"="+result); }
else{
number++;//不符合条件就将表达式的个数加1,进行下一个表达式的计算
}
}
else if(operator[num2]=="*")
{
result=data1/data2*data3;
System.out.println(str+"="+result); }
else{
int result1=data1/data2;
if(result1%data3==0 && data3!=0)//判断data1/data2的商能否整除data3,且data3不能为0
{
result=data1/data2/data3;
System.out.println(str+"="+result); }
else{
number++;
}
}
}
else{
number++;
}
}
总结:
本次实验我的实现过程很简单,而且有很大的局限性,只能生成含有三个数、两个运算符的四则运算练习题。一开始我的想法是将随机生成的四则运算放在一个字符串里,根据逆波兰式运算,将中缀表达式转换成后缀表达式,然后存储在栈中,但是最后没能成功,只好用一种极为简单的方式实现这个实验。说来有些惭愧,有点投机取巧之嫌,不过我的编程能力很差,纵然仔细研究了网上博客中的代码,还是写不出想要实现的方法。虽然很遗憾,但我也只能做到这儿了,不能说问心无愧,只能表明以前用的功太少了,以后回尽力改正,养成良好的习惯。
|
PSP |
任务内容 |
计划完成需要的时间(min) |
实际完成需要的时间(min) |
|
Planning |
计划 |
10 |
12 |
|
Estimite |
估计任务所需时间,并规划大致工作步骤 |
10 |
15 |
|
Development |
开发 |
100 |
120 |
|
Analysis |
需求分析 (包括学习新技术) |
8 |
6 |
|
Design Spec |
生成设计文档 |
6 |
5 |
|
Design Review |
设计复审(和同事审核设计文档) |
6 |
5 |
|
Coding Standard |
代码规范(为目前的开发指定合适的规范) |
5 |
5 |
|
Design |
具体设计 |
12 |
14 |
|
Coding |
具体编码 |
40 |
46 |
|
Code Review |
代码复审 |
12 |
15 |
|
Test |
测试(自我测试,修改代码,提交修改) |
15 |
12 |
|
Reporting |
报告 |
12 |
10 |
|
Test Report |
测试报告 |
5 |
5 |
|
Size Measurement |
计算工作量 |
3 |
3 |
|
Postmortem & Process Improvement Plan |
事后总结,并提出过程改进计划 |
5 |
8 |
用Java随机生成四则运算的更多相关文章
- Java随机生成定长纯数字或数字字母混合数
(转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码
- 基于c编写的关于随机生成四则运算的小程序
基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/ ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- java 随机生成4位随机数
java 随机生成4位的随机数测试类 @org.junit.Testpublic void testRandom(){ String msg="您的注册码为%s,谢谢注册!"; S ...
- Java随机生成18位身份证号
package com.ihome.data; import java.text.SimpleDateFormat; import java.util.Calendar; import java.ut ...
- java随机生成字符串并排序
package com.Imooc; import java.util.ArrayList; import java.util.Collections; import java.util.List; ...
- Java 随机生成中文姓名,手机号,邮编,住址
package lovo; import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @auth ...
- java随机生成字符串(字符随机生成类 生成随机字符组合)
原文:http://www.jb51.net/article/45006.htm package p2p_web; import java.util.ArrayList; import java.ut ...
- java随机生成字符串工具类
package aA; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; /** * 字符随机 ...
随机推荐
- matplotlib--画图时保存图片空白的问题
问题: 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白. import matplotlib.pyplot as plt ""&q ...
- ts实战项目启动中遇到的问题
项目链接:https://github.com/Jiasm/typescript-example 储备知识须知: sequelize入门篇 : 依照README执行以下操作: npm i brew s ...
- linux mysql安装问题
1.rpm -qa | grep mysql //首先检查是否安装了mysql 2.如果安装了,卸载 rpm -e mysql 3\ 下载地址 http://dev.mysql.com/d ...
- linux 统计wc
说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选项含义如下: - c 统计字节 ...
- JavaScript DOM2
1.Window.history:window.open打开网页的方式必须是_self window.history.back()后退 Window.history.forward()前进 <b ...
- 20154312 曾林 Exp3 免杀原理与实践
20154312 曾林 0.写在前面 AV厂商检测恶意软件的方式主流的就三种: 基于特征码的检测 启发式恶意软件检测 基于行为的恶意软件检测 我们要做的就是让我们的恶意软件没法被这三种方式找到,也就是 ...
- Devenv 命令行开关
Devenv 可用来设置集成开发环境 (IDE) 的各个选项,以及从命令行生成.调试和部署项目.使用这些开关从脚本或 .bat 文件(例如每夜生成的脚本)运行 IDE,或以特定配置启动 IDE. 说明 ...
- 20145316许心远《网络对抗》EXP7网络欺诈技术防范
20145316许心远<网络对抗>EXP7网络欺诈技术防范 实验后回答问题 通常在什么场景下容易受到DNS spoof攻击 公共共享网络里,同一网段可以ping通的网络非常容易被攻击 在日 ...
- php mysqli query 查询数据库后读取内容的方法
php mysqli query 查询数据库后读取内容的方法 <?php$mysqli = new mysqli("localhost", "my_user&quo ...
- Ubuntu系统下在github中新增库的方法
上一篇介绍了Ubuntu16.04系统下安装git的方法.本博客介绍怎么在github上怎么新建库. 如图 root@ranxf:/home/ranxf/learnGit/ranran_jiekou# ...