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();

java有理数类的封装_java实验报告有理数的类封装.doc相关推荐

  1. Java模式设计卖电脑实验报告_20145310《Java程序设计》第2次实验报告

    20145310<Java程序设计>第2次实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计 ...

  2. java程序设计输入输出实验_20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  3. java开发环境实验总结_20155212 实验一《Java开发环境的熟悉》实验报告

    20155212 实验一<Java开发环境的熟悉>实验报告 命令行下Java程序开发 命令创建实验目录 输入mkdir 2051212创建以自己学号命名的文件夹,通过cd 20155212 ...

  4. 2018-2019-2 20175311 实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175311实验一<Java开发环境的熟悉>实验报告 一.实验内容及步骤 (一):使用简单的JDK编译.运行java程序 题目一比较简单也比较基础,主要就是考查我们 ...

  5. 20155303 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155303 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 步骤一(新建文件夹): ...

  6. 华软java综合实验二_2018-2019-2 20175311 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2 20175303 实验二 <Java开发环境的熟悉>实验报告 一.实验准备 1.了解掌握实验所要用到的三种代码 伪代码 产品代码 测试代码 2.IDEA中配置单元测 ...

  7. 20155213 实验一《Java开发环境的熟悉》实验报告

    20155213 实验一<Java开发环境的熟悉>实验报告 一. 实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 输入cd Code进入Code文件夹里 ...

  8. [网络安全课设]基于JAVA的系统端口扫描软件设计实现(java代码+IDEA+UI图形界面+实验报告)

    链接::l基于JAVA的系统端口扫描软件设计实现(java代码+IDEA+UI图形界面+实验报告) 系统端口扫描软件设计实现 设计目的和任务 参照superscan.nmap等端口扫描软件的运行情况, ...

  9. 实验一java开发环境_2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告

    2018-2019-2-20175225 实验一 <Java开发环境的熟悉>实验报告 2018-2019-2-20175225 实验一 <Java开发环境的熟悉>实验报告 20 ...

最新文章

  1. CentOS 6.5编译安装Nginx+MySQL+PHP
  2. java web 耗时请求_javaweb应用中出现了一个耗时异常长的数据查询,寻求帮助
  3. Ubuntu下共享目录的设置
  4. 将英文的week 转换为中文的 简单的方法
  5. oracle 1408,Oracle 11.2.0.2 Patch 说明
  6. MATLAB聚类分析源代码
  7. ❤️字节跳动8年测试经验,彻夜无眠整理的40道自动化测试面试题(附精准答案),爆肝2W字❤️
  8. python 指定值的位置_python数组查找某个值的位置
  9. const T vs. T const by Dan Saks
  10. 用计算机撩人套路,各种撩人的套路句子40句
  11. iDev苹果开发者大会出品人-唐巧专访:用 HTML5 写移动应用终究不会成为主流
  12. mysql状态表 历史记录设计表_常见数据库设计(2)——历史数据问题之单记录变更...
  13. PTA 水题之7-20 镜子碎了
  14. UOS下使用HHDESK文本编辑功能
  15. 卸载系统的dhcp服务器,dhcp服务器释放ip地址
  16. win10隐藏任务栏_win10系统任务栏彰显个性的设置方法
  17. osmconvert转换OpenStreetMap pbf文件至osm等格式矢量
  18. RSA加密与解密(Java实现)
  19. c语言123不合法浮点数,c语言程序设计练习.doc
  20. 对timedelta64的理解

热门文章

  1. rto净化效率计算公式_你了解废气处理设备RTO蓄热式热氧化炉的工作原理么?
  2. JAVA听力源码,英语听力练习
  3. W10关闭不必要的服务
  4. 单模光纤收发器产品介绍及常见分类方式
  5. 什么是HDMI视频光端机?
  6. 10835k1_行政组织学_21秋考试
  7. [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
  8. linux7禁用ipv6,RHEL 7 及 CentOS 7 彻底禁用IPv6的方法
  9. linux服务器防端口扫描,linux下防止syn***,端口扫描和死亡之ping
  10. 【MFC系列-第32天】控件自绘技术