zoukankan      html  css  js  c++  java
  • 【第二周】结对编程(宫丽君和林莉):四则运算

    1.需求:根据给出的由两个数字(整数或者是小数)和一个运算符构成的表达式,输入表达式的结果,并与正确答案进行比较,输出对错

    2.需求分析:

    (1)生成两个随机数

    (2)生成一个随机运算符

    (3)根据随机生成的数字和运算符构成的表达式,输入运算结果

    (4)根据输入的运算结果与正确答案进行比较,输出正确或者错误

    2.代码实现

    package ruan.jian.gong.cheng;
    
    import java.text.DecimalFormat;
    import java.util.Random;
    import java.util.Scanner;
    
    public class FigureOperate {
        public static void main(String[] args) {
            int correctNum=0;                    //统计答对的题目个数
            int wrongNum=0;                        //统计答错的题目个数
            Scanner scan=new Scanner(System.in);
            double result;                        //表达式的结果
            double correctResult;                //表达式的正确结果
            DecimalFormat df=new DecimalFormat("0.00");
            //循环输出10道十以内的四则运算
            for(int i=1;i<=10;i++){
                double num1=Math.round((double)(Math.random()*10));  //随机生成一个10以内的数字放在运算符的左侧
                double num2=Math.round((double)(Math.random()*10));  //随机生成一个10以内的数字放在运算符的右侧
                //随机生成一个运算符
                Random operate=new Random();
                int n=operate.nextInt(4);  
                char [] c={'+','-','*','/'};
                int ope=(int)c[n];               //获得随机生成的运算符对应的ASSIC值
                switch(ope){
                    case 43:{        //与加号对应的ASSIC值相等,即当运算符为加号时
                        System.out.print("请计算:"+num1+"+"+num2+"=");
                        result=scan.nextDouble();
                        correctResult=num1+num2;
                        if(correctResult==result){
                            System.out.println("计算正确");
                            correctNum++;
                        }else{
                            System.out.println("计算错误");
                            wrongNum++;
                        }
                        break;
                    }
                    case 45:{        //与减号对应的ASSIC值相等,即当运算符为减号时
                        System.out.print("请计算:"+num1+"-"+num2+"=");
                        result=scan.nextDouble();
                        correctResult=num1-num2;
                        if(correctResult==result){
                            System.out.println("计算正确");
                            correctNum++;
                        }else{
                            System.out.println("计算错误");
                            wrongNum++;
                        }
                        break;
                    }
                    case 42:{        //与乘号对应的ASSIC值相等,即当运算符为乘号时
                        System.out.print("请计算:"+num1+"*"+num2+"=");
                        result=scan.nextDouble();
                        correctResult=num1*num2;
                        if(correctResult==result){
                            System.out.println("计算正确");
                            correctNum++;
                        }else{
                            System.out.println("计算错误");
                            wrongNum++;
                        }
                        break;
                    }
                    case 47:{        //与除号对应的ASSIC值相等,即当运算符为除号时
                        System.out.print("请计算:"+num1+"/"+num2+"=");
                        result=scan.nextDouble();
                        correctResult=Double.parseDouble(df.format(num1/num2));
                        if(correctResult==result){
                            System.out.println("计算正确");
                            correctNum++;
                        }else{
                            System.out.println("计算错误");
                            wrongNum++;
                        }
                        break;
                    }
                }
            }
            System.out.println("共答对"+correctNum+"道题");
            System.out.println("共答对"+wrongNum+"道题");
        }
    }

    3.运行结果

    4.结果分析

    可以正确得出四则运算的结果并统计答对和答错的题数

  • 相关阅读:
    [转][Navicat for MySQL系列]Navicat如何使用(二)
    [转]Syntax error on token "Invalid Character", delete this token 的解决
    [转] valuestack,stackContext,ActionContext.之间的关系
    [转]jquery后代和子元素的区别
    python中模块、包、库的区别和使用
    python函数对象
    list深拷贝和浅拷贝
    json中load和loads区别
    变量作用域
    正则里的.*和.*?区别
  • 原文地址:https://www.cnblogs.com/gonglij/p/5860252.html
Copyright © 2011-2022 走看看