一.作业题目
- 构造有理数T,元素e1,e2分别被赋以分子、分母值
- 销毁有理数T
- 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
- 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
- 有理数T1,T2相加,结果存入有理数T3
- 有理数T1,T2相减,结果存入有理数T3
- 有理数T1,T2相乘,结果存入有理数T3
- 有理数T1,T2相除,结果存入有理数T3
实验要求:- 抽象数据类型名为Rational。
- 有理数分母不能为负数或者0,类似输入请提示重输入。
- 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
- 数据输入输出格式参考如下:
二.作业要求
1.ADT的抽象数据模型描述有理数数据类型
ADT Rational{
数据对象:D={T1,T2,T3|都属于有理数}
数据关系:R={<T1,T2>,<T2,T3>}
基本操作:
InitRational(Rational &T,Elemtype v1,Elemtype v2)
//操作结果:构造了有理数T,元素分子分母e1,e2分别被赋以参数v1,v2的值
DestroyRational(Rational &T)
//操作结果:有理数T被销毁
Get(Rational T,int i,Elemtype &e)
//操作结果:用e返回分子或分母的值
put(Rational T,int i,Elemtype &e)
//操作结果:改变分子或分母的值为e
AddRational(Rational &T1,Rational &T2,Rational &T3)
//操作结果:将T1,T2相加,结果存入T3
SubRational(Rational &T1,Rational &T2,Rational &T3)
//操作结果:将T1,T2相减,结果存入T3
MulRational(Rational &T1,Rational &T2,Rational &T3)
//操作结果:将T1,T2相乘,结果存入T3
DviRational(Rational &T1,Rational &T2,Rational &T3)
//操作结果:将T1,T2相除,结果存入T3
}ADT Rational
2.函数说明
3.代码实现说明
(1)构造有理数
(2)销毁有理数
(3)返回分子分母值
(4)改变分子分母值
(5)相加
(6)相减
(7)相乘
(8)相除
(9)求最大公约数
4.结果展示
(1)样例
(2)分母为0
(3)有负数
(4)有整数
5.总结
1.借助抽象数据类型可以使我们更容易理清思路,建立基本结构
2.数据的逻辑结构反应了数据之间的逻辑关系,而存储结构是数据的逻辑结构在计算机上的表示
3.数据结构在我的理解,就是通过数据之间的关系,将信息组合,提高了算法的效率,思路清晰,基本结构一览无遗