一道JAVA作业题(小学生加减法测验)

面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2... 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”
,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN

急,希望能有程序解释~~谢谢
展开
 我来答
无二肆玖一
2016-06-29 · TA获得超过1046个赞
知道小有建树答主
回答量:850
采纳率:76%
帮助的人:364万
展开全部
package my.test.main;

import java.util.Scanner;

public class Exam {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);
int score = 0;

// 十次循环,出题
for (int i = 0; i < 10; i++) {
// 通过随机产生1和2,来决定这题是加法还是减法
int operate = (int) (Math.random() * 2 + 1);
int result = 0;// 每题的结果
if (operate == 1) {// 1做加法
int num1, num2;
// 产生连个相加不和不超出50的整数
do {
num1 = (int) (Math.random() * 51);
num2 = (int) (Math.random() * 51);
} while (num1 + num2 > 50);

result = num1 + num2;
System.out.println(num1 + "+" + num2 + "=");
} else if (operate == 2) {// 2做减法
int num1, num2;
// 产生两个整数,用大的减去小的
num1 = (int) (Math.random() * 51);
num2 = (int) (Math.random() * 51);
if (num1 > num2) {
result = num1 - num2;
System.out.println(num1 + "-" + num2 + "=");
} else {
result = num2 - num1;
System.out.println(num2 + "-" + num1 + "=");
}
}

// 三次输入答案机会
for (int j = 1; j <= 3; j++) {
int input = in.nextInt();
if (input == result) {
switch (j) {
case 1:
score += 10;
break;

case 2:
score += 7;
break;
case 3:
score += 5;
break;
}
System.out.println("正确!");
break;
} else {
System.out.println("错误!还可以回答" + (3 - j) + "次。");
}
}

}

if (score > 90) {
System.out.println("总分为:" + score + ",SMART!");
} else if (score > 80 && score <= 90) {
System.out.println("总分为:" + score + ",GOOD!");
} else if (score > 70 && score <= 80) {
System.out.println("总分为:" + score + ",OK!");
} else if (score > 60 && score <= 70) {
System.out.println("总分为:" + score + ",PASS!");
} else {
System.out.println("总分为:" + score + ",TRY AGAIN!");
}
}

}
yan373738240
2016-06-29 · 超过24用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:40.2万
展开全部
import java.util.Random;
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Random ran=new Random();
Scanner scan=new Scanner(System.in);
int count=0;
for(int i=0;i<10;i++){//for循环10题
int a=ran.nextInt(50);//随机出一个大于等于0小于50的数
int b=ran.nextInt(50-a);//随机另一个大于登录0小于50-a的数,防止结果超过50
int rans=ran.nextInt(2);//随机生成0,1用来决定加减法
int result;//记录运算结果
if(rans==0){
System.out.println(a+"+"+b+"=");
result=a+b;
}else{
if(a>b){
System.out.println(a+"-"+b+"=");
result=a-b;
}else{
System.out.println(b+"-"+a+"=");
result=b-a;
}
}
//for循环3次看用户输入值是否等于运算结果,并根据第几次回答加不同的分
for(int j=0;j<3;j++){
int re = scan.nextInt();
if(re==result){
if(j==0){
count+=10;
}else if(j==1){
count+=7;
}else if(j==2){
count+=5;
}
break;//如果回答正确退出for循环
}

}

}
//下面就不用解释了吧
if(count>=90){
System.out.println("SMART");
}else if(count>=80){
System.out.println("GOOD");
}else if(count>=70){
System.out.println("OK");
}else if(count>=60){
System.out.println("PASS");
}else{
System.out.println("TRY AGAIN");
}
}
}
更多追问追答
追问
在运行时,输入错误答案就没结果了,你还是改改吧
追答
你可以继续输入。可以输入三次。只是没有提示你输入而已
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式