首页 > 代码库 > 小学四则运算

小学四则运算

两人组成员:黄兴、谢孝淼

需求分析

1、选择运算方法:四则运算或混合运算

2、生成两组100以内随机整数及运算符号,并进行运算

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

    若结果一致,则回答正确,选择继续或结束答题

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

4、在选择继续或结束答题时,若连续两次输入错误,则答题结束

功能实现

1、开始运行,选择运算方法

      System.out.println("*******题中有以下算法*******");
      System.out.println("*1.基本运算\t2.混合运算*");
      System.out.println("*************************");

2、用Scanner类和Random类,产生随机数和随机运算符

        Scanner sc = new Scanner(System.in);   //创建Scanner类的对象        System.out.println("请选择:");        int h = sc.nextInt();                          double result = 0;        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);        int e = r.nextInt(100);            Random r2 = new Random();        int i = r2.nextInt(3) + 1;             //另一个生成随机数1~4的方法        char chrs[] = { ‘+‘, ‘-‘, ‘*‘, ‘/‘ };  //将运算符号存到数组里        String.valueOf(chrs[i]);

3、用switch、case进行判断,并进行相应计算方法

        switch(h){                             //用switch,case进行判断,从而选择不同的运算方法        case 1:            switch(i){            case 1:System.out.println("本题为:"+a+"+"+b+"=?");  //加法运算                    result=a+b;                    break;            case 2:System.out.println("本题为:"+a+"-"+b+"=?");  //减法运算                    result=a-b;                    break;            case 3:System.out.println("本题为:"+a+"*"+b+"=?");  //乘法运算                    result=a*b;                    break;            case 4:System.out.println("本题为:"+a+"/"+b+"=?");  //除法运算                    float f = a;                    float g = b;                    result = f/g;                    break;                }            break;            case 2:System.out.println("本题为:("+a+"+"+b+")"+"/"+c+"-"+d+"*"+e+"=?");//固定模式的混合运算                result=(a+b)/c-d*e;                break;        default:System.out.println("输入有误,请重新输入!");        main(null);        }

4、用if、else对结果进行判断

        System.out.println("请输入您的答案:");        float jg = sc.nextFloat();                  //将自算结果赋给jg        if(jg==result){                             //用if,else对结果进行判断,正确则继续,若错误则显示正确答案,然后继续            System.out.println("结果正确!");            System.out.println("请做如下选择:");            }else{            System.out.println("结果错误!");            System.out.println("本题正确答案为:"+result);            System.out.println("请做如下选择:");        }

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

        System.out.println("1.开始下一题\t2.结束答题");        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.开始下一题\t2.结束答题");                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("连续两次输入错误,答题结束!");                }        }

运行结果显示

1、选择基本运算并回答正确

*******题中有以下算法********1.基本运算    2.混合运算**************************请选择:1本题为:39-12=?请输入您的答案:27结果正确!请做如下选择:1.开始下一题    2.结束答题

2、选择混合运算并回答错误

*******题中有以下算法********1.基本运算    2.混合运算**************************请选择:2本题为:(59+87)/65-12*60=?请输入您的答案:32结果错误!本题正确答案为:-718.0请做如下选择:1.开始下一题    2.结束答题

3、计算后,若做选择时连续两次输入错误

*******题中有以下算法********1.基本运算    2.混合运算**************************请选择:2本题为:(59+87)/65-12*60=?请输入您的答案:32结果错误!本题正确答案为:-718.0请做如下选择:1.开始下一题    2.结束答题3输入有误,请重新输入!1.开始下一题    2.结束答题3连续两次输入错误,答题结束!

4、若选择开始下一题,则重新选择算法

     若选择结束答题,则提示答题结束

总结

  收获:进一步掌握了Scanner输入方法和Random产生随机数的方法,结合数组的存储,通过if、else;switch、case判断,完成了简单的四则运算。

           观看其他同学的设计,对自己也有了很大的启发

  不足:1、方法步骤繁琐,可以进一步简化    2、除法算法有些小问题,遇到除不尽的数时计算结果无法用分数表示,自己输入的答案也无法用分数表示

           3、混合运算模式固定为“("+a+"+"+b+")"+"/"+c+"-"+d+"*"+e+"=?”,应该优化为可以随机生成混合运算式子

小学四则运算