用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; /** * 字符随机 ...
随机推荐
- python 使用for循环简单爬取图片(1)
现在的网站大多做了反爬处理,找一个能爬的网站还真不容易. 下面开始一步步实现: 1.简单爬录目图片 import urllib.request import re def gethtml(url): ...
- meta 如何写
阻止手机号加下划线,可拨打:<meta name="format-detection" content="telephone=no" /> (io ...
- 查看firefox浏览器 驱动geckodriver.exe文件的版本号的方法,以及下载链接
1-进入到geckodriver.exe文件的目录: 2-在路径栏下输入cmd: 3-命令行界面下输入:geckodriver.exe -h 可以看到文件的帮助信息,其中第一行就列出了版本号 为0.1 ...
- oracle用户名和密码到期后如何处理
原因:确定是由于Oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致. 影响: 1.密码过期后,业务进程连接数据库异常,影响业务使用. 2. ...
- 如何在Linux环境下通过uwgsi部署Python服务
部署python程序时常常会遇到同一台服务器上2.x和3.x共存的情况,不同应用需要使用不用的python版本,使用virtualenv创建虚拟环境能很好地解决这一问题. 首先,需要在服务器上安装vi ...
- 根据wsdl,axis2工具生成客户端代码
根据wsdl,axis2工具生成客户端代码 步骤: 1,下载axis2版本http://axis.apache.org/axis2/java/core/download.html 2,下载完成后解压, ...
- Android MediaPlayer 操作
- 20145322 《网络对抗》 MSF基础应用1
20145322何志威 Exp5 MS08_067漏洞测试 实验问答 什么是exploit.payload.encode exploit:通过一个漏洞对程序进行攻击的过程 payload:有具体功能作 ...
- 20145212罗天晨 注入shellcode实验及Retuen-to-libc实验
注入shellcode实验 实验步骤 一.准备一段shellcode 二.设置环境 Bof攻击防御技术 1.从防止注入的角度来看:在编译时,编译器在每次函数调用前后都加入一定的代码,用来设置和检测堆栈 ...
- poj 3368 Frequent values -Sparse-Table
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16537 Accepted: 5981 Description You ...