一道JAVA作业题求教求设计程序!面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(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
亲测可运行。
import java.io.*;
public class Pratices {
public static void main(String[] args) {
new Pratices().list_Pratices();
}
//产生随机数
public int random_Num(int range) {
return (int) (Math.random() * range);
}
public void list_Pratices() {
int num_1, num_2, temp;
int type = random_Num(2);
int count = 1;
int score = 0;
int right = 0;
int wrongtimes = 0;
while (count <= 10) {
type = random_Num(2);
num_1 = random_Num(20); //可以修改这里来更改范围
num_2 = random_Num(30); //同上 现在是一个数20 一个数30以内的随机数
wrongtimes = 0;
if (type == 0) {
System.out.print("(" + count + ") " + num_1 + " + " + num_2
+ " = ");
} else if(type == 1){
if ((num_1 < num_2)) {
temp = num_1;
num_1 = num_2;
num_2 = temp;
}
System.out.print("(" + count + ") " + num_1 + " - " + num_2
+ " = ");
}
int answer = this.getAnswer(count);
boolean flag = check(num_1, num_2, type, answer, count);
if (flag) {
right++;
System.out.println("回答正确");
score += this.getScore(wrongtimes);
} else {
while (wrongtimes < 2) {
wrongtimes++;
System.out.println("回答错误 " + wrongtimes + " 次");
answer = this.getAnswer(count);
flag = check(num_1, num_2, type, answer, count);
if (flag) {
score += this.getScore(wrongtimes);
right++;
wrongtimes = 0;
break;
}
}
if (wrongtimes == 3)
System.out.println("回答错误 ");
else
System.out.println("回答正确");
}
count++;
}
System.out.println("回答正确 : " + right);
System.out.println("回答错误: " + (10 - right));
System.out.println("获得分数: " + score);
System.out.println(getDegree(score));
}
public boolean check(int num_1, int num_2, int type, int my_Answer,
int count) {
int answer = 0;
if (type == 1) {
answer = num_1 - num_2;
} else if (type == 0) {
answer = num_1 + num_2;
}
return my_Answer == answer;
}
public int getAnswer(int count) {
int my_Answer = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
my_Answer = Integer.parseInt(br.readLine());
} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
System.out.println("输入有误");
return 0;
} finally {
if (count >= 10 && (br != null)) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
br = null;
}
}
return my_Answer;
}
public int getScore(int wrongtimes) {
if (wrongtimes == 0) {
return 10;
} else if (wrongtimes == 1) {
return 7;
} else if (wrongtimes == 2) {
return 5;
} else
return 0;
}
public String getDegree(int score) {
if (score > 90)
return "SMART";
else if (score > 80)
return "GOOD";
else if (score > 70)
return "OK";
else if (score > 60)
return "PASS";
else
return "TRY AGAIN";
}
}
某企业就自身的100万元财产分别向甲乙两个保险公司投保90万元和60万元的企业财产保险.在保险期间 2020-04-27 …
目前我国教育经费来源中,所占比重最大的是( )。A.预算拨款B.企业投资C.社会资助D.个人投资 2020-05-19 …
金融机构之间由于正常业务往来引起资金结算而发生的同业间存放业务叫做:( )A.结算性存放业务B. 2020-05-27 …
4.单选题计算机的应用领域可大致分为6个方面,下列选项中属于计算机应用领域的是.A)现代教A)现代 2020-06-04 …
请教营业税的计算某公路工程,直接费为230万,间接费为34万,计划利润为13万,营业税率为3%,则 2020-07-09 …
4、会计单选下列描述中()符合主营业务收入.A.核算企业销售商品、提供劳务取得的收入B.核算企业销 2020-08-03 …
请教:计算甲企业2012年末实际应计提的坏账准备甲企业采用应收账款余额百分比法核算坏账损失.2012 2020-11-29 …
下列各句中,没有语病的一句是()A.如何才能培养出“大国工匠”?不少职业院校的领导和教师认为,要实现 2020-12-01 …
“国运兴衰,系于教育。”中国共产党和政府非常重视科教事业的发展,把教育事业摆放在了极为重要的地位。但 2020-12-15 …
第三产业主要是指A.公共福利、社会保险等公共事业B.服务业、通讯业和文教事业C.商业、运输业、信息工 2020-12-16 …