java实验报告有理数的类封装
华中科技大学文华学院
《Java程序设计》实验报告
实验三:有理数的类封装
专业班级: 通信工程2008级1班
姓名:
学号:
时间:
实验三:有理数的类封装
1、实验目的:
让学生学习使用类来封装对象的属性和功能。
2、实验要求:
希望程序能对分数(分子分母都是整数)进行四则运算,而且两个分数四则运算的结果仍然是分数。分数也称有理数。本实验要求用类实现对有理数的封装。有理数有两个重要的成员:分子和分母,另外还有重要的四则运算。
编写一个java应用程序,该程序中有一个Rational(有理数)类,具体要求如下:
Rational类有两个int型的成员变量,名字分别为numberator(分子)和denominator(分母)。
提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象。
提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法运算,并返回一个Rational对象。
提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。
提供Rational div(Rational r)方法,即有理数调用该方法与参数指定的有理数做除法运算,并返回一个Rational对象。
3、程序效果图
4、程序代码(主要语句有注释!)
5、实验思考问题
实验内容回答评语在Computer.java增加计算有理数除法的代码在Computer.java增加计算1+3/2+5/3+8/5+13/8…前20项和的代码
6、实验总结及心得
附录:程序摸版
Rational.java
public class Rational {
int numerator,denominator;
Rational(){}
Rational(int a,int b){
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
int c=a;
a=b;
b=c;
}
int r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b;
}
return b;
}
Rational add(Rational r) {
int a=r.getNumerator();
int b=r.getDenominator();
int newNumerator=numerator*b+denominator*a;
int newDenominator=denominator*b;
Rational result=new Rational(newNumerator,newDenominator);
return result;
}
Rational sub(Rational r) {
int a=r.getNumerator();
int b=r.getDenominator();