小学四则运算

Posted 演奏者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小学四则运算相关的知识,希望对你有一定的参考价值。

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

需求分析

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+"=?”,应该优化为可以随机生成混合运算式子

以上是关于小学四则运算的主要内容,如果未能解决你的问题,请参考以下文章

2016012075+小学四则运算练习软件项目报告

2016012045 +小学四则运算联系项目报告

小学生四则运算小项目

小学四则运算训练改进

自动生成小学四则运算题目

小学四则运算