计应193第一组小学生做题软件——段杏娜

  设计实现了一个小学生数学考试系统,完成加减乘除随机出题,学生答题,自动判分的功能。
      随机产生一百以内的数字进行加减乘除,显示对错,每次共有五道题,算出最后总成绩,每次结果出来之后会清零可以进行下一轮测试。

 

package homework.make;

public class Demo {

    public static void main(String args[]) {

        int i = 0; // 记录答题个数
        int inputResult = 0; // 接收用户输入的结果
        do {
            // 实例化TestSystem类型对象
            Test t = new Test(Operate.getRandom(), Operate.getRandom(), Operate.getOperateEle());
            System.out.println(t); // 输出表达式
            inputResult = Operate.getInput(); // 用户输入
            if (inputResult == t.getResult()) { // 回答正确,加上对应的分值分

                System.out.println("回答正确!");
                Test.setGrade(20);
            } else { // 回答错误

                System.out.println("回答错误!");
            }
            i++;

        } while (i < 5); // 一共五道题(方便验证)

        Test.getGrade(); // 打印最后结果
        Test.clear(); // 总成绩清零

    }
}
package homework.make;

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

public class Operate {

    // 定义方法,返回一个100以内的随机数
    public static int getRandom() {
        Random ran = new Random();

        return ran.nextInt(100);
    }

    // 定义方法,返回操作符
    public static String getOperateEle() {

        String[] operateEle = { "+", "-","*","/" };
        Random ran = new Random();

        return operateEle[ran.nextInt(4)];
    }

    // 定义方法,取得用户输入的结果
    public static int getInput() {

        Scanner scan = new Scanner(System.in); // 实例化Scanner对象
        int result = 0;

        System.out.println("请输入结果:");
        result = scan.nextInt();
        return result;

    }

}
package homework.make;

public class Test {
    private int num1; // 声明两个操作数
    private int num2;
    private String operateEle; // 声明操作符
    private static int grade = 0; // 记录最后得分
    // 定义无参构造方法

    public Test() {

    }

    // 定义带参数的构造方法
    public Test(int num1, int num2, String operateEle) {

        this.num1 = num1;
        this.num2 = num2;
        this.operateEle = operateEle;
    }

    // 设置setter()和getter()方法
    public int getNum1() {
        return num1;
    }

    public void setNum1(int num1) {
        this.num1 = num1;
    }

    public int getNum2() {
        return num2;
    }

    public void setNum2(int num2) {
        this.num2 = num2;
    }

    // 覆写toString()方法
    public String toString() {

        return this.num1 + this.operateEle + this.num2;
    }

    // 取得表达式的正确结果
    public int getResult() {

        int result = 0;
        switch (this.operateEle) {

        case "+":
            result = this.num1 + this.num2;
            break;

        case "-":
            result = this.num1 - this.num2;
            break;
        case "*":
            result = this.num1 * this.num2;
            break;

        case "/":
            result = this.num1 / this.num2;
            break;
        }

        return result;
    }

    // 向屏幕输出总成绩
    public static void getGrade() {

        System.out.println("考试结束,最后成绩为:" + Test.grade);
    }

    // 答对问题,将对应的成绩加入总成绩
    public static void setGrade(int grade) {

        Test.grade += grade;
    }

    // 将总成绩清零
    public static void clear() {

        Test.grade = 0;
    }

}

 

posted @ 2021-05-31 15:12  刀锋2021  阅读(62)  评论(0编辑  收藏  举报