一.作业题目
实验题目
试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算如下所示:
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
实验要求:
抽象数据类型名为Rational。
有理数分母不能为负数或者0,类似输入请提示重输入。
数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
数据输入输出格式参考如下:
输入:
1 3 //T1的分子、分母
1 2 //T2的分子、分母
** 输出:**
5 6 //两个有理数相加
-1 6 //两个有理数相减
1 6 //两个有理数相乘
2 3 //两个有理数相除
程序应对异常输入或者出错必要处理和提示,分子分母要约分。
二、博客作业要求:
1.作业内容
用ADT的抽象数据模型描述你的有理数数据类型。
ADT Rational
{ 数据对象:D={a,b|a,b均为实数}
数据关系:R={<a,b>|a是有理数的分子部分,b是有理数的分母部分}
基本运算:
int jia(int T1[],int T2[],int T3[])T1,T2两个有理数相加,结果存入T3
int jian(int T1[],int T2[],int T3[])两T1,T2两个有理数相减,结果存入T3
int cheng(int T1[],int T2[],int T3[])两T1,T2两个有理数相乘,结果存入T3
int chu(int T1[],int T2[],int T3[])T1,T2两个有理数相除,结果存入T3
int yuefen(int T3[])将T3约分并输出结果
}ADT Rational
2.数据结构、函数说明
3.代码截图
(1)构造结构体数组的函数
首先在主函数中要输入你要构造的两个有理数的分子和分母必须符合题意否则要求重新输入然后开始对结构体数组中的每个成员进行结构体成员赋值。
(2)销毁结构体数组
(3)返回分子或者分母
(4)对T进行变值
(5)加法
(6)减法
(7)乘法
(8)除法
(9)约分
4.代码互评
无
5.结果展示
6.总结
很长时间没有做C了,上个学期也只是大概重温一下以前的记忆。现在做这个作业一下子就不懂了,找同学问了很多问题,看来自己还要花很多时间温习一下C语言的内容,不然怕到时候都听不懂也不会做。