首页 > 其他分享 >9.30四则运算课堂测试三

9.30四则运算课堂测试三

时间:2022-10-04 11:23:26浏览次数:57  
标签:9.30 Scanner int 四则运算 System nextInt static 课堂 public

阶段1: 1、定义主界面菜单,

1、参数设置

2、小学二年级口算题

3、小学三年级口算题

4、小学四年级口算题

5、错题集

其中参数设置包括出题个数(缺省值为30)、操作数数值范围。

小学二年级口算题操作数为两个、可进行加减乘除运算(除法必须可以整除),操作数范围不超过100.

小学三年级口算题操作数不超过4个,可以进行加减乘除,操作数范围不超过1000.(要求采用继承小学二年级出题类的方式,实现小学三年级的出题类)

小学四年级口算题操作数不超过5个,可以进行加减乘除,还可以加入括号运算。 (要求采用继承小学三年级出题类的方式,实现小学四年级的出题类)

阶段2:

1、学生实时答题结束后,可以选择是否进行下一套题目答题,如果选择是,则抽取下一套题进行答题,答题结束可以通过查看错题本,查询今日做题正确率。

2、也可以针对错题进行二次答题。

 

主操作类:

 1 package SiZe;
 2 import java.util.*;
 3 import java.util.Random;
 4 import java.util.Scanner;
 5 public class sizeyunsuan {
 6     public static void main(String[] args) {
 7 
 8         Scanner scan =new Scanner(System.in);
 9         int a,b,n,num,sum=0;
10         menu.menu();
11 
12         a=scan.nextInt();
13 
14         switch(a) {
15         case 1:System.out.println("请输入需要的题目数:");
16                ShuJu.N=scan.nextInt();
17                System.out.println("请输入需要的操作数(操作数需要大于等于2):");
18                ShuJu.n=scan.nextInt();
19                System.out.println("请输入数据位数限制(2/3/4)");
20                ShuJu.a=scan.nextInt();
21                System.out.println("  ");
22                menu.menu();
23                 a=scan.nextInt();
24 
25 
26             switch(a) {
27 
28         case 2:Second.second();
29                System.out.println("是否查看错题集?(1是/2否)");
30               b=scan.nextInt();
31                if(b==1) {
32                     InTo.jixun();
33                 break;
34                       }
35                if(b==2) {
36 
37                break;
38                }
39 
40         case 3:Third.third();
41            System.out.println("是否查看错题集?(1是/2否)");
42             b=scan.nextInt();
43             if(b==1) {
44                  InTo.jixun();
45              break;
46                       }
47             if(b==2) {
48 
49             break;
50             }
51         case 4:Fourth.fourth();
52            System.out.println("是否查看错题集?(1是/2否)");
53             b=scan.nextInt();
54             if(b==1) {
55                  InTo.jixun();
56              break;
57                       }
58             if(b==2) {
59 
60             break;
61             }
62         case 5:InTo.jixun();
63         }
64         }
65     }
66     
67     
68     }

菜单类

 1 package SiZe;
 2 import java.util.Scanner;
 3 public class menu {
 4      public static void menu() {
 5             System.out.println("1.参数设置");
 6             System.out.println("2.小学二年级口算题");
 7             System.out.println("3.小学三年级口算题");
 8             System.out.println("4.小学四年级口算题");
 9             System.out.println("5.错题集");
10             System.out.println("请选择:");
11 
12         }
13 }

数据类

 1 package SiZe;
 2 import java.util.Scanner;
 3 import java.util.Random;
 4 public class ShuJu {
 5      private int shuju1;//数据1
 6        private int shuju2;//数据2
 7 
 8        private String fuhao;//符号
 9        static int N;//题目个数
10        static int n;//操作数个数
11        static int a;//数据位数
12       public static int shuju1() {
13 
14           int shuju1=0;
15            Random r= new Random();
16            if(a==2)
17            { shuju1=r.nextInt(99);}
18            else if(a==3)
19            { shuju1=r.nextInt(999);}
20            else if(a==4)
21            { shuju1=r.nextInt(9999); }
22            return shuju1;
23 
24           }
25       public static int shuju2() {
26 
27           int shuju2=0;
28            Random r= new Random();
29            if(a==2)
30            { shuju2=r.nextInt(99);}
31            else if(a==3)
32            { shuju2=r.nextInt(999);}
33            else if(a==4)
34            { shuju2=r.nextInt(9999); }
35            return shuju2;
36 
37           }
38       public static char yunsuan( ) {
39             Random r=new Random();
40             int t=(int)r.nextInt(4);
41             char fuhao=' ';
42             switch(t) {
43             case 0:
44                 fuhao = '+';
45                 break;
46             case 1:
47                     fuhao = '-';
48                     break;
49             case 2:
50                     fuhao = '*';
51                     break;
52              case 3:
53                     fuhao = '/';
54                     break;
55             }
56             return fuhao;
57       }
58 
59       public int num() {
60 
61         return N;
62 
63       }
64 
65         ShuJu(int shuju1,int shuju2,String fuhao,int num,int n){
66             this.shuju1=shuju1;
67             this.shuju2=shuju2;
68             this.fuhao=fuhao;
69             this.N=num;
70             this.n=n;
71         }
72 
73 
74 }

