ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

四则运算统计正确率

2021-10-31 16:02:57  阅读:146  来源: 互联网

标签:nextInt int 四则运算 System 正确率 arr1 println 统计 out


今天完成四则运算程序,可以实现出指定题数的题目,能够统计正确率,并且能够重做错题。

如下代码:

import java.util.Random;
import java.util.Scanner;
public class Test2 {  public static void main(String[] args) {
  // TODO 自动生成的方法存根
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入出题题数:");
  int sum = scanner.nextInt();
  //int c=scanner.nextInt();
  /*int sum = 0,c = 0;
  sum(sum);
  fanwei(c);*/
  int[] arr1=new int[sum*2];
  int[] xuhao=new int[sum];
  int[] shu1=new int[sum];
  int[] fuhao=new int[4];
  int[] shu2=new int[sum];
  randomArr(arr1);
  /*for(int i=0;i<rand.length;i++) {
   System.out.println(rand[i]);
  }*/
  
  System.out.println("是否出现乘除运算,是输入1,否输入0");
  //Scanner scanner=new Scanner(System.in);
  int x=scanner.nextInt();
  int k=0,m=0,right=0;
  
  switch(x) {
  case 0:
   //String[] operate=new String[]{"+","-"};
      Random rand=new Random();
      for(int i=0;i<arr1.length;i=i+2){
       int rand1=rand.nextInt(2);
       if(rand1==0) {
        System.out.println(k+1+".  "+arr1[i]+'+'+arr1[i+1]+"=");
       
        int jieguo=scanner.nextInt();
       
        if(arr1[i]+arr1[i+1]==jieguo) {
         System.out.println("正确!");right++;
        }
        else {
         System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=0;shu2[m]=arr1[i+1];   m++;     }
       
        }
      
      else if(rand1==1) {
           System.out.println(k+1+".  "+arr1[i]+'-'+arr1[i+1]+"=");
         int jieguo=scanner.nextInt();
         if(arr1[i]-arr1[i+1]==jieguo) {
          System.out.println("正确!");right++;
         }
         else {
          System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=1;shu2[m]=arr1[i+1];   m++;     }
       }
      
        ++k;}
     
      break;
     
  case 1:
     
       Random rand2=new Random();
       for(int i=0;i<arr1.length;i=i+2){
        int rand1=rand2.nextInt(4);
        if(rand1==0) {
         System.out.println(k+1+".  "+arr1[i]+'+'+arr1[i+1]+"=");
         int jieguo=scanner.nextInt();
         if(arr1[i]+arr1[i+1]==jieguo) {
          System.out.println("正确!");right++;
         }
         else {
          System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=0;shu2[m]=arr1[i+1];   m++;     }
        
         }
        else if(rand1==1) {
            System.out.println(k+1+".  "+arr1[i]+'-'+arr1[i+1]+"=");
          int jieguo=scanner.nextInt();
          if(arr1[i]-arr1[i+1]==jieguo) {
           System.out.println("正确!");right++;
          }
          else {
           System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=1;shu2[m]=arr1[i+1];   m++;     }
        }
        else if(rand1==2) {
             System.out.println(k+1+".  "+arr1[i]+'*'+arr1[i+1]+"=");
           int jieguo=scanner.nextInt();
           if(arr1[i]*arr1[i+1]==jieguo) {
            System.out.println("正确!");right++;
           }
           else {
            System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=2;shu2[m]=arr1[i+1];   m++;     }
        }
        else if(rand1==3) {
             System.out.println(k+1+".  "+arr1[i]+'/'+arr1[i+1]+"=");
           int jieguo=scanner.nextInt();
           if(arr1[i]/arr1[i+1]==jieguo) {
            System.out.println("正确!");right++;
           }
           else {
            System.out.println("错误,已记录在错题本");xuhao[m]=k+1;shu1[m]=arr1[i];fuhao[m]=3;shu2[m]=arr1[i+1];   m++;     }
        }
         ++k;}
       break;
 }
  System.out.println("正确率:"+(right*100)/sum+"%");
  
  System.out.println("是否重做错题?是输入1,否输入0");
  int cout=scanner.nextInt();
  
  while(cout==1) {
   String[] operate=new String[]{"+","-","*","/"};
   
   for(int i=0;i<m;i++) {
    //System.out.println(xuhao[i]+'.');
    System.out.println(shu1[i]+operate[fuhao[i]]+shu2[i]+'=');
    int jieguo1=scanner.nextInt();
    if(fuhao[i]==0) {
     while(jieguo1!=shu1[i]+shu2[i]) {
      System.out.println("错误,请重新输入答案:");
      jieguo1=scanner.nextInt();
     }
     System.out.println("正确");
  }
    else if(fuhao[i]==1) {
     while(jieguo1!=shu1[i]-shu2[i]) {
      System.out.println("错误,请重新输入答案:");
      jieguo1=scanner.nextInt();
     }
     System.out.println("正确");
 }
    else if(fuhao[i]==2) {
     while(jieguo1!=shu1[i]*shu2[i]) {
      System.out.println("错误,请重新输入答案:");
      jieguo1=scanner.nextInt();
     }
     System.out.println("正确");
     }
    else if(fuhao[i]==3) {
     while(jieguo1!=shu1[i]/shu2[i]) {
      System.out.println("错误,请重新输入答案:");
      jieguo1=scanner.nextInt();
     }
     System.out.println("正确");
   }
  }
   System.out.println();
   System.out.println();
   System.out.println("已结束!!!");
   break;
}
  if(cout==0) {System.out.println("已退出!!!");}
}  
 
    public static int[] randomArr(int[] arr) {
        Random rd = new Random();
        for (int i = 0; i < arr.length; i++) {
            int count = 0;
//            arr[i]=rd.nextInt(10)+1;//常规来说是这样.但是我想输出不重复的随机数
            int temp = rd.nextInt(100);//先将随机数赋值给一个中间变量
            //然后再遍历一遍数组,如果有相同的,就不算,并且i--重新随机.
            for (int j = 0; j < arr.length; j++) {
                if (arr[j] == temp) {
                    count++;//在外循环定义一个计数器,在内循环内判断是否重复.否则循环结束
                    //内循环中的变量不能用于外循环
                }
            }if (count>0){//内循环结束,在外循环判断是否计数器>0,如果是,就i--,重新随机.
               //否则赋值给数组
                i--;
            }else{
                arr[i] = temp;
            }
        }
        return arr;
    }
   
   
 
 
}

标签:nextInt,int,四则运算,System,正确率,arr1,println,统计,out
来源: https://www.cnblogs.com/8-b-9/p/15489757.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有