一 、作业题目

仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:

    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

二、内容

1、抽象数据类型

ADT Rational{

数据对象:

D={e1,e2|e1,e2均为整数}

数据关系:

R={<e1,e2>|e1是分子,e2是分母e2不为0}

基础运算:

AssignRational(&T,v1,v2)//构造有理数T

DestoryRational(&T)//销毁有理数T

Get(&T,i,e)//返回有理数T的分子或分母,当入参i1时返回分子,入参i2时返回分母

Change(&T,i,e)//将有理数T的分子或分母更改为e,当入参i1时改变分子,入参i2时改变分母

Add(T1,T2,&T3)//有理数T1T2相加,得T3为有理数之和

Subtract(T1,T2,&T3)//有理数T1T2相减,得T3为有理数之差

Multiply(T1,T2,&T3)//有理数T1T2相乘,得T3为有理数之积

Divide(T1,T2,&T3)有理数T1T2相除,得T3为有理数之商

}ADT Rational

2、数据结构,函数说明

头文件:

week1-绪论-LMLPHP

函数:

week1-绪论-LMLPHP

3、代码实现说明

  • 相加

week1-绪论-LMLPHP

  • 相减

week1-绪论-LMLPHP

  • 相乘

week1-绪论-LMLPHP

  • 相除

week1-绪论-LMLPHP

  • 公因数

week1-绪论-LMLPHP

  • 输出数据

week1-绪论-LMLPHP

4、结果展示

  • 基础四则运算

week1-绪论-LMLPHP

  • 有零

week1-绪论-LMLPHP

5、总结

抽象数据类型给了我们在每一次进行编程前的思考时间和以逻辑构建基础模型,我们可以将程序需要达到的效果和要求进行预先假设,并在编程时根据构建出来的模型进行编程。有利于节约时间和理清思路。

数据结构是定义了运算的数据集合,分为逻辑结构和存储结构,分工明确,以找到问题的解决方法。

05-27 20:14