一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:-
- 构造有理数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 3 //T1的分子、分母1 2 //T2的分子、分母** 输出:** 5 6 //两个有理数相加 -1 6 //两个有理数相减 1 6 //两个有理数相乘 2 3 //两个有理数相除
13程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。
二、作业实验
1.抽象数据结构描述
ADT Rational{
数据结构: D={t1,t2|t1,t2为整数} 数据关系: R={<t1,t2>|t1为有理数的分子,t2为有理数的分母,t2不为0} 基本操作: createRational(t1,t2) //操作结果:构造有理数,元素t1,t2分别被赋以分子、分母值 addition(t1,t2) //操作结果:有理数T1,T2相加,结果存入有理数T3 subtract(t1,t2) //操作结果:将T1,T2相减,结果存入T3 multiply(t1,t2) //操作结果:将T1,T2相乘,结果存入T3 division(t1,t2) //操作结果:将T1,T2相除,结果存入T3}ADT Rational
2、数据结构、函数说明
3、代码实现说明
将第一个有理数分子分母储存在t1[0]、t1[1],第二个有理数分子分母储存在t2[0]、t2[1]
相加
相减
相乘
相除
求最大公约数
4、结果展示
当分母小于等于零时,重新输入
5、总结
1.计算完后应注意分子的正负并把他暂时化为正数进行约分
2.让我了解了数据结构中的多元组利用