判断+计算+错题重练

  1 package SiZe;
  2 import java.util.Scanner;
  3 public class InTo {
  4     private static ShuJu sj;
  5     static int nnum=0;
  6     static int ccount=0;
  7     static  int cuoticount=0;
  8     static String []arr = new String[100000];
  9     static int []zqda = new int[100000];
 10     static int []cishu = new int[100000];
 11     public static void chuti()
 12     {
 13         int a = sj.shuju1();
 14         int b = sj.shuju2();
 15         char c = sj.yunsuan();
 16         String str = ""+a+c+b;
 17         int []cunshu = new int[1000];
 18         char []cunfuhao =new char[1000];
 19         int shu=0;
 20         int fuhao=0;
 21         if(c=='*')
 22         {
 23             cunshu[shu]=a*b;
 24         }
 25         else if(c=='/')
 26         {
 27             cunshu[fuhao]=a/b;
 28         }
 29         else
 30         {
 31             cunshu[shu]=a;
 32             shu++;
 33             cunshu[shu]=b;
 34             cunfuhao[fuhao]=c;
 35         }
 36 
 37         for(int i=2;i<sj.n;i++)
 38         {
 39             int zenjiashu = sj.shuju1();
 40             char zenjiac = sj.yunsuan();
 41             if(zenjiac=='*')
 42             {
 43                 cunshu[shu]=cunshu[shu]*zenjiashu;
 44             }
 45             else if(c=='/')
 46             {
 47                 cunshu[shu]=cunshu[shu]/zenjiashu;
 48             }
 49             else
 50             {
 51                 shu++;
 52                 cunshu[shu]=zenjiashu;
 53                 fuhao++;
 54                 cunfuhao[fuhao]=zenjiac;
 55             }
 56             str = str + zenjiac + zenjiashu;
 57         }
 58         int zhengquedaan=cunshu[0];
 59         int cou=0;
 60         for(int j=0;j<=fuhao;j++)
 61         {
 62             if(cunfuhao[cou]=='+')
 63             {
 64                 zhengquedaan+=cunshu[cou+1];
 65             }
 66             else
 67             {
 68                 zhengquedaan-=cunshu[cou+1];
 69             }
 70         }
 71         chutimu(str,zhengquedaan);
 72     }
 73 
 74     public static void chutimu(String str,int zhengquedaan)
 75     {
 76         if(ccount<sj.N)
 77         {
 78             arr[ccount]=str;
 79             zqda[ccount]=zhengquedaan;
 80             System.out.println(arr[ccount]+"=");
 81             int daan;
 82             Scanner sc = new Scanner(System.in);
 83             daan = sc.nextInt();
 84             if(daan!=zhengquedaan)
 85             {
 86                 System.out.println("答案错误");
 87                 cishu[ccount]=1;
 88                 cuoticount++;
 89             }
 90             else
 91             {
 92                 System.out.println("答案正确");
 93                 cishu[ccount]=0;
 94             }
 95             ccount++;
 96             chuti();
 97         }
 98         else
 99         {
100             System.out.println("错误率"+cuoticount*100/sj.N+"%");
101 
102         }
103     }
104     public static void  jixun()
105     {
106         System.out.println("请选择:   "+"\n"+
107                            "1.错题重做 "+"\n"+
108                            "2.再练一套 "+"\n"+
109                            "3.退出系统");
110          Scanner sc = new Scanner(System.in);
111          int xuan;
112          xuan = sc.nextInt();
113          switch(xuan)
114          {
115           case 1:cuoti();break;
116           case 2:zailian();break;
117           case 3:System.out.println("系统已退出,欢迎下次使用!");
118                   System.exit(0);
119          }
120     }
121     //做错题
122     public static void cuoti()
123     {
124         nnum=cuoticount;
125         cuoticount=0;
126         for(int i=0;i<sj.N;i++)
127         {
128             if(cishu[i]==1)
129             {
130                 System.out.println(arr[i]+"=");
131                 Scanner sc = new Scanner(System.in);
132                 int da;
133                 da = sc.nextInt();
134                 if(da!=zqda[i])
135                 {
136                     System.out.println("答案错误");
137                     cuoticount++;
138                 }
139                 else
140                 {
141                     cishu[i]=0;
142                     System.out.println("答案正确");
143                 }
144             }
145         }
146         System.out.println("错误率"+cuoticount*100/nnum+"%");
147         jixun();
148     }
149     //再练
150     public static void zailian()
151     {
152         ccount=0;
153         cuoticount=0;
154         nnum=0;
155         chuti();
156     }
157 }

