作业要求来源于: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 Studenh

Timeh

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 随机出题四则运算的更多相关文章

  1. 用Java随机生成四则运算

    代码链接:https://github.com/devilwjy/Code.Demo 需求分析: 1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符 ...

  2. Java实现小学四则运算练习

     Github项目地址:https://github.com/feser-xuan/Arithmetic.git 1.需求分析 软件基本功能要求如下: 程序可接收一个输入参数n,然后随机产生n道加减乘 ...

  3. 20175305张天钰Java结对编程四则运算

    Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...

  4. 结对作业——随机生成四则运算(Core 第7组)

    结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...

  5. 软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)

    一.设计思想: 1.根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题:另一类是用户输入0或1,分情况解决问题. 2.针对这两类要求,具体设计思路已在上篇博文中写出 ...

  6. Java结对编程四则运算一周小结

    Java结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...

  7. Java随机生成定长纯数字或数字字母混合数

    (转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码

  8. 利用Java随机,生成随机学生数据

    为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...

  9. 基于c编写的关于随机生成四则运算的小程序

    基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/ ...

随机推荐

  1. Python title()、upper()、lower()方法--string

    描述 title()方法: 将字符串中的单词“标题化”,即首字母大写,其余字母转化为小写. upper()方法:将字符串中的小写字母转化为大写字母. lower()方法:将字符串中的大写字母转化为小写 ...

  2. SpringBoot 2.x.x会拦截静态资源问题

    之前在看尚硅谷视频时,可谓是按照这老师的说法,一步一步按部就班,于是采坑了,在SpringBoot 2.x.x之前是不会对静态资源拦截的,但是现在已经普通使用2.x.x这个版本会对静态资源进行拦截.看 ...

  3. kubernetes命令详情

    查看客户端和服务器侧的版本信息 kubectl version 列出当前版本的kubernetes的服务器端所支持的api版本信息 kubectl api-versions 查看帮助,语法格式 kub ...

  4. Tomcat配置Web默认页面

    1.在web.xml中配置要加载的首页 <welcome-file-list> <welcome-file>Tiring-room/index.jsp</welcome- ...

  5. Navicat for MySQL下载安装和破解教程

    1.进https://navicatformysql.en.softonic.com/官网 2.第二步 3.第三步等待下载完成 4.第四步双击 二,破解 1.链接:https://pan.baidu. ...

  6. java快排思想

    1分治思想 1.1比大小在分区 1.2从数组中取出一个数做基准数 1.3将比他小的数全放在他的左边,比他大的数全放在他的右边 1.4然后递归 左边 和右边 }

  7. 可能是最简单的把C++Lib包装成C#可用dll的方法

    (想直接看结果的直接翻到最后) 之前对C++接触不多,最近工作需要,第三方给了一个C++的lib库,我们需要把它封装一下在C#中调用.对方要是直接给Dll就省事了... 研究了一下,基本有三个方向: ...

  8. Windows下的Python安装与环境变量的配置

    Windows下的Python安装与环境变量的配置 第一步:python下载: Python安装包下载地址:http://www.python.org/ 第二步:python安装: 双击下载包,进入P ...

  9. pytorch使用不完全文档

    1. 利用tensorboard看loss: tensorflow和pytorch环境是好的的话,链接中的logger.py拉到自己的工程里,train.py里添加相应代码,直接能用. 关于环境,小小 ...

  10. Hadoop Mapreduce 调优