实习0 抽象数据类型

三元组的抽象数据类型 基本要求: 设计实现抽象数据类型“三元组”,要求动态分配内存。每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组等。 ADT 抽象数据类型名 { 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本操作:<基本操作的定义> }ADT抽象数据类型名 5.实验源代码 //(1)写出抽象数据类型的定义,即数据对象、数据关系、基本操作 // 阅读详情

0.1 复数四则运算

一 需求分析

  1. 本演示程序中,需要用户在键盘上输入相应数据和指定程序命令。
  2. 基本要求包括以下六种运算:
  • 由输入的实部和虚部生成一个复数
  • 两个复数求和
  • 两个复数求差
  • 两个复数求积
  • 从已知复数中分离出实部
  • 从已知复数中分离出虚部
  1. 输入格式:

第一行,输入数字(1~6),分别对应上述六种操作。
第二行, a 1    b 1    a 2    b 2 a_1\;b_1\;a_2\;b_2 a1​b1​a2​b2​其中 a 1 , a 2 a_1,a_2 a1​,a2​代表输入复数的实部, b 1 , b 2 b_1,b_2 b1​,b2​代表输入复数的虚部。

  1. 输出格式:

如第一行输入数字1,则第二行只需输入 a 1    b 1 a_1\;b_1 a1​b1​,输出格式为 a 1 + i b 1 a_1+ib_1 a1​+ib1​。
如第一行输入数字2-4,则第二行需要输入2组数据,输出格式为运算后的复数。
如第一行输入数字5-6,则第二行只需输入 a 1    b 1 a_1\;b_1 a1​b1​,输出结果为 a 1 a_1 a1​或 b 1 b_1 b1​。

二 概要设计

为实现上述程序功能,需要设计一个抽象数据类型:复数。

ADT Plural {
  数据对象:D={a,b|a,b∈NumSet}
  数据关系:R={}
  基本操作:
    InitPlural(&P)
    操作结果:生成一个复数
    AddPlural(P1,P2,&P3)
    操作结果:返回复数求和
    DelPlural(P1,P2,&P3)
    操作结果:返回复数求差
    MulPlural(P1,P2,&P3)
    操作结果:返回复数求积
    SepReal(P)
    操作结果:返回复数的实部
    SepImag(P)
    操作结果:返回复数的虚部
  } ADT Plural

三 详细设计

实现概要设计中的所有数据类型,对每个操作进行代码编写。

typedef struct Plural
{
	float a; //实部
	float b; //虚部
}Plural;

//初始化一个实部与虚部均为0的复数
Plural InitPlural(Plural& P)
{
	P.a = 0;
	P.b = 0;
	return P;
}

//返回复数P1,P2求和
Plural AddPlural(Plural P1, Plural P2, Plural& P3)
{
	P3.a = P1.a + P2.a;
	P3.b = P1.b + P2.b;
	return P3;
}

//返回复数P1,P2求差
Plural DelPlural(Plural P1, Plural P2, Plural& P3)
{
	P3.a = P1.a - P2.a;
	P3.b = P1.b - P2.b;
	return P3;
}

//返回复数P1,P2求积
Plural MulPlural(Plural P1, Plural P2, Plural& P3)
{
	P3.a = P1.a * P2.a - P1.b * P2.b;
	P3.b = P1.a * P2.b + P1.b * P2.a;
	return P3;
}

//返回复数的实部
float SepReal(Plural P)
{
	return P.a;
}

//返回复数的虚部
float SepImg(Plural P)
{
	return P.b;
}

四 调试分析

内容包括:

  1. 调试过程中遇到的问题以及解决方法
  2. 算法的时空分析
  3. 经验体会
  1. 变量参数标识“&”,作为传址符号, 适用于需要修改原始数据或者希望通过函数返回多个值的情况,可以直接操作原始数据。
  2. 函数较为简单,算法时空复杂度均为O(1)。

五 用户使用说明

  1. 本程序的运行环境为Windows11操作系统,执行文件由Visual Studio2022本地Windows调试器打开。
  2. 按照需求分析所说明的输入格式进行输入,结束符为“回车符”。
  3. 接受不同命令将返回不同结果。
2
5 6 1 3
6+i9

六 测试结果

  • 执行命令1:键入5 6,按下回车后,输出结果5+i6。
  • 执行命令2:键入5 6 1 3,按下回车后,输出结果6+i9。
  • 执行命令3:键入5 6 1 3,按下回车后,输出结果4+i3。
  • 执行命令4:键入5 6 1 3,按下回车后,输出结果-13+i21。
  • 执行命令5:键入5 6,按下回车后,输出结果5。
  • 执行命令6:键入1 3,按下回车后,输出结果3。

七 附录

带注释的源程序。

Plural.cpp

Android 13/14/15 默认授权应用权限的实现方法 Android版本修改方式实现原理13/14修改Permission.java将所有权限标记为Normal权限15修改DeviceIdleController.java + DefaultPermissionGrantPolicy.java监听应用安装并主动授权。 阅读详情

相关推荐

PWM调节DCDC参数计算原理

SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。

电子绿洲的博客 3162

抽象数据类型案例

数据结构 数据结构-第一章 数据结构-第一章-抽象数据类型案例数据结构前言一、介绍二、c++实现总结 前言 一、介绍 抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。其定义取决于它的一组逻辑特性,而其在计算机内部如何表示和实现无关,意思就是不论其内部结构如何变化,只要其数学特性不变,都不影响其外部的使用。 抽象数据类型定义举例: 抽象数据类型 (ADT)定义举例:Circle的定义 ADT 抽象数据类型名{ Data 数据对象的定义 数据元素之间的逻

CltCj的博客 9867

PX4飞控CAN总线通信深度配置:从menuconfig到驱动加载的完整指南

本文详细解析了PX4飞控中CAN总线通信的深度配置流程,从menuconfig选项设置到驱动加载的完整指南。涵盖硬件抽象层、驱动层和应用层的配置细节,提供实际验证方法和故障排查技巧,帮助开发者高效实现CAN通信,特别适用于无人机和机器人底盘运动控制等场景。

weixin_30374009的博客 501

用C构造复数的抽象数据类型

用C构造复数的抽象数据类型 # include <stdio.h> typedef struct { float realpart; float imagpart; }Complex; /*定义复数抽象数据类型*/ void assign(Complex* A, float real, float imag) { A->realpart = real; A->imagpart = imag; } //构造复数的函数,函数名为assign void add(Complex*

zjwzjwszsz的博客 2844

ComfyUI中一个超好用的变量管理类节点-KJNodes

在AI绘图中,ComfyUI的热度开始慢慢起来一些,但是这个软件在使用的过程中,需要很多连线,仅仅一个最简单的动画生成,就需要连接这么多线条,而且有些线会飞的很远,看起来就很不美观,尤其是一些复杂工作流,连接到最后自己可能已经分不太清楚到底连接好了没有。今天在研究C站的大佬们的工作流的时候,发现一个有意思的工作流,看起来大概是这种感觉:干净整洁。他用到了KJNodes这么个节点来管理变量,git上星标也不算很多,所以我想很多朋友可能还不知道,所以这里简单介绍下用法。

聚梦小课堂 7521

网络安全面试题

在当今社会网络安全行业越来越发达,也有越来越多的人去学习,为了更好地进行工作,除了学好知识外还要应对企业的面试。 所以在这里我归总了一些网络安全方面的常见面试题,希望对大家有所帮助。 windows常见 1:描述tcp/udp的区别及优劣,及其发展前景 TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能...

fzx_hsaj的博客 6万+

【数据结构】抽象数据类型

数据结构绪论篇(第4小节)学习笔记:抽象数据结构.

C/C++领域,数据结构,linux,MySQl学习者 3289

VS Code/TRAE集成Cppcheck并启用MISRA规则

本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。

SDFangFang2025的博客 1282

抽象数据类型

抽象数据类型简介 抽象数据类型是数据结构的一种应用形式。与普通数据类型相似,抽象数据类型由类型描述(例如取值范围)和操作集合共同定义。例如,普通的整型数据类型由整数的取值范围和整数能参与的一系列加减乘除运算共同定义:unsinged char的取值范围是0~255,其操作集合为“+、-、*、/、&、|、~……”。抽象数据类型是由一类数据结构及相关操作函数构成。例如,我们...

aiding7985的博客 511

机器人控制基础:伺服驱动器的泄放电阻

摘要:伺服驱动器泄放电阻用于消耗电机减速或制动时产生的再生电能,防止母线电压过高损坏元件。其核心作用是将多余电能转化为热能,规避硬件损坏和停机风险。选型需关注功率、阻值和封装三大参数,功率应匹配再生能量,阻值需符合驱动器要求,封装应满足散热需求。可通过动态监测母线电压或静态检测电阻阻值来判断其是否正常工作。

start_up_go的博客 381

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——原生“龙虾”OpenClaw快速部署、问题速查与避坑指南

至此,你已经完成了从选购服务器到配置AI大脑的全过程。无论是想在云上养一只7x24小时的“龙虾”,还是在本地体验AI Agent的魅力,上述指南都提供了明确的路径。下一步,就是接入飞书、钉钉或QQ,让你的OpenClaw真正开始“干活”赚钱了 [citation:6]。

冯·诺依曼 990

c语言抽象数据类型复数,抽象数据类型复数的实现..doc

抽象数据类型复数的实现.石家庄经济学院实 验 报 告学 院: 信息工程学院专 业: 计算机信息工程学院计算机实验中心制《数据结构》实验报告姓名张文楚学号409109070515日期2011.3.25 7-8节实验室计算机基础实验室指导教师张有华设备编号实验题目实验1 抽象数据类型复数的实现一 实验内容实验1 抽象数据类型复数的实现二 实验目的1. 了解抽象数据类型(ADT)的基本...

weixin_34697150的博客 2275

Arduino I2C for TCA9548A应答扫描程序

Arduino I2C for TCA9548A应答扫描程序

perseverance51博客 1119

c++抽象数据类型

#include <iostream> class Shape { public: Shape() {} virtual ~Shape() {} virtual long getArea() { return -1; } // error virtual long getPerim() { return -1; } virtual void ...

自动驾驶行业学习、交流 1929

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

抽象数据类型的表示与实现

一、抽象数据类型定义(ADT)作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。定义:一个数学模型以及定义在该模型上的一组操作。关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最

yzkzoo 1046

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

实现抽象数据类型的定义(C语言)

实现抽象数据类型的定义(C语言) 1、复数的实现 步骤: a>定义复数结构体 b>构造初始化复数结构体 c>编写函数 d>主函数测试 #include <stdio.h> //用typedf关键字把struct Complex起了个名字交complex typedef struct Complex { float realPart;//实部 float imagePart;//虚部 } complex; complex assign(float r

frozenpenguin的博客 6599

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

抽象数据类型抽象数据类型

一、抽象数据类型描述: 线性表的抽象数据Java接口描述如下: public interface IList { public void clear();//将线性表置成空表 public boolean isEmpty();//判断线性表是否为空表 public int length();//返回线性表的长度 ...

u011625181的博客 1594

ADT抽象数据类型三元组Triplet

ADT抽象数据类型名数据对象:数据关系:基本操作:ADT抽象数据类型名其中,数据对象和数据关系的定义用伪码描述,基本操作的定义格式为基本操作名(参数表)初始条件:操作结果:基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以&打头,除可提供输入值外,还将返回操作结果。数据对象:D = {e1, e2, e3|e1, e2, e3∈ElemSet(定义了关系运算的某个集合)}

m0_53360850的博客 2518

定义抽象数据类型

1. 定义抽象数据类型

一个搬运知识的笨小孩 2657

线性表及抽象数据类型

线性表定义线性表:由零个或多个数据元素组成的有限序列。所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。例如: 当天黑队伍解散各自回家了,队伍《梦之队》还在,只不过队伍没人,解散了。明天大家来集合,队伍又有人了。所以元素为0时,表还是有的。特点: 1、线性表是一个序列,也就是说元素之间是有个先来后到的。 2、若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他

水清_木秀的博客 1710

二叉树的抽象数据类型

二叉树的抽象数据类型 一. 理论分析 结点是二叉树的基础,通常主要用结点保存与应用有关的信息. 作为二叉树的表示,还需要记录二叉树的结构信息,至少需要保证能检查结点的父子关系,例如,能从一个结点找到其左/右子结点 下面 一个基本的二叉树抽象数据类型的定义: ADT BinTree: # 一个二叉树抽象数据类型 BinTree(self, data, left, right) # 构造操作,创建一个新二叉树 is_empty(self) # 判断self是否为一个空二叉树

weixin_46129834的博客 2776

复数抽象数据类型C语言,采用C/C++语言如何实现复数抽象数据类型Complex

记录一下!采用C/C++语言如何实现复数抽象数据类型Complex#include typedef struct Complex{double e1; // 实部double e2; // 虚部}COMPLEX;// 函数声明COMPLEX AssignComplex(double v1, double v2);void DestroyComplex(COMPLEX pc);double GetR...

weixin_28851659的博客 3342

抽象数据类型定义(ADT)

一、抽象数据类型定义(ADT) 作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。 定义:一个数学模型以及定义在该模型上的一组操作。 关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。 例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一

Code-lover's Learning Notes 1万+

数据结构第3节: 抽象数据类型

ADT定义了数据的逻辑结构和操作,但不涉及数据的具体表示和实现。例如,一个栈的ADT可以定义为具有pushpoppeek和isEmpty等操作。// 入栈操作T pop();// 出栈操作T peek();// 查看栈顶元素// 检查栈是否为空// 入队操作// 出队操作T peek();// 查看队首元素// 检查队列是否为空// 在链表头部添加元素// 在链表尾部添加元素// 移除并返回链表头部的元素// 移除并返回链表尾部的元素// 获取链表头部的元素。

hummhumm的专栏 1426

抽象数据类型实现方法(数据结构)

(4)MultiComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)实现对两个复数的积,;(2)AddComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)实现对两个复数的求和;(3)SubComplexNumber(ComplexNumber *c,ComplexNumber c1,ComplexNumber c2)实现对两个复数的差;

qq_60873685的博客 1145

抽象数据类型ADT

什么是抽象数据类型? 根据百度百科:抽象数据类型(Abstract Data Type,ADT)是计算机科学中具有类似行为的特定类别的数据结构的数学模型;或者具有类似语义的一种或多种程序设计语言的数据类型。抽象数据类型是描述数据结构的一种理论工具,其目的是使人们能够独立于程序的实现细节来理解数据结构的特性。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示无关。 这个定义听起来确实很抽象 0.0 换种方法说,我们知道一些固定的数据类型比如int、float、char、double。。。。。。巴

weixin_45707270的博客 1231
上一篇: 深度学习——从入门到入坟,一篇文章理论结合实践带你掌握深度学习基本知识
下一篇: 实习1 线性表及其应用
等我不困
博客等级 码龄4年 239粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值