二年级类

 1 package SiZe;
 2 import java.util.*;
 3 import java.util.Scanner;
 4 public class Second {
 5      public static void second() {
 6 
 7          Scanner scan =new Scanner(System.in);
 8         ShuJu sj ;
 9         InTo.chuti();}
10      
11 }

三年级类继承二年级类

 1 package SiZe;
 2 import java.util.Scanner;
 3 public class Third extends Second {
 4      public static void third() {
 5             
 6          Scanner scan =new Scanner(System.in);
 7         ShuJu sj ;
 8         
 9         InTo.chuti();
10         }
11      
12 }

四年级继承三年级类

 1 package SiZe;
 2 import java.util.Scanner;
 3 public class Fourth extends Third{
 4     public static void fourth() {
 5         
 6         Scanner scan =new Scanner(System.in);
 7        ShuJu sj ;
 8        
 9        InTo.chuti();}
10 }

 

标签:9.30,Scanner,int,四则运算,System,nextInt,static,课堂,public
From: https://www.cnblogs.com/psh888/p/16753441.html

相关文章

  • Java 四则运算 继承版
    packageT1;importjava.util.Scanner;publicclassA_Text{staticinttitle_n=30;staticScannercin=newScanner(System.in);publicstaticvoidmain(......
  • 四则运算——初级
    SEIndividualProject目录SEIndividualProject四则运算——初级题目需求分析设计编码重构代码测试思路说明时间花费比较已知问题四则运算——初级题目编写一个四则......
  • 动手动脑(四)静态初始化块的执行顺序 9.30
    packagetest2;classRoot{ static { System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } publicRoot() { ......
  • 动手动脑(三)9.30
    packagetest2;publicclassDemo2{ publicstaticvoidmain(String[]args){ Fooobj1=newFoo(); }}classFoo{ intvalue=100; publicFoo(in......
  • 英语演讲9.30
    ChangedandUnchangedItisknowntoallthatastimepasses,theremustbemuchdifferencebetweenpastandpresentthetopicthatIamgoingtotalkabou......
  • flower in 9.30
    我不知道我题都没改完我写什么鲜花。但是懒得改了。T3考场出了个大概是正解的东西然后写了160行将近5k代码心态就崩了(当时差不多十点,我就只做了T3)然后暴力跑路。然后挂成1......
  • 【闲话】2022.09.30
    今天值日实际上也没值多少运动会晒死了为什么不去机房啊为什么不去机房啊为什么不去机房啊为什么不去机房啊为什么不去机房啊为什么不去机房啊为什么不去机房......
  • 闲话 22.9.30
    闲话现在是8:00我一个字没写我就看我什么时候能写完这博客现在是8:40我水完了关于某个奇怪的题单某个奇怪的人突然就给我了说“我没写题解你要继承我的遗志把这......
  • 9.30
    今日内容1.字典相关操作2.元组相关操作3.集合相关操作4.字符编码理论5.字符编码实操1.字典相关操作1.类型转换 dict() 字典的转换一般不使用关键字而是自己动手......
  • 四则运算测试二
    packageoperation;importjava.util.Random;importjava.util.Scanner;publicclassoperation{publicstaticintnumber=0;//个数publicstaticintmult=......