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