程序名称:小学生四则运算的出题程序

先附上代码:

package com.makequestion;

import java.text.DecimalFormat;
import java.util.Random;
import java.util.Scanner;

public class start {

private static int questionNum = 100;// 循环的次数
private static int rightResult = -1;// 正确答案
private static int inputResult = -1;// 输入的答案
private static int rightNum = 0;// 正确的个数

public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 1; i <= questionNum; i++) {
judgeResult(rightResult, inputResult);
}
showResult();
}

public static void showResult() {
if (rightNum == questionNum) {
System.out.println("非常 不错,全对!我已经没什么可以教你的了。");
} else {
DecimalFormat df = new DecimalFormat("0.00%");// 格式化输出
String rightRateStr;// 存储比率的字符串
double rightRate;// 正确率

rightRate = (double) rightNum / (double) questionNum;
rightRateStr = df.format(rightRate);
System.out.println("正确率为:" + rightRateStr);
System.out.println("革命尚未成功,同志仍需努力!");
}
}

public static void judgeResult(int rightResult, int inputResult) {// 判断对错
rightResult = makeQuestion();
inputResult = inputResult();
if (rightResult == inputResult) {
rightNum += 1;
System.out.print("\t正确");
System.out.println();
} else {
System.out.print("\t错误,正确答案为:" + rightResult);
System.out.println();
}
}

public static int makeQuestion() {
int operation = -1;// 标记运算符

int num1 = -1;// 运算数1
int num2 = -1;// 运算数2
int rightResult = -1;// 正确的运算结果

Random random = new Random();

num1 = random.nextInt(100);// 随机生成在[0,100]范围内的运算数1
num2 = random.nextInt(100);// 随机生成在[0,100]范围内的运算数2
operation = random.nextInt(3);// 产生随机数,代表运算符0为+,1为-,2为*,3为/
switch (operation) {
case 0: {
rightResult = num1 + num2;// 计算结果
System.out.print(num1 + "+" + num2 + "=");// 输出题目
break;
}
case 1: {
rightResult = num1 - num2;
System.out.print(num1 + "-" + num2 + "=");
break;
}
case 2: {
rightResult = num1 * num2;
System.out.print(num1 + "*" + num2 + "=");
break;
}
case 3: {
if (num2 == 0) {
num2 = num2 + 1;
}
rightResult = num1 / num2;
System.out.print(num1 + "/" + num2 + "=");
break;
}
}

return rightResult;
}

public static int inputResult() {// 用户输入答案
int result = -1;
Scanner input = new Scanner(System.in);
result = input.nextInt();// 用户输入她的答案
// input.close();
return result;
}

}

输入输出:

为了测试方便questionNum取为3。

1.有错误的情况

           

2.全对的情况

照片涉及隐私,恕难附加。

3.结对编程成果报告(小学生四则运算的出题程序,Java实现)的更多相关文章

  1. 随机四则运算的出题程序java

    一.设计思想 1.功能较多必须有菜单选择项,将一个大程序分为若干个功能模块的小程序,逐个实现2.针对题目避免重复时先将已生成的算式保存,然后将下一条生成的式子进行判断是否已生成,如果生成则返回循环语句 ...

  2. 软件工程-构建之法 小学生四则运算的出题程序,android版本

    内容中包含 base64string 图片造成字符过多,拒绝显示

  3. 2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算

    2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算 经过第一阶段的学习,同学们已经熟悉了这门语言基本的用法.在一次又一次对着电脑编写并提交代码,进行练习的时候,有没有觉 ...

  4. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第二周:整体性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第二周:整体性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  5. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第一周:阶段性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第一周:阶段性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  6. 20175208『Java程序设计』课程 结对编程练习_四则运算

    20175208 结对编程练习_四则运算(第一周) 结对成员:20175208张家华,20175202葛旭阳 一.需求分析: 实现一个命令行程序,要求: (1)自动生成指定数量的小学四则运算题目(加. ...

  7. 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...

  8. 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算_第三周

    2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址: @王志伟 四则运算第一周博客 @仇夏四则运算第一周博客 ...

  9. 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算——第一周

    2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址:点击这里 1. 需求分析: 可生成题目: - 输入要想生成 ...

随机推荐

  1. VCC、VDD、VSS以及VBAT的区别

    在STM32 的学习中,发现有几种看起来相关的名称,分别是VCC.VDD.VSS.VBAT,在经过搜索查找之后,总结如下: 1.VCC的C是Circuit的意思,是指整个供电回路的电压, 也有人说VC ...

  2. Home Assistant系列 -- 接入手机摄像头做实时监控和人脸识别

    准备一部废旧(土豪忽略,主要是穷)的.摄像头还是好的手机做监控设备,(Android 和iPhone都行)当Home Assistant 获得实时的视频流后,可以接入各种图像处理组件完成人脸识别,动作 ...

  3. STM32 Startup**.s文件中使用的 __main C函数入口

    代码: ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main L ...

  4. 微信小程序 微信支付

    微信小程序前端自处理: //时间戳 timeStamp() { return parseInt(new Date().getTime() / 1000) + '' }, //随机数 randomStr ...

  5. 鼠标移动在屏幕上显示温度Tip提示功能-CToolTipCtrl类的使用

    初学VC++,太多知识不懂,需要不断的查找资料,想通过记录让自己有所积累,主要是怕以后会很快忘记.最近在做一个在屏幕上显示鼠标移动位置的温度值,我利用先缓存一帧图像的温度值,然后,通过鼠标移动消息相应 ...

  6. mycp 补交作业

    老师好:我昨天做完时已经是11点多了,错过了提交时间,希望用此篇博客弥补一下我的过失. import java.io.; import java.lang.; import java.util.Sca ...

  7. 20155323 第三次实验 敏捷开发与XP实践

    20155323 第三次实验 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器 ...

  8. 2017-2018-1 20155329《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155329<信息安全技术>实验二--Windows口令破解 实验原理 口令破解方法 字典破解: 指通过破解者对管理员的了解,猜测其可能使用某些信息作为密码,利 ...

  9. nth-child()伪类选择器

    描述: 伪类:nth-child()的参数是an+b,如果按照w3.org上的描述,写成中文,很可能会让人头晕,再加上笔者的文笔水平有限,所以我决定避开an+b的说法,把它拆分成5种写法共5部分来说明 ...

  10. day1 HTML - <head>

    1.html是什么? 超文本标记语言(Hypertext Markup Language,HTML) <!DOCTYPE html> <html lang="en" ...