一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
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
ADT Rational
{ 数据对象:
D={e1,e2|e1,e2均为整数,且e1为分子,e2为分母}
数据关系:
R={
基本运算:
AssignRational(&T,v1,v2)
操作结果:构造有理数T,元素e1,e2分别被赋以参数v1,v2的值
DestroyRational(&T)
初始条件:有理数T已存在
操作结果:有理数T被销毁
GetRational(T,i,&e)
初始条件:有理数T已存在,i属于{1,2}
操作结果:用e返回有理数T的分子或分母,i=1返回分子,i=2返回分母
PutRational(T,i,e)
初始条件:有理数T已存在,i属于{1,2}
操作结果:改变有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
AddRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相加,结果存入有理数T3
SubRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相减,结果存入有理数T3
MulRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相乘,结果存入有理数T3
DivRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相除,结果存入有理数T3
}ADTRational
二. 数据结构、函数说明
头文件:
函数:
三. 代码实现说明
1.构造有理数T
2.销毁有理数T
3.有理数相加
4.有理数相减
5.有理数相乘
6.有理数相除
7.求最大公约数
四. 结果展示
五. 总结
在这次作业中深刻认识到了传参的重要性,所以在引用T时要先给它分配存储,参数才传得进去;
其二,当多个小函数运用到同一个引用T3时,只需在主函数中先构造T3有理数,在后来的小函数中T3有理数将会随着其小函数的改变而改变;还有就是关于自定义一个名为Rational的数据类型,可以根据题目中Rational的特点,使用typedef 原有类型名 新类型名定义。数据结构分为逻辑结构和存储结构,使问题更快的到解决。
一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
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
ADT Rational
{ 数据对象:
D={e1,e2|e1,e2均为整数,且e1为分子,e2为分母}
数据关系:
R={
基本运算:
AssignRational(&T,v1,v2)
操作结果:构造有理数T,元素e1,e2分别被赋以参数v1,v2的值
DestroyRational(&T)
初始条件:有理数T已存在
操作结果:有理数T被销毁
GetRational(T,i,&e)
初始条件:有理数T已存在,i属于{1,2}
操作结果:用e返回有理数T的分子或分母,i=1返回分子,i=2返回分母
PutRational(T,i,e)
初始条件:有理数T已存在,i属于{1,2}
操作结果:改变有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
AddRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相加,结果存入有理数T3
SubRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相减,结果存入有理数T3
MulRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相乘,结果存入有理数T3
DivRational(T1,T2,&T3)
初始条件:有理数T1,T2已存在
操作结果:有理数T1,T2相除,结果存入有理数T3
}ADTRational
二. 数据结构、函数说明
头文件:
函数:
三. 代码实现说明
1.构造有理数T
2.销毁有理数T
3.有理数相加
4.有理数相减
5.有理数相乘
6.有理数相除
7.求最大公约数
四. 结果展示
五. 总结
在这次作业中深刻认识到了传参的重要性,所以在引用T时要先给它分配存储,参数才传得进去;
其二,当多个小函数运用到同一个引用T3时,只需在主函数中先构造T3有理数,在后来的小函数中T3有理数将会随着其小函数的改变而改变;还有就是关于自定义一个名为Rational的数据类型,可以根据题目中Rational的特点,使用typedef 原有类型名 新类型名定义。数据结构分为逻辑结构和存储结构,使问题更快的到解决。