20165210 结对编程练习:四则运算(二)

20165210 结对编程练习:四则运算(二)

题目需求:

  1. 四则运算:
  • 自动生成
  • 要求有加减乘除
  • 支持真分数
  1. 统计正确率

需求分析:

  1. 首先我们可以把除法和分数归为一类
  2. 有一个类进行随机生成数
  3. 有一个类进行随机生成符号
  4. 主类进行四则运算和统计正确率
  5. 四则运算的计算式
  6. 分数的计算式

设计思路:

计算类:

public class Calculate{  //进行计算,利用栈的相关知识
    public int caculate(String Question,int choose){
        Rational result=new Rational();
        MiddleToBehind BQuestion=new MiddleToBehind();
        BQuestion.setNormal(Question);
        BQuestion.change();//把算式改成后序。
        OutOfStack calculate=new OutOfStack();
        result=calculate.evaluate(BQuestion.Behind); //运算出结果
        int a=result.getNumerator();//获得结果的分子
        int b=result.getDenominator();//获得结果的分母
        Scanner scanner = new Scanner(System.in);
        String answer=scanner.nextLine();//输入答案

获得算式:

 switch (language) {
            case 0:
                System.out.println("选择运算数最大为:");
                range=scanner.nextInt();//获得四则运算中数字的上限。
                break;
            case 1:
                System.out.println("Choose The maximum number of operands is");
                range=scanner.nextInt();//获得四则运算中数字的上限。
                break;
            case 2:
                System.out.println("選擇運算數最大為");
                range=scanner.nextInt();//获得四则运算中数字的上限。
                break;
        }

真分数运算:

  1. 设置分子:
 void setNumerator(int a){//设置分子
        int c=f(Math.abs(a),denominator);//计算最大公约数
        numerator=a/c;
        denominator=denominator/c;
        if (numerator<0&&denominator<0) {
            numerator=-numerator;
            denominator=-denominator;
        }
    }
  1. 设置分母:
 void setDenominator(int b){//设置分母
        int c=f(numerator,Math.abs(b));//计算最大公约数
        numerator=numerator/c;
        denominator=b/c;
        if (numerator<0&&denominator<0) {
            numerator=-numerator;
            denominator=-denominator;
        }
        else if (numerator>0&&denominator<0){
            numerator=-numerator;
            denominator=-denominator;
        }
    }

截图

结对感受

经过两次的结对学习,我发现了两个人一起学习的学习效率高过于独自学习的学习效率,在学习中两个人可以进行知识互补,其实思想什么的更多的是我的小伙伴想的,我只是提提意见,但是我相信在之后的结对学习中我会变得和他一样。

原文地址:https://www.cnblogs.com/lyklyk/p/8910285.html