课堂练习--生成随机数

发布时间 2023-09-22 11:24:44作者: The-rich

 

package text;

import java.util.Timer;
import java.util.TimerTask;

public class MyTimer {
Timer timer;
int seconds; // 倒计时的秒数

public MyTimer(int seconds) {
this.seconds = seconds;
timer = new Timer();
timer.schedule(new RemindTask(), 0, 5000); // 每5秒执行一次
}

class RemindTask extends TimerTask {
public void run() {
if (seconds > 0) {
System.out.println("还剩下 " + seconds + "秒");
seconds-=5;
} else {
System.out.println("Time's up!");
timer.cancel(); //Terminate the timer thread
}
}
}

public static void main(String args[]) {
System.out.println("About to schedule task.");
new MyTimer(5); // 创建一个5秒的倒计时计时器
System.out.println("Task scheduled.");
}
}

package text;

import java.sql.Date;
import java.util.Random;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;

import text.MyTimer.RemindTask;

public class Lenson {
public static void main(String[] args) {
Random rand = new Random();
Scanner scan = new Scanner(System.in);
//Timer timer = new Timer();
int Num=0;
int num=0;
System.out.println("你希望写多少道题,输入题数N:");
int N=scan.nextInt();
System.out.println("输入做题时间:");
int time=scan.nextInt();
new MyTimer(time);
while(num<N) {
int a = rand.nextInt(100);
int b = rand.nextInt(100);
int c = rand.nextInt(4);
switch(c) {
case 0:
System.out.println(a+"+"+b+"=");
int n1=scan.nextInt();
num++;
if(n1==a+b) {
Num++;
System.out.println("回答正确");
}
else{
System.out.println("回答错误,正确答案是:"+(a+b));
}
break;
case 1:
if(NFu(a,b)) {
num++;
System.out.println(a+"-"+b+"=");
int n2=scan.nextInt();
if(n2==a-b) {
Num++;
System.out.println("回答正确");
}
else{
System.out.println("回答错误,正确答案是:"+(a-b));
}
}
break;
case 2:
if(NCheng(a,b)) {
num++;
System.out.println(a+"*"+b+"=");
int n3=scan.nextInt();
if(n3==a*b) {
Num++;
System.out.println("回答正确");
}
else{
System.out.println("回答错误,正确答案是:"+(a*b));
}
}
break;
case 3:
if(NChu(a,b)) {
num++;
System.out.println(a+"/"+b+"=");
int n4=scan.nextInt();
if(n4==a+b) {
Num++;
System.out.println("回答正确");
}
else{
System.out.println("回答错误,正确答案是:"+(a/b));
}
}
break;
}
}
//System.out.println("Num"+Num);
// System.out.println("N"+N);
System.out.println("正确率是:"+(1.0*Num/N));

}

private static boolean NChu(int a, int b) {
if(a%b!=0) {return false;}
return true;
}

private static boolean NCheng(int a, int b) {
if(a*b>1000) {return false;}
return true;
}

private static boolean NFu(int a,int b) {
if(a<b) {
return false;
}
return true;
}
}