Data_Structure-绪论作业

一、作业要求

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

  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
  9. 实验要求:
  10. 抽象数据类型名为Rational。
  11. 有理数分母不能为负数或者0,类似输入请提示重输入。
  12. 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
  13. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

二、作业实验

 1.抽象数据结构描述

ADT Rational{
  数据结构:
    D={e1,e2|e1,e2为整数}
  数据关系:
    R={<e1,e2>|e1为有理数的分子,e2为有理数的分母,e2不为0}
  基本操作:
    InitRation(&T,e1,e2)
    //操作结果:构造有理数T,元素e1,e2分别被赋以分子、分母值
    DestroyRation(&T)
    //操作结果:销毁有理数T
    Return(T,i,&e)
    //操作结果:用e返回有理数T的分子或分母,i为1时返回分子, i为2是返回分母
    change(&T,i,e)
    //操作结果:将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
    jia(T1,T2,&T3)
    //操作结果:有理数T1,T2相加,结果存入有理数T3
    jian(T1,T2,&T3)
    //操作结果:将T1,T2相减,结果存入T3
    cheng(T1,T2,&T3)
    //操作结果:将T1,T2相乘,结果存入T3
    chu(T1,T2,&T3)
    //操作结果:将T1,T2相除,结果存入T3

}ADT Rational

2.数据结构、函数说明

头文件:

函数:

3.代码实现说明

1.构造有理数:

 

2.销毁有理数:

3.用e返回有理数T的分子或分母,i为1时返回分子, i为2是返回分母

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

5.有理数相加

 

6.有理数相减

 

7.有理数相乘

 

8.有理数相除

9.求最大公约数

4.结果展示

 1.正常情况

 

2.有理数为负数

 

3.有理数不存在

4.合为整数

 

5、作业总结

1. 本次实验让我对数据结构有了初步的了解,学到了新的知识。在我看来数据结构就是研究,数据之间的关系如同这次对抽象数据类型的研究,将各种算法结合在一起,使数据便于处理整合。

2.学会了c++的一些很基础的运用,我认为比c的运用更加方便快捷。并且使用新的变成工具code::blocks,也比之前用devc功能更多能使代码更具有可读性。

 

 

 

 

 

posted on 2018-03-07 00:44  今天啊霄减肥了吗  阅读(222)  评论(1编辑  收藏  举报