面向对象程序设计 翁凯测试作业

mac2024-05-23  45

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Fraction a = new Fraction(in.nextInt(), in.nextInt()); Fraction b = new Fraction(in.nextInt(),in.nextInt()); a.print(); b.print(); a.plus(b).print(); a.multiply(b).plus(new Fraction(5,6)).print(); a.print(); b.print(); in.close(); } } class Fraction{ private int molecule; //分子 private int denominator; //分母 private double sum; Fraction(int a, int b){ // 构造一个a/b的分数。 this.molecule = a; this.denominator = b; } double toDouble(int a, int b) { // 将分数转换为double sum = (double)molecule/denominator; return sum; } Fraction plus(Fraction r) { //将自己的分数和r的分数相加,产生一个新的Fraction的对象 Fraction m = new Fraction(0, 1); m.molecule = molecule*r.denominator + r.molecule*denominator; m.denominator = denominator*r.denominator; return m; } Fraction multiply(Fraction r) { //将自己的分数和r的分数相乘,产生一个新的Fraction的对象 Fraction m = new Fraction(0, 1); m.molecule = molecule*r.molecule; m.denominator = denominator*r.denominator; return m; } /*将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。如果分数是1/1, 应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出 */ void print() { int a = 0; int i = 1; int n = 0; boolean x =true; //等于零 if(molecule==0) { System.out.println(0); return ; } //正负号 if(molecule<0||denominator<0) { x = false; } //等于一 if(molecule==denominator) { System.out.println(1); return ; } if(molecule<denominator) { a = molecule; }{ a = denominator; } for(i=1;i<=a;i++) { if(molecule%i==0&&denominator%i==0) { n = i; } } if(x =true) { System.out.println(molecule/n+"/"+denominator/n); }else { System.out.println(-molecule/n+"/"+denominator/n); } } }
最新回复(0)