Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区 » Java与OOP初步  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 这是书上提示要求和RationalDemo.java [Re:zmj888]
zmj888





发贴: 22
积分: 0
于 2005-12-04 18:31 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
书上原文如下:这个案例学习的目的是设计并实现Rational类,代表对有理数的操作。一个有理数是两个整数的比值,通常以a/b的格式表示。称a为分子(numerator),b为分母(denominator)。分母不为零。基本操作有如下定义:
加法:(a/b)+(c/d)=(ad+bc)/bd;
减法:(a/b)-(c/d)=(ad+bc)/bd;
乘法:(a/b)*(c/d)=ac/bd;
除法:(a/b)/(c/d)=ad/bc;
分析和设计:
为了表示有理,需要表示它的分子和分母。这一必要性意味着一个表示有理数的类需要至少两个实例变量:一个变量代表该对象特定的分子,另一个变量代表该对象特定的分母。
private int numerator 相关有理数的分子
private int denominator 相关有理数的分母
有理数的抽象应该至少用如下方式提供方法初始化和操作有理数对象:
默认地构造一个有理数或者有一个分子和分母指定。
计算两个有理数进行加减乘除的结果 。
产生一个能够显示到标准输出流的字符窜代表有理数。
为了支持客户活动和信息隐藏,应该也有方法实现如下活动:
访问分子或分母的值
设置分子或分母的值

为了扶助读者设计必要的信息结构和算法,提供Rational的客户程序RationalDemo.java。程序输出结果如下(没有图只好大概写一下)
Enter numerator of a rational number: 1
Enter denominator of a rational number:2

Enter numerator of a rational number: 1
Enter denominator of a rational number:3

For r=1/2 and s=1/3

r+s=5/6
r-s=1/6
r*s=1/6
r/s=3/2

以下是书中提供的RationalDemo.java代码

import java.io.*;
public class RationalDemo {
public static void main(String args[]) throws IOException {
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
System.out.println();

//获得有理数r和s的值
Rational r=new Rational();
System.out.print("Enter numerator of a rational number: ");
int a=Integer.parseInt(stdin.readLine());
System.out.print("Enter denominator of a rational number: ");
int b=Integer.parseInt(stdin.readLine());
r.setNumerator( a );
r.setDenominator( b );
System.out.println();
System.out.println();

Rational s=new Rational();
System.out.print("Enter numerator of a rational number: ");
int c=Integer.parseInt(stdin.readLine());
System.out.print("Enter denominator of a rational number: ");
int d=Integer.parseInt(stdin.readLine());
s.setNumerator( c );
s.setDenominator( d );

//在r和s上进行操作
Rational sum=r.add( s );//把两有理数相加的结果作为一个Rational对象,为了能调用toString方法
Rational difference=r.subtract( s) ;
Rational product=r.multiply( s );
Rational quotient=r.divide( s );

System.out.println("For r="+r.toString()+" s="+s.toString());
System.out.println("r+s="+sum.toString());
System.out.println("r-s="+difference.toString());
System.out.println("r*s="+product.toString());
System.out.println("r/s="+quotient.toString());

System.out.println();

}
}




话题树型展开
人气 标题 作者 字数 发贴时间
14319 求助 一个编译出错的原因!(不兼容的类型) zmj888 126 2005-12-04 12:36
12229 Re:求助 一个编译出错的原因!(不兼容的类型) why 234 2005-12-04 17:03
12743 Re:求助 一个编译出错的原因!(不兼容的类型) Pink 18 2005-12-09 00:21
12669 Rational.java zmj888 1156 2005-12-04 18:29
12640 这是书上提示要求和RationalDemo.java zmj888 2378 2005-12-04 18:31
12137 Re:这是书上提示要求和RationalDemo.java why 1048 2005-12-04 18:54
12537 Re:求助 一个编译出错的原因!(不兼容的类型) zmj888 6 2005-12-04 19:00
12224 Re:求助 一个编译出错的原因!(不兼容的类型) why 184 2005-12-04 19:09
12557 Re:求助 一个编译出错的原因!(不兼容的类型) zmj888 25 2005-12-04 19:18
12140 Re:求助 一个编译出错的原因!(不兼容的类型) why 141 2005-12-04 19:21
12524 Re:求助 一个编译出错的原因!(不兼容的类型) zmj888 5 2005-12-04 19:22
12124 Re:求助 一个编译出错的原因!(不兼容的类型) why 73 2005-12-04 19:25
12497 Re:求助 一个编译出错的原因!(不兼容的类型) zmj888 36 2005-12-04 19:25
12162 Re:求助 一个编译出错的原因!(不兼容的类型) why 151 2005-12-04 19:31
12592 Re:求助 一个编译出错的原因!(不兼容的类型) zmj888 20 2005-12-04 19:54
12490 Re:求助 一个编译出错的原因!(不兼容的类型) 真空龙卷风 19 2005-12-06 01:55

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923