• 作业4:结对编程项目四则运算


    我的小组成员是李静远,学号130201210  博客地址http://home.cnblogs.com/u/li457803908/

    优缺点:我的缺点是基础比较差,优点是态度积极,不会的地方会上网查询和询问同学。

    代码:

    package Rational;

    import java.util.StringTokenizer;
    /**
     * @author sunkun
     * 分数四则运算
     */
    public class Calculator {
     int numerator;  // 分子
     int denominator; // 分母
     
     Calculator(){
     }

     Calculator(int a,int b){
      if(a == 0){
       numerator = 0;
       denominator = 1;
      }
      else{
       setNumeratorAndDenominator(a,b);
      }
     }
     
     void setNumeratorAndDenominator(int a, int b){  //
    int c = f(Math.abs(a),Math.abs(b));         // 计算最大公约数
      numerator = a / c;
      denominator = b / c;
      if(numerator<0 && denominator<0){
       numerator = - numerator;
       denominator = - denominator;
      }
     }


    int getNumerator(){
      return numerator;
     }

     int getDenominator(){
      return denominator;
     }
     
     int f(int a,int b){  // 求a和b的最大公约数
      if(a < b){
       int c = a;
       a = b;
       b = c;
      }
      int r = a % b;
      while(r != 0){
       a = b;
                      b = r;;
       r = a % b;
      }
      return b;
     }
     
     Calculator add(Calculator r){  // 加法运算
      int a = r.getNumerator();
      int b = r.getDenominator();
      int newNumerator = numerator * b + denominator * a;
      int newDenominator = denominator * b;
      Calculator result = new Calculator(newNumerator,newDenominator);
      return result;
     }
     
     Calculator sub(Calculator r){  // 减法运算
      int a = r.getNumerator();
      int b = r.getDenominator();
      int newNumerator = numerator * b - denominator * a;
      int newDenominator = denominator * b;
      Calculator result = new Calculator(newNumerator,newDenominator);
      return result;
     }
     
     Calculator muti(Calculator r){ // 乘法运算
                                    int a = r.getNumerator();
      int b = r.getDenominator();
      int newNumerator = numerator * b - denominator * a;
      int newDenominator = denominator * b;
      Calculator result = new Calculator(newNumerator,newDenominator);
      return result;
     }
                      Calculator div(Calculator r){  // 除法运算
      int a = r.getNumerator();
      int b = r.getDenominator();
      int newNumerator = numerator * b;
      int newDenominator = denominator * a;
      Calculator result = new Calculator(newNumerator,newDenominator);
      return result;
     }

                   // 封装了具体运算,主要为对输入进行转换,对输出封装
     public static void compute(String data1,String operation,String data2){
      StringTokenizer fenxi = new StringTokenizer(data1,"/");
         int data1_1 = Integer.parseInt(fenxi.nextToken());
         int data1_2 = Integer.parseInt(fenxi.nextToken());
      fenxi = new StringTokenizer(data2,"/");
         int data2_1 = Integer.parseInt(fenxi.nextToken());
         int data2_2 = Integer.parseInt(fenxi.nextToken());
             
      Calculator r1 = new Calculator(data1_1,data1_2);
      Calculator r2 = new Calculator(data2_1,data2_2);
      
      Calculator result;
      int a,b;
      if(operation.equals("+")){
        result = r1.add(r2);
       a = result.getNumerator();
        b = result.getDenominator();
       System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
    }

      if(operation.equals("-")){
        result = r1.sub(r2);
       a = result.getNumerator();
        b = result.getDenominator();
       System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
      }
      
      if(operation.equals("*")){
        result = r1.muti(r2);
       a = result.getNumerator();
        b = result.getDenominator();
       System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
      }
      
      if(operation.equals("/")){
        result = r1.div(r2);
       a = result.getNumerator();
        b = result.getDenominator();
       System.out.println(data1+" "+operation+" " +data2+" = " + a + "/" + b);
      }
     }
    }

    总结:作业做得不是很好,大部分都是询问其他同学,不过我们也努力完成了。

  • 相关阅读:
    MATLAB仿真学习笔记(一)
    SolidWorks学习笔记(一)
    机械制造技术学习笔记(七)
    基于MATLAB的多功能语音处理器
    MATLAB图形界面设计(下)
    36、如何避免僵尸进程?
    37、局部性原理你知道吗?主要有哪两大局部性原理?各自是什么?
    35、 守护进程、僵尸进程和孤儿进程
    32、什么是快表,你知道多少关于快表的知识?
    30、终端退出,终端运行的进程会怎样?31、如何让进程后台运行
  • 原文地址:https://www.cnblogs.com/wann/p/5378395.html
Copyright © 2020-2023  润新知