标题:要求能实现对分数进行加、减、乘和除法运算。
只看楼主
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
结帖率:77.78%
已结贴  问题点数:10 回复次数:2 
要求能实现对分数进行加、减、乘和除法运算。
程序代码:
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=();
              area2=();
              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();
有错误,但是不明白愿意。希望能说一下,谢谢!
搜索更多相关主题的帖子: 除法 运算 分数 
2010-04-13 09:50
hsh_1987
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:92
专家分:343
注 册:2010-3-30
得分:10 
当你出现这个语句后:
     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);

努力很重要,决心比努力更重要...........
2010-04-13 10:18
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
得分: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));
       }
}
     
2010-04-13 11:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302761-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved