我的小组成员是李静远,学号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);
  }
 }
}

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

转载于:https://www.cnblogs.com/wann/p/5378395.html

作业4:结对编程项目四则运算相关推荐

  1. 作业四: 结对编程项目---四则运算

    队友:王烁 import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import ja ...

  2. 20165330 结对编程项目-四则运算 第一周

    需求分析 实现一个命令行程序,要求:自动生成小学四则运算题目(加.减.乘.除) 可实现多个运算符一起运算 可以真分数形式输出结果 测试结果的正确性 统计题目完成数并计算正确率 设计思路 实验首先是完成 ...

  3. 20172307 结对编程项目-四则运算 第二周 阶段总结

    20172307 结对编程项目-四则运算 第二周 阶段总结 (结队项目码云地址) 相关过程截图(关键代码处加了注释) 编写出实现中缀转后缀的类Transform /*Transform.java 作者 ...

  4. 20165318 结对编程项目-四则运算 阶段总结

    20165318 结对编程项目-四则运算 阶段总结 目录 一.需求分析 二.设计思路 三.实现过程中的关键代码解释 四.测试方法 五.运行过程截图 六.代码托管 七.遇到的困难及解决方法 八.对结对小 ...

  5. 结对编程项目-四则运算阶段性总结

    结对编程项目-四则运算阶段性总结 在这段时间的结对编程过程中,我和我的组员一同编程,初步完成了项目的要求,现在我将阶段性的成果做一个总结 一.需求分析 实现一个命令行程序,要求: 1.自动生成小学四则 ...

  6. 结对编程项目-四则运算整体总结

    结对编程项目-四则运算整体总结 在这一周中,我和我的搭档完成项目并实现了拓展需求,现在我将本项目的成果做一个总结 一.需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除 ...

  7. 结对编程项目-四则运算(第一周阶段性总结)

    结对编程项目-四则运算(阶段性总结) 需求分析 题目生成 多运算符(可设计层级) 包含括号(可单独使用) 无重复题目(可单独使用) 生成有意义的题目(例如:5x(5x5)等等) 等级划分 Level ...

  8. 20162303 结对编程项目-四则运算 第一周输出阶段总结博客

    第一周(2017-5-14 23:59截止)输出阶段总结博客 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ...

  9. 20172305 结对编程项目-四则运算 第二周 阶段总结

    结对编程的好丽友 20172323 王禹涵:中缀转后缀 20172314 方艺雯:后缀表达式的计算 20172305 谭鑫:中缀表达式的输出 遇到的困难和解决方案 问题1:括号的添加方法 解决方案: ...

最新文章

  1. 省市县导入mysql代码,通过csv
  2. linux系统下如何github,Linux系统下如何安装和使用GitHub
  3. java新手笔记1 Hello World!
  4. 快速统计hbase中某张表中数据条数
  5. 谷歌开源 tf-seq2seq,你也能用谷歌翻译的框架训练模型
  6. 阿里云ECS——Linux连接错误[Read from socket failed: Connection reset by peer]解决方案
  7. HDU 1180 诡异的楼梯(超级经典的bfs之一,需多回顾)
  8. python实时显示温度变化_python实时温度绘制
  9. 【转载】快速掌握一个语言最常用的50%
  10. def __init__(self)是什么意思_Python入门一篇搞懂什么是类
  11. 数据接入层设计的2-3法则:应对分布式与多元化存储
  12. FPGA内部结构和工作原理
  13. Java实现N元一次方程组求解
  14. 超赞Win10日历悬停效果,爱了爱了(使用HTML、CSS和vanilla JS)
  15. A3NCF: An Adaptive Aspect Attention Model for Rating Prediction
  16. 为什呢vue组件中的data必须是函数?
  17. vivo手机互传的文件怎么找到_小白换机最头疼文件转移!学会vivo互传这几个技巧,换机更轻松...
  18. uniapp自定义导航栏,手机顶部通知栏字体颜色修改
  19. PlatoFarm进展不断,接连上线正式版以及推出超级原始人NFT
  20. spark使用supervisor守护进程

热门文章

  1. 阿里P8前端工程师:如何成为一名优秀的前端工程师!
  2. 前端开发的瓶颈与未来
  3. 操作系统可实训可练习的项目
  4. python image.open函数_PIL.Image.open和cv2.imread的比较与相互转换的方法
  5. mongodb 监控权限_分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记
  6. java linux web_java在Linux下的web应用(一)
  7. C语言学习笔记---字符串查找函数strstr()和strpbrk()函数
  8. python中使用PIL模块中的ImageEnhance进行图片数据增强
  9. 机器学习-逻辑回归-信用卡检测任务
  10. 独立成分分析(Independent Component Analysis)(ICA)(主元分解)