一.作业题目

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

    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.首先用ADT抽象数据模型描述我的有理数数据类型

2.数据结构、函数说明

  头文件:

  函数:

3.代码实现说明

  (1)构造有理数T:

    

  (2)销毁有理数T:

    

  (3)用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。

  (4)将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母

  这两点放一起说明

    

  (5)有理数相加

    

  (6)有理数相减

    

   (7)有理数相乘

    

  (8)有理数相除

    

  (9)求最大公约数

    

  (10)输出函数

     

4.结果展示

  sample:

    

 

  负数的情况:

      

  输入分母为0的情况:

       

  结果产生整数的情况:

       

5.总结

  结合本次作业说说我对数据结构及抽象数据类型的理解:

    数据结构:首先数据结构分为两种类型:逻辑结构和存储结构。两种结构实际都是想如何处理这一类问题的方法,在描述如何做到这件事情,通过数据之间的互相关系的描述,来构建问题的解决方法。就像此次有理数的题目,我构建了线性结构,来指示有理数的分子分母如何运转,给了他们一种组织在一起的媒介。如同是一种数据的集合。

 

          抽象数据类型:在解决问题上关有数据结构还不够,还需要对数据结构进行操作。但是为什么说抽象呢,也就说他并不是具体整型还是字符型这种基本类型,而是我们根据我们要解决的实际问题,建立起的描述问题的模型,是基于现实情况的。如此题我定义了Rational的类型,构建了线性结构,还对其中的Rational进行了构造,删除等操作。

三.其他学习指导

  使用git命令行上传代码到码云

    

posted on 2018-03-04 10:46  阙广壬辰  阅读(366)  评论(4编辑  收藏  举报