【第二周】结对编程(宫丽君和林莉):四则运算

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.结果分析

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

原文地址:https://www.cnblogs.com/gonglij/p/5860252.html