• 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. 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。

    二、作业内容

    1、用ADT的抽象数据模型描述你的有理数数据类型

    ADT Rational{

    数据对象:

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

    数据关系:

    R={<e1,e2>|e1是有理数的分子部分,e2是有理数的分母部分,且e2不等于0}

    基本运算:

    Initrational(T2,e1,e2)

    操作结果:构造有理数T,其分子和分母分别赋以e1和e2的值

    Destroyrational(T)

    操作结果:销毁有理数T

    Get(T,i,e)

     操作结果:返回有理数T的分子或分母,当入参i为1时返回分子,入参i为2时返回分母

    Change(i,e,T)

    操作结果:将有理数T的分子或分母更改为e,当入参i为1时改变分子,入参i为2时改变分母

    Sum(T1,T2,T3)

    操作结果:有理数T1与T2相加,得T3为有理数之和

    Minuse(T1,T2,T3)

    操作结果: 有理数T1与T2相减,得T3为有理数之差

    Multiply(T1,T2,T3)

    操作结果: 有理数T1与T2相乘,得T3为有理数之积

    Division(T1,T2,T3)

    操作结果: 有理数T1与T2相除,得T3为有理数之商

    }ADT Rational

    2、头文件

    3、代码实现说明

    *构造有理数

    *销毁有理数

    *有理数返回

    *有理数修改

     

    *有理数求和

    *有理数相减

     

    *有理数相乘

     

    *有理数相除

     

    *求公因数

     

    4、运行结果展示

    sample

     分母为0

    分母为负数

    负有理数

     5、总结

     对数据结构及抽象数据类型有了进一步理解,自学了一点C++

  • 相关阅读:
    算法训练(大富翁)
    算法训练题(奖励最小)
    算法训练题
    乔布斯
    算法题(符合题意的6位数)
    算法题(八皇后)
    算法题(分小组)
    汉诺塔
    递归算法题(兔子)
    字符串-mask-每个元音包含偶数次的最长子字符串
  • 原文地址:https://www.cnblogs.com/fangshiyuan/p/8523318.html
Copyright © 2020-2023  润新知