首页 > 其他分享 >9.18

9.18

时间:2023-09-20 22:12:18浏览次数:34  
标签:operand1 9.18 operand2 int System break result

今天是9.18日,一个深刻且难忘的日子。今天上午我们进行了传统工程实训,认识了各种加工方式及车床。

下午在建民老师的课上,我们学习了编程中的方法论。并写了一段四则运算的代码。

package lianxi1;

import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;

public class test01 {
    private static final int TIME_LIMIT = 10; // 设置测试时间限制为60秒
    private static boolean timedOut = false; // 超时标志

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

        int correctAnswers = 0;
        int incorrectAnswers = 0;

        Set<String> questions = new HashSet<>();

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                timedOut = true; 
            }
        }, TIME_LIMIT * 1000);

        while (questions.size() < 30 && !timedOut) {
            int operand1 = generateOperand(random);
            int operand2 = generateOperand(random);
            int operator = generateOperator(random);

            int result = calculateResult(operand1, operand2, operator);

            if (result > 1000 || result < 0) {
                continue;
            }

            String question = operand1 + " " + getOperatorSymbol(operator) + " " + operand2;
            if (questions.contains(question)) {
                continue;
            }

            questions.add(question);

            System.out.print("题目" + questions.size() + ": ");
            System.out.print(question + " = ");

            int userAnswer;
            if (!timedOut) {
                userAnswer = getUserAnswer(scanner);
            } else {
                userAnswer = -1; // 超时未回答问题,将答案设置为-1
            }

            if (userAnswer == result) {
                System.out.println("正确!");
                correctAnswers++;
            } else {
                System.out.println("错误! 正确答案是 " + result);
                incorrectAnswers++;
            }
        }

        printResult(correctAnswers, incorrectAnswers);

        timer.cancel(); 

        scanner.close();
    }

    

    public static int generateOperand(Random random) {
        return random.nextInt(80) + 1;
    }

    public static int generateOperator(Random random) {
        return random.nextInt(4); 
    }

    public static char getOperatorSymbol(int operator) {
        char operatorSymbol;
        switch (operator) {
            case 0:
                operatorSymbol = '+';
                break;
            case 1:
                operatorSymbol = '-';
                break;
            case 2:
                operatorSymbol = '*';
                break;
            case 3:
                operatorSymbol = '/';
                break;
            default:
                operatorSymbol = '+';
                break;
        }
        return operatorSymbol;
    }

    public static int calculateResult(int operand1, int operand2, int operator) {
        int result;
        switch (operator) {
            case 0:
                result = operand1 + operand2;
                break;
            case 1:
                result = operand1 - operand2;
                break;
            case 2:
                result = operand1 * operand2;
                break;
            case 3:
                if (operand2 == 0) {
                    result = 0;
                } else {
                     int quotient = operand1 / operand2;
                     int remainder = operand1 % operand2;
                     if (remainder != 0) {
                         operand1 = operand2 * quotient;
                     }
                     result = operand1 / operand2;
                }
                break;
            default:
                result = operand1 + operand2;
                break;
        }
        return result;
    }

    public static int getUserAnswer(Scanner scanner) {
        int userAnswer;
        while (true) {
            try {
                userAnswer = scanner.nextInt();
                break;
            } catch (Exception e) {
                System.out.println("输入错误. 请重新输入整数!");
                scanner.nextLine();
            }
        }
        return userAnswer;
    }

    public static void printResult(int correctAnswers, int incorrectAnswers) {
        System.out.println("答题结束!");
        System.out.println("正确题数: " + correctAnswers);
        System.out.println("错题数: " + incorrectAnswers);
        double accuracy = (double) correctAnswers / (correctAnswers + incorrectAnswers) * 100;
        System.out.println("正确率: " + accuracy + "%");
        
        if (timedOut) {
            System.out.println("倒计时结束,在规定时间内未完成测试题!");
    }
    }
}

 

标签:operand1,9.18,operand2,int,System,break,result
From: https://www.cnblogs.com/kongxiangzeng/p/17718578.html

相关文章

  • 2023.9.18
    //高精度//注:大写字母代表位数大于(1e6),小写字母代表小于(1e6)的数//在存储较大数时,用数组来记录每一位的数字,数组下标为0,则记录大数的个位,依次往后推##A+Bc++#include<iostream>#include<vector>usingnamespacestd;vector<int>add(vector<int>&A,vector<int>&B)......
  • 2023.09.18
    今天主要对java的方法和类进行了学习,学习了如何定义方法和类。以及当中的作用public/privateclass类名{public/private数据类型变量名;public/private数据类型方法名(参数列表){}}public:存取与访问不受限制;private:除非是属于类自己的方法,外界代码不能存取和访问......
  • 9.18CF1817题解
    9.18CF1817题解A.AlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\g......
  • 9.18日
    一 上午对昨天的icpc预选赛做了一下补题,但是还是不能理解,不会做,然后刷了一下睿抗caip的国赛,练了一下手速还有数据结构。二 下午上java,经过一道课堂测试,学会了java的stl,也学会了怎么设置倒计时。三 晚上打了一下cf竞赛,做出来了一道题,第二天补题吧再。......
  • 2023.9.18日报
    今日研究了通过sqoop把hive的数据导出到mysql,值得注意的是,我起初理解的是通过hive导出到windows的mysql,因此我研究了很久,之后查阅之后发现其实是通过navicat连接虚拟机的mysql,把hive的数据导出到mysql,通过navicat在windows上可视化具体的语句如下sqoopexport\--connectjd......
  • 9.18周一总结
    今天写了数据结构的函数题本题要求实现六个函数,顺序表为整型数据,可实现输入、输出、取值、查找、插入、删除功能。输入样例与输出样例对应情况见下图。函数接口定义顺序表描述的结构体为typedefstruct{ElemType*elem;//存储空间的基地址intlength;//当前长度......
  • 9.18日总结
    今天是每个中国人都应该铭记的日子,历史上的今天东北沦陷了,我们应该为抗战烈士们默哀,上午进行了传统制造实训,了解了手工制造机床、数控制造机床,了解了激光打印与激光雕刻,对传统制造实训有了新的认知,下午的Java课学了方法,对30道四则运算题进行了完善。......
  • 课堂测验(9.18)
    出30道二年级四则运算题目减法不能有负数,不能有重复题目,乘法结果小于四位数,除法是整除,能计时,能判断结果正确与否,能给出正确结果,正确率,错题数目首先一个记录时间的类packagehomework;publicclasstimeextendsThread{privateintseconds;//秒//计时方法@Overri......
  • 9.18r
    Pythonrequest_id传递除中间件的方式还可以采用本地线程实现;专业名词记忆得加强。描述符协议(get.set.delete魔术方法);Notimplemented。二元运算中可能会用到;MySQL大数据的优化。orm可能面临的一些弊端(映射。性能。独立性等方面不足。大数据量还是建议原生sql)分库分表(目......
  • 2023.9.18
    通过java的自带类写出了登录系统的框架,其中SWing类其中包含了设置框,设置字体以及颜色,还可以设置绝对位置。packagedenglujiemian;importjavax.swing.*;importjava.awt.*;importjava.util.ArrayList;importjava.util.Random;publicclassdenglu{publicstaticvoidma......