一.作业题目

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

  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的抽象数据模型描述你的有理数数据类型。如:

2.数据结构、函数说明

截图展示你的头文件。头文件代码务必加入注释。

3.代码实现说明

截图展示每个函数代码。简要说明做法。

1.基本操作函数 及说明

2.构造有理数函数:构造了有理数T函数,元素v1,v2的值分别被赋以参数e1,e2的值。

3 . 销毁函数:有理数T被销毁

4.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。

5.将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母

6.加函数:有理数T1,T2相加,结果存入有理数T3

7.减函数:有理数T1,T2相减,结果存入有理数T3

8.乘函数:有理数T1,T2相乘,结果存入有理数T3

9.除函数:有理数T1,T2相除,结果存入有理数T3

10.求公约数函数:返回通分后分子和分母的最大公约数 

4.结果展示

每种测试数据一个截图结果。测试数据越多,此项得分越高。务必考虑临界数据,如分母为负数或0情况等等。

1.正常数值

2.分母为0

5.总结

       这次作业遇到很多困难,首先我不熟悉多文件编程的做法,对此也不是很理解,而且面对新的C++的知识运用还不够熟练,尤其是引用&的知识。在理解参考资料中三元组的代码的过程中,遇见了很多很多的困难,尤其是一些生涩的词,以及他们的用法不理解。

还是习惯于使用C语言的知识来解答问题,但以后会慢慢接受更多的知识的。

       同样,这次作业我也收获很多,对抽象数据类型有了更深刻的理解和认识,在和同学的交流中收获更多,慢慢解决上述问题,当然还存在这许多的不足,下次改正。