一、作业题目:

仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。

  有理数基本运算:

    1. 构造有理数T,元素e1,e2分别被赋以分子、分母值
    2. 销毁有理数T
    3. 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
    4. 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
    5. 有理数T1,T2相加,结果存入有理数T3
    6. 有理数T1,T2相减,结果存入有理数T3
    7. 有理数T1,T2相乘,结果存入有理数T3
    8. 有理数T1,T2相除,结果存入有理数T3

二、实验要求:

    1. 抽象数据类型名为Rational。
    2. 有理数分母不能为负数或者0,类似输入请提示重输入。
    3. 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
    4. 数据输入输出格式参考如下:
      输入:
      1 3 //T1的分子、分母
      1 2 //T2的分子、分母
      ** 输出:**
          5 6  //两个有理数相加
          -1 6  //两个有理数相减
           1 6  //两个有理数相乘
           2 3  //两个有理数相除
    5. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

三、博客作业:

1:作业内容

用ADT的抽象数据模型描述你的有理数数据类型。

ADT  Rational{

数据对象:D={e1,e2|e1,e2都属于整型}

数据关系:R={<e1,e2>}

基本操作:
                          int get (int i) //输出

bool put (int i,int e) //赋值

int gcd (int x, int y) //最大公约数

int lcm (int x, int y) // 最小公倍数

Frac reduce (int e1, int e2) //自动化简分式

Frac operator+( Frac const &anthoer) // 加法

Frac operator-( Frac const &anthoer) // 减法

Frac operator*( Frac const &anthoer) // 乘法

Frac operator/( Frac const &anthoer) // 除法

}ADT  Rational
数据结构,函数说明

1.头文件

2.函数及其功能

输出

赋值

最大公约数

最小公倍数

自动化简分式

加法

减法

乘法

除法

四、运行结果

正常情况

分母为零

负数

一正一负

五、感想

1.通过这次作业,我学习到了不少东西,初步了解了数据结构是基于一组性质相同的值的集合以及定义在此集合上的一些操作的总称,而抽象数据类型相比较数据结构要具体一些,数据结构反映数据内部的构成方式,抽象数据类型需要通过固有数据类型来实现。

2.数据结构既有现实意义上的逻辑结构,也有计算机世界里的储存结构,抽象数据类型则由一种数据结构和在该数据结构上的一组操作组成。内容晦涩难懂,需要很大耐心。。。

最新文章

  1. CodeSmith7 系列 破解教程
  2. XMLHttpRequest简介
  3. ios底层网络请求错误码
  4. Jquery学习笔记:利用jquery获取select下拉框的值
  5. struts2 标签字体大小
  6. app_field.clear_dependent_fields
  7. Jenkins最佳实践
  8. 【转】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
  9. 剑指offer-面试题22.栈的压入,弹出序列
  10. MYSQL C API 记录
  11. zkw费用流
  12. Hadoop2.0 HA集群搭建步骤
  13. 分享一些 Windows 平台上的神器
  14. JAVA EE 第二周(XML简述以及web请求的过程)
  15. JS高级程序设计3
  16. day09 python之函数进阶
  17. Aspose.Cells API 中文版文档 下载
  18. php深入学习
  19. 关于Mongodb的全面总结
  20. Android的基础知识

热门文章

  1. GDOI--DAY2 游记
  2. Codeforces Round #449 (Div. 2) C. DFS
  3. Background Segment CNT
  4. Apache 设置二级域名
  5. MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#39;:ge
  6. PHP.34-TP框架商城应用实例-后台10-商品分类-需求分析、创建无限级商品分类,递归
  7. 自定义控件的getChildCount
  8. 以最省内存的方式把大图片加载到内存及获取Exif信息和获取屏幕高度和宽度的新方法
  9. Android学习记录(5)—在java中学习多线程下载之断点续传②
  10. Flash文件在asp页面无法播放,网页上面的Flash文件在火狐浏览器不播放