zoukankan      html  css  js  c++  java
  • (第二周)新小学四则运算

    结对项目:成员:黄兴、谢孝淼

    需求分析

    1、选择答题数目

    2、随机生成4个100以内的整数

    3、随机生成3个运算符

    4、使用for循环生成指定数量的题目,并进行作答

    5、输入结果与计算结果进行判断

        若结果一致,则回答正确,继续下一题

        若结果不一致,则回答错误,并显示正确答案,继续答题

        直到完成指定数量的题目,并输出答对题目数量及题目总数。

    4、在选择开始下一轮或结束答题时,若连续两次输入错误,则答题结束

    https: https://git.coding.net/yanzouzhe/szys.git

    SSH:   git@git.coding.net:yanzouzhe/szys.git

    功能实现

    1、指定题目数量h、并用result存储结果,right统计回答正确的题目数量

    System.out.println("*******随机四则运算*******");
            Scanner sc = new Scanner(System.in);   //创建Scanner类的对象
            System.out.println("请输入题目数量:");
            int h = sc.nextInt();                  
            double result = 0;
            int right=0;                           //统计正确题目的数量

    2、用for循环生成指定数量的题目,用random()生成随机整数和运算符,在此不考虑效能的问题,只求能出结果,用比较笨的方法,用switch,case列出所有64种可能并对结果进行判断并统计回答正确的题目数

    for(int m=0;m<h;m++){                   //for循环用来生成指定数量的题目
                Random r = new Random();               //生成一个100以内随机数的方法
                int a = r.nextInt(100);
                int b = r.nextInt(100);
                int c = r.nextInt(100);
                int d = r.nextInt(100);
                Random r2 = new Random();
                int i = r2.nextInt(3) + 1;             //另一个生成随机数1~4的方法
                int j = r2.nextInt(3) + 1;               //另一个生成随机数1~4的方法
                int k = r2.nextInt(3) + 1;               //另一个生成随机数1~4的方法
                char chrs[] = { '+', '-', '*', '/' };  //将运算符号存到数组里
                String.valueOf(chrs[i]);
                String.valueOf(chrs[j]);
                String.valueOf(chrs[k]);
                //用switch,case对三个运算符进行判断,方法比较笨,列出了全部64种情况                       
                switch(i){                           
                    case 1:{
                            switch(j){
                                case 1:{
                                        switch(k){
                                            case 1:System.out.println(a+"+"+b+"+"+c+"+"+d+"=?");
                                                    result=a+b+c+d;
                                                    break;
                                            case 2:System.out.println(a+"+"+b+"+"+c+"-"+d+"=?");
                                                    result=a+b+c-d;
                                                    break;
                                            case 3:System.out.println(a+"+"+b+"+"+c+"*"+d+"=?");
                                                    result=a+b+c*d;
                                                    break;
                                            case 4:System.out.println(a+"+"+b+"+"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a+b+f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 2:{
                                        switch(k){
                                            case 1:System.out.println(a+"+"+b+"-"+c+"+"+d+"=?");
                                                    result=a+b-c+d;
                                                    break;
                                            case 2:System.out.println(a+"+"+b+"-"+c+"-"+d+"=?");
                                                    result=a+b-c-d;
                                                    break;
                                            case 3:System.out.println(a+"+"+b+"-"+c+"*"+d+"=?");
                                                    result=a+b-c*d;
                                                    break;
                                            case 4:System.out.println(a+"+"+b+"-"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a+b-f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 3:{
                                        switch(k){
                                            case 1:System.out.println(a+"+"+b+"*"+c+"+"+d+"=?");
                                                    result=a+b*c+d;
                                                    break;
                                            case 2:System.out.println(a+"+"+b+"*"+c+"-"+d+"=?");
                                                    result=a+b*c-d;
                                                    break;
                                            case 3:System.out.println(a+"+"+b+"*"+c+"*"+d+"=?");
                                                    result=a+b*c*d;
                                                    break;
                                            case 4:System.out.println(a+"+"+b+"*"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a+b*f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 4:{
                                        switch(k){
                                            case 1:System.out.println(a+"+"+b+"/"+c+"+"+d+"=?");
                                                    float f1 = b;
                                                    float g1 = c;
                                                    if(g1!=0){
                                                        result =a+f1/g1+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"+"+b+"/"+c+"-"+d+"=?");
                                                    float f2 = b;
                                                    float g2 = c;
                                                    if(g2!=0){
                                                        result =a+f2/g2-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"+"+b+"/"+c+"*"+d+"=?");
                                                    float f3 = b;
                                                    float g3 = c;
                                                    if(g3!=0){
                                                        result =a+f3/g3*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"+"+b+"/"+c+"/"+d+"=?");
                                                    float f4 = b;
                                                    float g4 = c;
                                                    float p4 = d;
                                                    if(g4!=0 && p4!=0){
                                                        result =a+f4/g4/p4;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                            }
                    }
                    break;
                    case 2:{
                            switch(j){
                                case 1:{
                                        switch(k){
                                            case 1:System.out.println(a+"-"+b+"+"+c+"+"+d+"=?");
                                                    result=a-b+c+d;
                                                    break;
                                            case 2:System.out.println(a+"-"+b+"+"+c+"-"+d+"=?");
                                                    result=a-b+c-d;
                                                    break;
                                            case 3:System.out.println(a+"-"+b+"+"+c+"*"+d+"=?");
                                                    result=a-b+c*d;
                                                    break;
                                            case 4:System.out.println(a+"-"+b+"+"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a-b+f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 2:{
                                        switch(k){
                                            case 1:System.out.println(a+"-"+b+"-"+c+"+"+d+"=?");
                                                    result=a-b-c+d;
                                                    break;
                                            case 2:System.out.println(a+"-"+b+"-"+c+"-"+d+"=?");
                                                    result=a-b-c-d;
                                                    break;
                                            case 3:System.out.println(a+"-"+b+"-"+c+"*"+d+"=?");
                                                    result=a-b-c*d;
                                                    break;
                                            case 4:System.out.println(a+"-"+b+"-"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a-b-f/g;    
                                                    }        
                                                    break;
                                        }
                                }
                                break;
                                case 3:{
                                    switch(k){
                                            case 1:System.out.println(a+"-"+b+"*"+c+"+"+d+"=?");
                                                    result=a-b*c+d;
                                                    break;
                                            case 2:System.out.println(a+"-"+b+"*"+c+"-"+d+"=?");
                                                    result=a-b*c-d;
                                                    break;
                                            case 3:System.out.println(a+"-"+b+"*"+c+"*"+d+"=?");
                                                    result=a-b*c*d;
                                                    break;
                                            case 4:System.out.println(a+"-"+b+"*"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a-b*f/g;    
                                                    }
                                                    break;
                                    }
                                }
                                break;
                                case 4:{
                                    switch(k){
                                            case 1:System.out.println(a+"-"+b+"/"+c+"+"+d+"=?");
                                                    float f1 = b;
                                                    float g1 = c;
                                                    if(g1!=0){
                                                        result =a-f1/g1+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"-"+b+"/"+c+"-"+d+"=?");
                                                    float f2 = b;
                                                    float g2 = c;
                                                    if(g2!=0){
                                                        result =a-f2/g2-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"-"+b+"/"+c+"*"+d+"=?");
                                                    float f3 = b;
                                                    float g3 = c;
                                                    if(g3!=0){
                                                        result =a-f3/g3*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"-"+b+"/"+c+"/"+d+"=?");
                                                    float f4 = b;
                                                    float g4 = c;
                                                    float p4 = d;
                                                    if(g4!=0 && p4!=0){
                                                        result =a-f4/g4/p4;    
                                                    }
                                                    break;
                                    }
                                }
                                break;
                            }
                    }
                    break;
                    case 3:{    
                            switch(j){
                                case 1:{
                                        switch(k){
                                            case 1:System.out.println(a+"*"+b+"+"+c+"+"+d+"=?");
                                                    result=a*b+c+d;
                                                    break;
                                            case 2:System.out.println(a+"*"+b+"+"+c+"-"+d+"=?");
                                                    result=a*b+c-d;
                                                    break;
                                            case 3:System.out.println(a+"*"+b+"+"+c+"*"+d+"=?");
                                                    result=a*b+c*d;
                                                break;
                                            case 4:System.out.println(a+"*"+b+"+"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a*b+f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 2:{
                                        switch(k){
                                            case 1:System.out.println(a+"*"+b+"-"+c+"+"+d+"=?");
                                                    result=a*b-c+d;
                                                    break;
                                            case 2:System.out.println(a+"*"+b+"-"+c+"-"+d+"=?");
                                                    result=a*b-c-d;
                                                    break;
                                            case 3:System.out.println(a+"*"+b+"-"+c+"*"+d+"=?");
                                                    result=a*b-c*d;
                                                    break;
                                            case 4:System.out.println(a+"*"+b+"-"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a*b-f/g;    
                                                    }        
                                                    break;
                                        }
                                }
                                break;
                                case 3:{
                                        switch(k){
                                            case 1:System.out.println(a+"*"+b+"*"+c+"+"+d+"=?");
                                                    result=a*b*c+d;
                                                    break;
                                            case 2:System.out.println(a+"*"+b+"*"+c+"-"+d+"=?");
                                                    result=a*b*c-d;
                                                    break;
                                            case 3:System.out.println(a+"*"+b+"*"+c+"*"+d+"=?");
                                                    result=a*b*c*d;
                                                    break;
                                            case 4:System.out.println(a+"*"+b+"*"+c+"/"+d+"=?");
                                                    float f = c;
                                                    float g = d;
                                                    if(g!=0){
                                                        result =a*b*f/g;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 4:{
                                        switch(k){
                                            case 1:System.out.println(a+"*"+b+"/"+c+"+"+d+"=?");
                                                    float f1 = b;
                                                    float g1 = c;
                                                    if(g1!=0){
                                                        result =a*f1/g1+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"*"+b+"/"+c+"-"+d+"=?");
                                                    float f2 = b;
                                                    float g2 = c;
                                                    if(g2!=0){
                                                        result =a*f2/g2-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"*"+b+"/"+c+"*"+d+"=?");
                                                float f3 = b;
                                                float g3 = c;
                                                if(g3!=0){
                                                    result =a*f3/g3*d;    
                                                }
                                                break;
                                            case 4:System.out.println(a+"*"+b+"/"+c+"/"+d+"=?");
                                                    float f4 = b;
                                                    float g4 = c;
                                                    float p4 = d;
                                                    if(g4!=0 && p4!=0){
                                                        result =a*f4/g4/p4;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                            }
                    }
                    break;
                    case 4:{
                            switch(j){
                                case 1:{
                                        switch(k){
                                            case 1:System.out.println(a+"/"+b+"+"+c+"+"+d+"=?");        
                                                    float f1 = a;
                                                    float g1 = b;
                                                    if(g1!=0){
                                                        result =f1/g1+c+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"/"+b+"+"+c+"-"+d+"=?");
                                                    float f2 = a;
                                                    float g2 = b;
                                                    if(g2!=0){
                                                        result =f2/g2+c-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"/"+b+"+"+c+"*"+d+"=?");
                                                    float f3 = a;
                                                    float g3 = b;
                                                    if(g3!=0){
                                                        result =f3/g3+c*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"/"+b+"+"+c+"/"+d+"=?");
                                                    float f4 = a;
                                                    float g4 = b;
                                                    float p4 = c;
                                                    float q4 = d;
                                                    if(g4!=0 && q4!=0){
                                                        result =f4/g4+p4/q4;    
                                                    }
                                                    break;
                                        }
                                }    
                                break;
                                case 2:{
                                        switch(k){
                                            case 1:System.out.println(a+"/"+b+"-"+c+"+"+d+"=?");        
                                                    float f1 = a;
                                                    float g1 = b;
                                                    if(g1!=0){
                                                        result =f1/g1-c+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"/"+b+"-"+c+"-"+d+"=?");
                                                    float f2 = a;
                                                    float g2 = b;
                                                    if(g2!=0){
                                                        result =f2/g2-c-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"/"+b+"-"+c+"*"+d+"=?");
                                                    float f3 = a;
                                                    float g3 = b;
                                                    if(g3!=0){
                                                        result =f3/g3-c*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"/"+b+"-"+c+"/"+d+"=?");
                                                    float f4 = a;
                                                    float g4 = b;
                                                    float p4 = c;
                                                    float q4 = d;
                                                    if(g4!=0 && q4!=0){
                                                        result =f4/g4-p4/q4;    
                                                    }
                                                    break;
                                        }
                                }
                                break;    
                                case 3:{
                                        switch(k){
                                            case 1:System.out.println(a+"/"+b+"*"+c+"+"+d+"=?");        
                                                    float f1 = a;
                                                    float g1 = b;
                                                    if(g1!=0){
                                                        result =f1/g1*c+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"/"+b+"*"+c+"-"+d+"=?");
                                                    float f2 = a;
                                                    float g2 = b;
                                                    if(g2!=0){
                                                        result =f2/g2*c-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"/"+b+"*"+c+"*"+d+"=?");
                                                    float f3 = a;
                                                    float g3 = b;
                                                    if(g3!=0){
                                                        result =f3/g3*c*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"/"+b+"*"+c+"/"+d+"=?");
                                                    float f4 = a;
                                                    float g4 = b;
                                                    float p4 = c;
                                                    float q4 = d;
                                                    if(g4!=0 && q4!=0){
                                                        result =f4/g4*p4/q4;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                                case 4:{
                                        switch(k){
                                            case 1:System.out.println(a+"/"+b+"/"+c+"+"+d+"=?");        
                                                    float f1 = a;
                                                    float g1 = b;
                                                    float p1 = c;
                                                    if(g1!=0 && p1!=0){
                                                        result =f1/g1/p1+d;    
                                                    }
                                                    break;
                                            case 2:System.out.println(a+"/"+b+"/"+c+"-"+d+"=?");
                                                    float f2 = a;
                                                    float g2 = b;
                                                    float p2 = c;
                                                    if(g2!=0 && p2!=0){
                                                        result =f2/g2/p2-d;    
                                                    }
                                                    break;
                                            case 3:System.out.println(a+"/"+b+"/"+c+"*"+d+"=?");
                                                    float f3 = a;
                                                    float g3 = b;
                                                    float p3 = c;
                                                    if(g3!=0 && p3!=0){
                                                        result =f3/g3/p3*d;    
                                                    }
                                                    break;
                                            case 4:System.out.println(a+"/"+b+"+"+c+"/"+d+"=?");
                                                    float f4 = a;
                                                    float g4 = b;
                                                    float p4 = c;
                                                    float q4 = d;
                                                    if(g4!=0 && p4!=0 && q4!=0){
                                                        result =f4/g4/p4/q4;    
                                                    }
                                                    break;
                                        }
                                }
                                break;
                            }
                    }
                    break;
                }
                float jg = sc.nextFloat();                  //将自算结果赋给jg
                if(jg==result){                             //用if,else对结果进行判断,正确则继续,若错误则显示正确答案,然后继续
                    System.out.println("答对了,你真是个天才!");
                    right++;
                }else{
                    System.out.println("结果错误!");
                    System.out.println("再想想吧,答案似乎是:"+result+"喔!");
                    }
            }

    3、运用switch、case进行判断,进行下步选择

    System.out.println("你一共答对"+right+"道题,"+"共"+h+"道题。");
            System.out.println("1.开始下一轮	2.结束答题");
            Scanner select = new Scanner(System.in);
            int se = select.nextInt();
            switch(se){                                 //两层switch,case判断,
            case 1:main(null);                          //如果两次选择均输入错误,则结束程序
                    break;
            case 2:System.out.println("答题结束!");
                    break;
            default:System.out.println("输入有误,请重新输入!");
                    System.out.println("1.开始下一轮	2.结束答题");
                    Scanner rp = new Scanner(System.in);
                    int rt = rp.nextInt();
                    switch(rt){
                    case 1:main(null);
                            break;
                    case 2:System.out.println("答题结束!");
                            break;
                    default:System.out.println("连续两次输入错误,答题结束!");
                    }
            }

    运行结果

    总结:对上周四则运算的改进。在分析阶段的时候考虑的很久,怎么样可以很方便的对4个随机数的四则运算,但是一直没有想到好的办法。最后只能妥协,选择了最笨的方法,列出了所有的可能性,在这里就不考虑效能的问题了。编码阶段就比较费劲了,每种可能性都需要写出来,真的很容易弄乱了,翻来覆去看了好多遍。先是完成一道题的随机生成并判断,成功后进而完成指定题目数量的任务。考虑到for循环应该放到哪里的问题,边运行边改正。最后确定完成答题后的下一步选择,是继续答题还是结束答题。在代码审查阶段的时候更费劲,代码太长了。还得考虑代码格式的问题,有问题的地方进行改成。最大的收获就是没有放弃而选择了最笨的方法,坚持就会有结果的。

    照片:

    不足:无法实现带括号的四个随机数的四则运算及支持分数的运算。

  • 相关阅读:
    java模式及其应用场景
    redis配置密码 redis常用命令
    Redis可视化工具Redis Desktop Manager使用
    String类和StringBuffer类的区别
    centos下搭建redis集群
    eclipse maven项目中使用tomcat插件部署项目
    什么是反向代理,如何区别反向与正向代理
    数据库连接池的原理
    归并排序
    asio-kcp源码分析
  • 原文地址:https://www.cnblogs.com/huangxman/p/5871201.html
Copyright © 2011-2022 走看看