四则运算--计应192陈涯涯

一、题目:
请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共以及 对/错      的数量。
二、基本要求:
所编写出来的“软件”选择界面设计,选择加、减、乘、除运算。
系统随机产生一百以内的两个数进行运算。
使用该软件时,用户从键盘输入结果,回答正确和回答错误都有提示,结束后系统会自动给出相应的总题数和 对/错 的数量。
三、需求分析:
程序能实现0~100以内的加法、减法、乘法以及除法的运算。
用户能在java控制窗口输入自己的答案,该程序能够判断用户所输入答案的对错。
测试结束后,程序能给出所做题目的数量以及所做题目对/错的数量。
四、设计:
定义五个变量分别是:e, r, a, b, c,其中e表示答错的题数,表示r表示答对的题数,a, b分别表示0~100之间随机产生的两个整数
使用Scanner类创建了多个对象并对不同的运算类型调用相应的方法。
加、减、乘、除用一个switch控制语句来实现,整个程序的实现在主函数中体现。
五、代码实现:
  import java.util.Random;
  import java.util.Scanner;
  
  public class qq {
      public static void main(String[] args) {
          int e = 0, r = 0;
          System.out.println("欢迎来到四则运算测试软件!");
         System.out.println("做题前请认真读题,祝您考试愉快!");
         Random r1 = new Random();
        for (int i = 0; i < 7; i++) {
            int m, n;
             int a, b, c;
             m = r1.nextInt() % 10;
             n = m % 4;
 
             switch (n) {
             case 0:
                a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
               b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                 System.out.println(a + "+" + "" + b + "=?");
                Scanner x1 = new Scanner(System.in);
                 c = x1.nextInt();
                 if (c != a + b) {
                     e++;
                    System.out.println("回答错误!!");
                 } else {
                     r++;
                     System.out.println("回答正确!!");
               }
 
                break;
 
            case 1:
                a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                System.out.println(a + "-" + " " + b + " =?");
                 Scanner x2 = new Scanner(System.in);
                 c = x2.nextInt();
                if (c != a - b) {
                     e++;
                     System.out.println("回答错误!!");
                 } else {
                     r++;
                     System.out.println("回答正确!!");
                }
 
                 break;

             case 2:
               a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                 b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                 System.out.println(a + "*" + " " + b + " " + "=?");
                 Scanner y1 = new Scanner(System.in);
                 c = y1.nextInt();
                 if (c != a * b) {
                     e++;
                     System.out.println("回答错误!!");
                 } else {
                    r++;
                     System.out.println("回答正确!!");
                 }

                break;

           case 3:
                 double d;
                 a = new Random().nextInt((int) Math.pow(10, 2)) + 1;
               b = new Random().nextInt((int) Math.pow(10, 2)) + 1;
                 if (b == 0)
                    b++;
                 System.out.println(a + "/" + " " + b + " " + "=?");
                 Scanner y2 = new Scanner(System.in);
                d = y2.nextDouble();
                if (d != (a / b) / 1.00) {
                     e++;
                   System.out.println("回答错误!!");
                 } else {
                   r++;
                     System.out.println("回答正确!!");

                }
 
                 break;

             }
         }
         System.out.println("考试结束!!");
         System.out.println("您一共做了:" + (r + e) + "道题目,其中正确的有" + r + "道,错误的有" + e + "道!");
     }
 }
六、程序效果图:


七、PSP耗时:

   

     总结:老师刚开始布置作业的时候还没有明白是怎么回事,后来在第二次上机课的时候,老师再次的说明我才理解题目的意思。之前学过的相关计算机课程大部分都忘记了,程序中控制语句的用法以及java中类的用法也不怎么记得了,在写程序的过程中还好及时的查阅课本和资料、寻求同学和老师帮助才算完成。其中的不足之处还希望老师指出,以后继续努力!

posted @ 2021-06-01 15:51  陈十十  阅读(44)  评论(0编辑  收藏  举报