鲮鲤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

                                                                                                                                       

一.作业题目       

仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
 有理数基本运算:
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.抽象数据类型名为Rational。
10.有理数分母不能为负数或者0,类似输入请提示重输入。
11.数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
12.数据输入输出格式参考如下:
输入:
1 3 //T1的分子、分母
1 2 //T2的分子、分母
** 输出:**
     5 6  //两个有理数相加
    -1 6  //两个有理数相减
     1 6  //两个有理数相乘
     2 3  //两个有理数相除
13.程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

二。作业内容

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

抽象数据类型有理数:
ADT rational{
数据对象:D={a,b|a,b为整数,且b不为0}
数据关系:R={<a,b>}
基本操作:
Initrational(&T,v1,v2)
操作结果:构造有理数T,元素啊,a,b分别被赋以参数v1,v2的值。
Destroyrational(&T)
初始条件:有理数T已存在。
操作结果:有理数T被销毁。
Get(T,i,&e)
初始条件:有理数T已存在,1≤i≤2.
操作结果:用e返回T的分子或分母的值。
Put(&T,i,e)
初始条件:有理数T已存在,1≤i≤2.
操作结果:改变T的分子或分母的值为e.
Isascending(T)
初始条件:复数T已存在。
操作结果:两部分按升序排列,则返回1,否则返回0.
Isdescending(T)
初始条件:复数T已存在。
操作结果:两部分按降序排列,则返回1,否则返回0.
Max(T,&e)
初始条件:有理数T已存在。
操作结果:用e返回分子,母中较大一个的值。
Min(T,&e)
初始条件:有理数T已存在。
操作结果:用e返回分子,分母中较小的一个。
}ADT rational

二:头文件

 

 三;构造有理数函数

求最大公约数

有理数加法

有理数减法

有理数乘法

 

有理数除法

 

 

 

 四,结果展示

分母为0

 

分母为负

分子为0

 

 

 普通情况

 

 五,总结

通过这次作业,我对抽象数据类型和数据结构有了更深的了解。

在我看来,数据结构

是计算机处理的数据元素的组织形式和相互关系,包含数据逻辑结构和数据物理结构以及数据的运算

抽象数据类型是从问题的数学模型中抽象出来的逻辑数据结构,和逻辑数据结构上的运算,并没有详

细的说明具体实现的算法。需要我们进一步深刻的学习和掌握。

 

posted on 2018-03-07 19:56  拓扑  阅读(155)  评论(1编辑  收藏  举报