首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java兑现两个分数相加的程序

2013-04-21 
java实现两个分数相加的程序class Fraction{privateint fenzi1privateint fenmu1privateint fenzi2priv

java实现两个分数相加的程序
class Fraction
{
private  int fenzi1;
private  int fenmu1;
private  int fenzi2;
private  int fenmu2;
}
public Fraction(int fenzi1,int fenmu1,int fenzi2,int fenmu2)
{
this.fenzi1 = fenzi1;
this.fenzi1 = fenzi1;
this.fenzi2 = fenzi2;
this.fenzi2 = fenzi2;
}
public void Fraction add(int fenzi1,int fenmu1,int fenzi2,int fenmu2)
{Fraction.fenzi1 = this.fenzi1 + fenzi1;
Fraction.fenmu1 = this.fenmu1 + fenmu1;
Fraction.fenzi2 = this.fenzi2 + fenzi2;
Fraction.fenmu2 = this.fenmu2 + fenmu2;
return ;
}
public void display(int fenzi1,int fenmu1,int fenzi2,int fenmu2)
System.out.println(fenzi1+"/"+fenmu1"+"+ fenzi2= "+"/" + fenmu2=);
return; 

class  Xunlian
{
public static void main(String[] args); 
{
Fraction fenshu1 = new Fraction (3,4);
public void Fraction add(int fenzi,int fenmu)
public display(int fenzi,int fenmu);
}

}
求高手帮忙改下程序,或给我一个完整的程序,用结构体实现两个分数的加减,万分感谢
[解决办法]

public class Fraction {
private int numerator;
private int denominator;

public Fraction(int numerator, int denominator) {
this.numerator = numerator;
this.denominator = denominator;
}

public int getNumerator() {
return numerator;
}

public void setNumerator(int numerator) {
this.numerator = numerator;
}

public int getDenominator() {
return denominator;
}

public void setDenominator(int denominator) {
this.denominator = denominator;
}

public Fraction add(Fraction summand) {
if (this.denominator % summand.getDenominator() == 0) {
summand.setNumerator(summand.getNumerator() * (this.denominator / summand.getDenominator()));
summand.setDenominator(this.denominator);
} else if (summand.getDenominator() % this.denominator == 0) {
this.setNumerator(summand.numerator * (summand.getDenominator() / this.denominator));
this.setDenominator(summand.denominator);
} else {
int tmp = this.denominator;

this.setDenominator(this.denominator * summand.getDenominator());
this.setNumerator(this.numerator * summand.getDenominator());

summand.setDenominator(tmp * summand.getDenominator());
summand.setNumerator(tmp * summand.getNumerator());
}

return new Fraction(this.numerator + summand.getNumerator(), this.denominator);

}

@Override
public String toString() {
if (this.numerator % this.denominator == 0) {
return "" + this.numerator / this.denominator;
} else if (this.denominator % this.numerator == 0) {
return 1 + "/" + this.denominator / this.numerator;
} else {


return this.numerator + "/" + this.denominator;
}
}

public static void main(String[] args) {
Fraction a = new Fraction(9, 12);
Fraction b = new Fraction(7, 12);

System.out.println(a.add(b));
}

}



只考虑了简单的通分,没有做有最大公约数的情况,而且计算后也没有约分,减法同理就不写了

热点排行