Data_Structure01-绪论
---恢复内容开始---
一.作业题目
仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
有理数基本运算:
- 构造有理数T,元素e1,e2分别被赋以分子、分母值
- 销毁有理数T
- 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
- 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
- 有理数T1,T2相加,结果存入有理数T3
- 有理数T1,T2相减,结果存入有理数T3
- 有理数T1,T2相乘,结果存入有理数T3
- 有理数T1,T2相除,结果存入有理数T3
实验要求: - 抽象数据类型名为Rational。
- 有理数分母不能为负数或者0,类似输入请提示重输入。
- 数据对象和数据运算的表示与数据操作的实现分离。表示用头文件完成,实现用CPP文件完成。Main.cpp文件实现数据输入输出。
- 数据输入输出格式参考如下:
输入:
1 3 //T1的分子、分母
1 2 //T2的分子、分母
** 输出:**
5 6 //两个有理数相加
-1 6 //两个有理数相减
1 6 //两个有理数相乘
2 3 //两个有理数相除 - 程序应对异常输入或者出错必要处理和提示,比如提示:“分数是否需要约分等”。
二.作业内容
1.用ADT的抽象数据模型描述我的有理数数据类型。
ADT Rational{
数据对象:D={ e1, e2 | e1,e2属于ElemType类型}
数据关系:R={<e1,e2>|e1是有理数的分子部分,e2是有理数的分母部分,且e2不等于0}
基本运算:
AssignRational(&T,v1,v2):构造有理数T,元素v1,v2分别被赋以分子、分母值
DestoryRational(&T):销毁有理数T
ReturnT(i,e,&T):操作结果:返回有理数T的分子或分母,当入参i为1时返回分子,入参i为2时返回分母
ChangeT(i,e,&T):操作结果:将有理数T的分子或分母更改为e,当入参i为1时改变分子,入参i为2时改变分母
Add(T1,T2,&T3):有理数T1,T2相加,结果存入有理数T3
Subtract(T1,T2,&T3):有理数T1,T2相减,结果存入有理数T3
Multiply(T1,T2,&T3):有理数T1,T2相乘,结果存入有理数T3
Divide(T1,T2,&T3):有理数T1,T2相除,结果存入有理数T3
}ADT Rational
2.数据结构、函数说明
头文件:

函数:

3.代码实现说明:
e1,e2是T1的分子分母;e3,e4是T2的分子分母
(1) 有理数相加
(2) 有理数相减

(3) 有理数相乘

(4) 有理数相除

(5)约分

4.结果展示:
1.正常情况

2.分母为零

三.作业反思
对于数据的正负数,能否约分要做进一步的处理;否则最终结果会错误;并且知道了抽象数据类型把问题分解为多个规模较小且容易处理的问题,然后把每个功能模块的实现为一个独立单元,通过一次或多次调用来实现整个问题。
---恢复内容结束---
Data_Structure01-绪论的更多相关文章
- TMS320C54x系列DSP的CPU与外设——第1章 绪论
第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...
- 翻译学python---《Learn Python the hard Way》---第一章 绪论
打算学习python,但是又不想单纯地看书或是写个小项目,干脆引入很流行的翻译学习法来学习吧- 在论坛上看到了国外的一本<Learn Python the hard Way> ...
- 数据结构与算法(C/C++版)【绪论/线性表】
声明:数据结构与算法系列博文参考了<天勤高分笔记>.<王道复习指导>.C语言中文网.非商业用途,仅为学习笔记总结! 第一章<绪论> 一.基本概念及入门常识 /// ...
- 数字图像处理的Matlab实现(1)—绪论
第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...
- Data01-数据结构和算法绪论
Data01-数据结构和算法绪论 一.数据结构和算法绪论 1.1 什么是数据结构? 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科. 程序设计=数据结 ...
- Chapter 1(数据结构绪论)
附件列表 数据结构绪论.jpg
- 编译原理(一)绪论概念&文法与语言
绪论概念&文法与语言 以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 绪论基本概念 1. 低级语言:字位码.机器语言.汇编语言.与特定的机器有关,功效高,但使用复杂.繁琐.费时 ...
- 【读书笔记】周志华《机器学习》第三版课后习题讨<第一章-绪论>
虽然是绪论..但是...真的有点难!不管怎么说,一点点前进吧... 声明一下答案不一定正确,仅供参考,为本人的作答,希望大神们能多多指教~ 1.1 表1.1中若只包含编号为1和4的两个样例,试给出相应 ...
- 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...
- Java反射学习系列-绪论
Java反射学习系列-绪论 https://blog.csdn.net/hanchao5272/article/details/79358924
随机推荐
- DEDECMS 多站用一个站图片
function replaceurl($newurl) { $newurl=str_replace('src="/uploads/allimg/','src="xxx.com/u ...
- Matplotlib-动画
Animation 动画 定义方程 参数设置 # Animation 动画 # 定义方程 # 使用matplotlib做动画也是可以的,我们使用其中一种方式,function animation来说说 ...
- ios模拟器命令
xcrun simctl list //显示模拟器列表 xcrun simctl boot [模拟器id] //启动模拟器
- (转)flutter 新状态管理方案 Provide (一)-使用
flutter 新状态管理方案 Provide (一)-使用 版权声明:本文为博主原创文章,基于CC4.0协议,首发于https://kikt.top ,同步发于csdn,转载必须注明出处! ...
- Redis物理文件结构
Redis物理文件结构 对于数据库,个人习惯先从物理结构文件入手,整体上看一下有哪些文件,都是什么作用.类似于MySQL,数据文件和配置文件是Redis最基本也是做主要的两个物理文件之一,相比MyS ...
- docker swarm 集群及可视化界面的安装及配置
docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- 9. maps
C++有vertor,java有HashMap,C语言想使用则需要自行封装,不同的类型还需要再封装,特别麻烦. 看看Go语言的map的使用方法:var member map[string]int,创建 ...
- 解决cpplint在Python 3下没有任何输出的问题
修改cpplint.py:1. main()中注释掉 # sys.stderr = codecs.StreamReaderWriter(sys.stderr, # codecs.getreader ...
- 138 条 Vim 命令、操作、快捷键全集
命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim ...
- Beautiful Numbers(牛客网)
链接:https://ac.nowcoder.com/acm/problem/17385来源:牛客网 题目描述 NIBGNAUK is an odd boy and his taste is stra ...
