要求能实现对分数进行加、减、乘和除法运算。
程序代码:
import java.util.*;
class Rational{
double x,y;
Rational(double x,double y){
this.x=x;
this.y=y;
}
double computerArea(){
return (x/y);
}
}
public class Ex4_4{
public static void main(String args[]){
double area1=0,area2=0;
Rational num1,num2;
num1=new Rational();
num2=new Rational();
Scanner reader=new Scanner(System.in);
System.out.println("输入分子:");
double num1.x=reader.nextDouble();
double num2.x=reader.nextDouble();
System.out.println("输入分母:");
double num1.y=reader.nextDouble();
double num2.y=reader.nextDouble();
area1=num1.computerArea();
area2=num2.computerArea();
System.out.println("分数的加法运算:area1+area2="+(area1+area2));
System.out.println("分数的减法运算:area1-area2="+(area1-area2));
System.out.println("分数的乘法运算:area1*area2="+(area1*area2));
System.out.println("分数的除法运算:area1/area2="+(area1/area2));
}
}
这个程序的:class Rational{
double x,y;
Rational(double x,double y){
this.x=x;
this.y=y;
}
double computerArea(){
return (x/y);
}
}
public class Ex4_4{
public static void main(String args[]){
double area1=0,area2=0;
Rational num1,num2;
num1=new Rational();
num2=new Rational();
Scanner reader=new Scanner(System.in);
System.out.println("输入分子:");
double num1.x=reader.nextDouble();
double num2.x=reader.nextDouble();
System.out.println("输入分母:");
double num1.y=reader.nextDouble();
double num2.y=reader.nextDouble();
area1=num1.computerArea();
area2=num2.computerArea();
System.out.println("分数的加法运算:area1+area2="+(area1+area2));
System.out.println("分数的减法运算:area1-area2="+(area1-area2));
System.out.println("分数的乘法运算:area1*area2="+(area1*area2));
System.out.println("分数的除法运算:area1/area2="+(area1/area2));
}
}
double num1.x=reader.nextDouble();
double num2.x=reader.nextDouble();
System.out.println("输入分母:");
double num1.y=reader.nextDouble();
double num2.y=reader.nextDouble();
有错误,但是不明白愿意。希望能说一下,谢谢!
----------------解决方案--------------------------------------------------------
当你出现这个语句后:
Rational num1,num2;
num1=new Rational();
num2=new Rational();
你已经为Rational创建了两个实例对象,这时引用Rational里的变量时就不能在这个 num1.x前面加个数据类型了。
把dluble num1.x==>改为num1.x
你的这个Rational方法是个构造方法,在new个实例同时也要给他传两个值。如:
double area1=0,area2=0;
Rational num1,num2;
num1=new Rational(2.0, 4.0);
但你的主方法里有在控制台输入数字的语句。
System.out.println("输入分子:");
double num1.x=reader.nextDouble();
double num2.x=reader.nextDouble();
System.out.println("输入分母:");
double num1.y=reader.nextDouble();
double num2.y=reader.nextDouble();
这两个效果一样。因此,可以去掉其中一个。
1、去掉这个方法:
Rational(double x,double y){
this.x=x;
this.y=y;
}
把主方法里的numl.x,num2.x,numl.y,num2.y前面的double去掉就是OK
2、去掉这些代码:
System.out.println("输入分子:");
double num1.x=reader.nextDouble();
double num2.x=reader.nextDouble();
System.out.println("输入分母:");
double num1.y=reader.nextDouble();
double num2.y=reader.nextDouble();
然后在主方法里传两个值:
num1=new Rational(2.0, 4.0);num2=new Rational(7.0,9.0);
----------------解决方案--------------------------------------------------------
回复 2楼 hsh_1987
根据你的第一种方法,我把程序改成了:import java.util.*;
public class Ex4_4{
public static void main(String args[]){
double area1=0,area2=0;
Scanner reader=new Scanner(System.in);
System.out.println("输入第一个数的分子:");
double x1=reader.nextDouble();
System.out.println("输入第二个数的分子:");
double x2=reader.nextDouble();
System.out.println("输入第一个数分母:");
double y1=reader.nextDouble();
System.out.println("输入第二个数分母:");
double y2=reader.nextDouble();
area1=x1/y1;
area2=x2/y2;
System.out.println("分数的加法运算:area1+area2="+(area1+area2));
System.out.println("分数的减法运算:area1-area2="+(area1-area2));
System.out.println("分数的乘法运算:area1*area2="+(area1*area2));
System.out.println("分数的除法运算:area1/area2="+(area1/area2));
}
}
----------------解决方案--------------------------------------------------------