首页 > 其他分享 >9.19随笔

9.19随笔

时间:2023-09-19 21:45:10浏览次数:43  
标签:random operand1 operand2 int 9.19 System 随笔 out

用Java实现一个程序:

随机生成30道小学二年级的四则运算,要求:减法结果不可出现负数,除法结果不可出现小数,乘法结果不能超过999.

代码如下:

import java.util.Random;
import java.util.Scanner;

public class ArithmeticQuiz {
public static void main(String[] args) throws InterruptedException {
Scanner scanner = new Scanner(System.in);
Random random = new Random();

int correctCount = 0;
int wrongCount = 0;

for (int i = 0; i < 30; i++) {
int operand1 = generateNumber(10, 99, random);
int operand2 = generateNumber(10, 99, random);
char op = generateOperator(random);

int result = 0;
String operatorStr;

switch (op) {
case '+':
result = operand1 + operand2;
operatorStr = "+";
break;
case '-':
if (!checkSubtraction(operand1, operand2)) {
i--;
continue;
}
result = operand1 - operand2;
operatorStr = "-";
break;
case '*':
if (!checkMultiplication(operand1, operand2)) {
i--;
continue;
}
result = operand1 * operand2;
operatorStr = "*";
break;
case '/':
if (!checkDivision(operand1, operand2)) {
i--;
continue;
}
result = operand1 / operand2;
operatorStr = "/";
break;
default:
operatorStr = "";
break;
}

System.out.println("倒计时开始!请在10秒内回答问题!");
System.out.print("题目" + (i + 1) + ": " + operand1 + " " + operatorStr + " " + operand2 + " = ");
int answer = scanner.nextInt();

Thread timerThread = new Thread(new TimerThread());
timerThread.start();

timerThread.join(10000);
timerThread.interrupt();

if (answer == result) {
System.out.println("回答正确!");
correctCount++;
} else {
System.out.println("回答错误!");
wrongCount++;
}
}

System.out.println("回答正确的题目数量: " + correctCount);
System.out.println("回答错误的题目数量: " + wrongCount);
}

public static int generateNumber(int min, int max, Random random) {
return min + random.nextInt(max - min + 1);
}

public static char generateOperator(Random random) {
char[] operators = {'+', '-', '*', '/'};
int index = random.nextInt(4);
return operators[index];
}

public static boolean checkSubtraction(int operand1, int operand2) {
return operand1 >= operand2;
}

public static boolean checkMultiplication(int operand1, int operand2) {
return operand1 * operand2 <= 999;
}

public static boolean checkDivision(int operand1, int operand2) {
return operand1 % operand2 == 0;
}
static class TimerThread implements Runnable {
@Override
public void run() {
for (int i = 0; i >= 0; i--) {
if (Thread.interrupted()) {
return;
}
System.out.println("剩余时间: " + i + "秒");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
return;
}
}
if (!Thread.interrupted()) {
System.out.println("时间到!");
}
}
}

}
//在倒计时的时候顺序有点错误

标签:random,operand1,operand2,int,9.19,System,随笔,out
From: https://www.cnblogs.com/my0326/p/17715895.html

相关文章

  • 大二打卡(9.19)
    今天做了什么:凌晨十二点半起床上厕所,心血来潮,看了眼12306,还真有29号的火车票了,虽然是无座票数据结构,今天讲到了栈结构,昨天王老师,包括大一时候的刘老师都经常提起,所以还是比较好理解的马原还是设计点哲学部分,不过比之前的什么形而上好理解点的部分晚上的白话文小说,老师讲的一如......
  • 9.19日
    今天学习了线性表的应用,分别为线性表的合并和有序表的合并,还简单学习了栈和队列的定义和特点。马原哲学部分了解到物质与意识的辩证关系,物质决定意识,而意识对物质具有反作用。importjava.util.LinkedList;importjava.util.Queue;publicclassMain{publicstat......
  • 23.9.19
    学习了HTML相关知识1、标签<h1>....</h1>(h1->h6重要程度依次降低)标签都是定义好的,不能自己随意定义2、水平线标签<hr>3、图片标签  <imgsrc="..."width="..."height="...">绝对路径:绝对磁盘路径(D:/xxx)、绝对网络路径(https://xxxx)相对路径:从当前文件开始查找。(./......
  • 2023.9.19 二年级四则运算在线答题
    packageTest2333;importjava.util.Random;importjava.util.Timer;importjava.util.TimerTask;importjava.util.Scanner;publicclassdaily1{//设置时长(秒)staticintcountDownTime=100;publicstaticvoidmain(String[]args){Scannersc=n......
  • 9.19
    今天上午算法学习了单双有序链表的组合;下午看黑马程序员学习了一下Javaweb打了一段代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"......
  • 2023.9.19
    今天数据结构学习了线性表的合并,只需要扩大集合a的范围即可,首先提取集合b中的数据,在判断a中是否有此数据,若没有则插入到集合a中。随后又学习了有序表的合并,主要思想就是利用两个集合中的数据比较,将较小的数存入新的数组中,随后较小的事数的数据下标加一在比较,最终会有一数组未加完,......
  • Java学习随笔——1
    Java学习拉开学习Java的第一篇,本篇内容来自遇见狂神说,感谢狂神老师的细节无私,干货满满的课程内容什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态......
  • 9.19日
    一 上午学了数据结构,学会了双向链表的插入删除,还有合并两个链表。二 对昨天的cf竞赛,补题,自己学着写了个题解,发到了csdn,收获很大。三 晚上练1000米,提高身体的承受能力还有耐力。四 学计算几何还有莫队,试试做html的QQ登录页面。......
  • 【原创】BGP-2随笔(BGP使用场合以及在不同场合下如何建立peer关系)
        大家好,今天我给大家简单说一下BGP的使用场合,以及在不同抵涞牧诰咏⒑驮诓煌之间的peer邻接关系的建立,希望大家能够建立起一种对BGP的宏观上的概念。    BGP的使用场合:我们知道,BGP是一种能够与时俱进的无为而治的路由协议,它能够承载大量的路由,而且有着非常好的......
  • 【原创】BGP-1随笔(BGP如何建立邻居)
        大家好,我是你们的龙少一郎,有些光阴没有拿笔挥洒了,觉得有必要写点东西,还是似曾相似的感觉,追随着心的方向,带着努力的梦想,一路跌跌撞撞,将回忆轻轻随手写上,今天我给大家说的是BGP的入门基础篇,菜鸟可以简单了解一下。    说到BGP,我们不得不把路由分类一下:内部路由(I......