java 随机出题四则运算
作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186
我的github地址:https://github.com/kdaysl/fshost/blob/master/mar.java
一、需求分析
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。并且要求能处理用户的输入,并判断对错,打分统计。
二、功能设计
1. 输出相应数目的四则运算(加减乘除)题目及答案;
2. 随机产生具有三个操作数和两个运算符的四则运算;
3. 四则运算的答案不能为负数,如果为负数则重新输入该道题目;
4. 对用户的输入答案进行判断,正确则加分,错误则不加分,并予以提示。满分为100分;
5. 输出用户的总分数。
____________________________________________________________________________________________________________________________________________________________________
三、详细设计
1. 由于时间问题使用嵌套switch来完成多步计算
1.1随机产生前两个数字并和第一个运算符:
front = random.nextInt(100);
back = random.nextInt(100);
symbol = random.nextInt(4);
2.1嵌套switch-外:
switch (Symbol) {
case 0:
{
sSymbol = random.nextInt(4);
end = random.nextInt(100);
switch (ssymbol){
...
}
case 1:
{
while (front < back) {
front = random.nextInt(100);
back = random.nextInt(100);
}
sSymbol = random.nextInt(4);
end = random.nextInt(100);
switch (ssymbol){
...
}
break;
}
case 2:
{
sSymbol = random.nextInt(4);
end = random.nextInt(100);
switch (ssymbol){
...
}
break;
}
case 3:
{
if (back == 0) {
back = random.nextInt(99) + 1;
}
while (front % back != 0) {
front = random.nextInt(100);
back = random.nextInt(99) + 1;
}
sSymbol = random.nextInt(4);
end = random.nextInt(100);
switch (ssymbol){
...
}
break;
}
}
}
2.2switch嵌套-里,
switch (sSymbol){
case 0:{
...
inResult = input.nextInt();
corResult = front / back +end;
if (inResult == corResult)
correct++;
else {
...
}
break;
}
case 1:{
...
inResult = input.nextInt();
corResult = front / back -end;
if (inResult == corResult)
correct++;
else {
...
}
break;
}
case 2:{
...
inResult = input.nextInt();
corResult = front / back -end;
if (inResult == corResult)
correct++;
else {
...
}
break;
}
case 3:{
if (end == 0) {
end = random.nextInt(100);
}
while ((front + back)% end != 0) {
front = random.nextInt(100);
back = random.nextInt(100);
end = random.nextInt(99) + 1;
}
...
inResult = input.nextInt();
corResult = front / back / end;
if (inResult == corResult)
correct++;
else {
...
}
break;
}
}
31.错题录入数组
errorSymbol[j] = ( front + "/" + back +"/"+end+ "="+corResult);
errorId[k] = i + 1;
3.2用户输入答案对比
Scanner input = new Scanner(System.in); inResult = input.nextInt();
corResult...
if (inResult == corResult){
...}
四、过程耗时估计统计表
|
PSP2.1 |
Personal Software Process Stages |
Time Senior Studen(h) |
Time(h) |
|
Planning |
计划 |
0.1 |
0.1 |
|
Estimate |
估计这个任务需要多少时间 |
1 |
1 |
|
Development |
开发 |
2 |
3 |
|
Analysis |
需求分析 |
0.1 |
0 |
|
Design Spec |
生成设计文档 |
0 |
0 |
|
Design Review |
设计复审 |
0 |
0 |
|
Coding Standard |
代码规范 |
0 |
0 |
|
Design |
具体设计 |
1 |
1.5 |
|
Coding |
具体编码 |
2 |
3 |
|
Code Review |
代码复审 |
0 |
0 |
|
Test |
测试(自我测试,修改代码,提交修改) |
1 |
1 |
|
Reporting |
报告 |
0 |
0 |
|
测试报告 |
0 |
0 |
|
|
计算工作量 |
2 |
3 |
|
|
并提出过程修改计划 |
0 |
0 |
java 随机出题四则运算的更多相关文章
- 用Java随机生成四则运算
代码链接:https://github.com/devilwjy/Code.Demo 需求分析: 1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符 ...
- Java实现小学四则运算练习
Github项目地址:https://github.com/feser-xuan/Arithmetic.git 1.需求分析 软件基本功能要求如下: 程序可接收一个输入参数n,然后随机产生n道加减乘 ...
- 20175305张天钰Java结对编程四则运算
Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- 软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)
一.设计思想: 1.根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题:另一类是用户输入0或1,分情况解决问题. 2.针对这两类要求,具体设计思路已在上篇博文中写出 ...
- Java结对编程四则运算一周小结
Java结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...
- Java随机生成定长纯数字或数字字母混合数
(转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码
- 利用Java随机,生成随机学生数据
为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...
- 基于c编写的关于随机生成四则运算的小程序
基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/ ...
随机推荐
- win10下配置默认软件(转)
add by zhj: 以配置默认浏览器为例说明,配置其它程序类似 原文:https://blog.csdn.net/u013246898/article/details/52032567 第一步:在 ...
- 解决git pull/push每次都需要输入密码问题 和 HttpRequestException encountered
如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁 ...
- vue-devtools的安装与使用
安装 vue.js devtools vue官方中文文档:http://www.uihtm.com/vue/v2/guide/index.html# 安装 vue.js devtools 前提是Goo ...
- RSA算法的C++string实现(模幂算法和欧几里得算法的使用)后附思路
void resetNumA(string numAStr); //使用string重置numB void resetNumB(string numBStr); //将数组转换为字符串,用于输出 st ...
- 监听auduo标签播放
<audio id="audio" controls="controls" loop="loop" style="displ ...
- PHP filter_var 函数用法
先介绍下PHP Filter PHP手册地址:http://php.net/manual/zh/ref.filter.php PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤. ...
- nginx如何调用php
nginx如何调用php 采用nginx+php作为webserver的架构模式,在现如今运用相当广泛.然而第一步需要实现的是如何让nginx正确的调用php.由于nginx调用php并不是如同调用一 ...
- SSH的软链接后门
之前说过为了防止SSH的后面漏洞 , 升级到高版本的OpenSSH , 那也不能保证万无一失 经典后门 直接对sshd建立软连接 , 之后用任意密码登录即可 看下面操作 创建完软连接后 创建新的会 ...
- 已有的PHP安装gd扩展
第一步 安装依赖 1.安装xpm yum install libXpm-devel 2.安装zlib wget http://zlib.net/zlib-1.2.8.tar.gz tar -xzvf ...
- 在Ubuntu16.04中python环境下实现tab键补全
1.编写tab.py的代码: 1 #!/usr/bin/env python 2 # python startup file 3 import sys 4 import readline 5 impo ...