week1-绪论

 

 

 

 

一.作业题目

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

    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. 抽象数据类型名为Rational。
    2. 有理数分母不能为负数或者0,类似输入请提示重输入。
    3. 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
    4. 数据输入输出格式参考如下:
      输入:
      1 3 //T1的分子、分母
      1 2 //T2的分子、分母
      ** 输出:**
          5 6  //两个有理数相加
          -1 6  //两个有理数相减
           1 6  //两个有理数相乘
           2 3  //两个有理数相除
    5. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

三.作业内容 

  1.用ADT抽象数据类型描述有理数抽象数据类型

ADT Rational{

  数据对象:D={e1,e2|e1,e2均属于ElemType类型}

  数据关系:R1={<e1,e2>};R2{<T1,T2>,<T2,T3>};

  基本操作:

int gouzao(int *&T,int e1,int e2);
int xiaohui(int *&T);
int fanhui(int *T,int &a,int i);
int gaibian(int *&T,int a,int i);
int yuefen(int &a1,int &a2);
int xiangjia(int a1,int a2,int a3,int a4);
int xiangjian(int a1,int a2,int a3,int a4);
int xiangcheng(int a1,int a2,int a3,int a4);
int xiangchu(int a1,int a2,int a3,int a4);

}ADT Rational

2.函数说明

1.头文件

2.函数

3.函数说明

1.构建三元组和销毁

2.返回和更改分子或分母值

3.约分

4.加法

5.减法

6.乘法

7.除法

3.代码测试

4.感想

此次作业让我初步了解了数据结构,通过同学的帮助也成功的完成了此次作业,同时我也了解到了抽象数据类型的定义:一个数学模型以及定义在该模型上的一组操作。在分析代码时要明白作者意图而不是单独对一些细节进行模仿 ,已有的数据类型不足以解决实际问题,比如题中对有理数进行的四则运算,就需要定义抽象数据类型。

 

posted @ 2018-03-07 19:22  guoxiaowen  阅读(98)  评论(0编辑  收藏  举报