数据结构绪论week01

一.作业题目

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

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

二、博客作业要求:

编程前请务必学习c++基础,请参见“参考资料”压缩包中的C++基础(精简版).ppt

1.作业内容

用ADT的抽象数据模型描述你的有理数数据类型。如:
图片:

ADT Rational

{

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

数据关系:R={<e1,e2>|e1是分子e2是分母}

基本运算:

Assign Rational(&T,e1,e2):构造有理数T,元素e1,e2分别被赋以分子、分母值
              Destroy Rational(&T):销毁有理数T
              Get(T,i,&ei)用ei返回有理数T的分子或分母,当i为1时返回分子, i为2是返回分母

Put(T,I,&ei)将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母

          Panduan Rational(e1,e2)判断e1,e2,是否为0和负数,否则返回提示重新输入

         Jia Rational(T,I,&T3)  有理数T1,T2相加,结果存入有理数T3

Jian Rational(T,I,&T3)   有理数T1,T2相减,结果存入有理数T3

Chen Rational(T,I,&T3)   有理数T1,T2相乘,结果存入有理数T3 Chu Rational(T,I,&T3)   有理数T1,T2相除,结果存入有理数T3

      } ADT Rational   

2.数据结构、函数说明

头文件:

 

 

 

主函数:

 



3.代码实现说明

(1)约分函数:

 

 

 

 

 

(2)加函数:

 

 

 

 

 

 

 

 

 

(3)减函数:

 

 

 

 

 

 

 

 (4)乘函数;

 

 

 

 

(5)除函数;

 

 

 

 

 

4.结果展示

 

 

 

 

 

 

 

 

5.总结

自定一个头文件比较困难,有许多东西都需要查询书本或者上网查询,算法也比较抽象,事先先列表画流程图是一个号习惯,也有利于后续的代码的写入和构思,但是在写函数和头文件时错误较多,也和同学多次讨论借鉴代码,最后在执行代码上还是有部分缺陷。

转载于:https://www.cnblogs.com/liaoqingyu/p/8524914.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值