利用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 GetReal(COMPLEX pc);

double GetImag(COMPLEX pc);

COMPLEX Add(COMPLEX z1, COMPLEX z2);

int main(void)

{

double v1 = 2.0, v2 = 3.0;

double v3 = 5.0, v4 = 8.5;

COMPLEX sum;

COMPLEX pc1 = AssignComplex(v1, v2);

COMPLEX pc2 = AssignComplex(v3, v4);

printf("第一个复数的实部为:%e, 虚部为:%e\n", GetReal(pc1), GetImag(pc1));

sum = Add(pc1, pc2);

printf("复数pc1与pc2之和的实部为:%e,虚部为:%e\n", sum.e1, sum.e2);

return ;

}

COMPLEX AssignComplex(double v1, double v2)

{

COMPLEX pc;

pc.e1 = v1;

pc.e2 = v2;

return pc;

}

void DestroyComplex(COMPLEX pc)

{

// 销毁复数

}

double GetReal(COMPLEX pc)

{

double real = pc.e1;

return real;

}

double GetImag(COMPLEX pc)

{

double imag = pc.e2;

return imag;

}

COMPLEX Add(COMPLEX z1, COMPLEX z2)

{

COMPLEX sum;

double z1_e1, z2_e1;

double z1_e2, z2_e2;

z1_e1 = z1.e1;

z2_e1 = z2.e1;

z1_e2 = z1.e2;

z2_e2 = z2.e2;

sum.e1 = z1_e1 + z2_e1;

sum.e2 = z1_e2 + z2_e2;

return sum;

}

C语言泛型编程--抽象数据类型

一.数据类型: 在任何编程语言中,数据类型作为一个整体,ANSI-C包含的类型为:int.double.char……,程序员很少满意语言本身提供的数据类型,一个简单的办法就是构造类似:array.st ...

C语言抽象数据类型ADT

根据编程的问题匹配合适的数据类型.数据项连接构成了链表,定义了一个结构代表单独的项.设计了一些方法把一系列结构构成一个链表.本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型.但是上述的 ...

数据结构 集合_集合(数学)抽象数据类型的C语言实现

链表是实现集合的一种理想的方式.将List以typedef的方式重命名为Set.这样做能保留链表简洁的特性,还能使集合具有了一些多态的特性. 使用这种方法的最大好处就是可以使用list_next来遍历 ...

集合抽象数据类型的C语言实现

链表是实现集合的一种理想的方式.将List以typedef的方式重命名为Set.这样做能保留链表简洁的特性,还能使集合具有了一些多态的特性. 使用这种方法的最大好处就是可以使用list_next来遍历 ...

ORACLE抽象数据类型

ORACLE抽象数据类型 *抽象数据类型*/1,抽象数据类型 概念包含一个或多个子类型的数据类型不局限于ORACLE的标准数据类型可以用于其他数据类型中 2,创建抽象数据类型 的语法(必须用NOT F ...

【Python&数据结构】 抽象数据类型 Python类机制和异常

这篇是的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

DS博客作业01--日期抽象数据类型设计与实现

1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2 学习体会 这次博客园和大作业是我在编程学习中的有意义的进步,第一次尝试使用vs,并且通过同学的一些网站的推荐,和热心同学的帮忙,简单学会 ...

DS博客作业01--日期抽象数据类型

1.思维导图及学习体会(2分) 1.1第一章绪论知识点思维导图 1.2学习体会 从暑假看视频到开学的预习,我感觉数据结构与c语言比起来更加抽象,更加难理解,那些概念也只能理解一些字面意思,对时间复杂度 ...

go语言入门(2)数据类型

1,命名 Go语言中的函数名.变量名.常量名.类型名.语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母.数字或下 ...

随机推荐

CSS 魔法系列:纯 CSS 绘制各种图形《系列六》

我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

51单片机ALE引脚的控制(摘录)

ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节. 在FLASH编程期间,此引脚用于输入编程脉冲. 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频 ...

Java访问USB设备

最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到 ...

深入探讨:LBS是一种工具而非一种模式

移动互联网的快速发展,带动着移动互联网应用的不断创新.从2010起,LBS的概念就在中国迅速兴起,但到了2011年底提供LBS服务的企业从最多50家已经降至仅剩15家.投行在看好移动互联网的同时又对L ...

微信小程序问题---数据传输长度为 1275870 已经超过最大长度 1048576

开发微信小程序时,遇到数据传输长度为 1095538 已经超过最大长度 1048576的问题. 这是setData时操作数据过大导致,一般出现在请求返回数据过大,我们又将这个数据一次性用setData ...

Matplotlib学习---用seaborn画直方图,核密度图(histogram, kdeplot)

由于直方图受组距(bin size)影响很大,设置不同的组距可能会产生完全不同的可视化结果.因此我们可以用密度平滑估计来更好地反映数据的真实特征.具体可参见这篇文章:https://blog.csdn ...

2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

Vue笔记:使用 axios 发送请求

在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

Winform开发框架之通用高级查询模块--SNF快速开发平台3.3-Spring.Net.Framework

最近项目确实忙,但也是一直忙于有关项目和框架技术的事情,也一直致力于改善我的WInform开发框架.使得自己及客户使用起来更加方便,更加友好,更加高效. 在很多程序模块中都很常见,也是给客户扩展查询的 ...

C# typeof() 和 GetType()区是什么

1.typeof(x)中的x,必须是具体的类名.类型名称等,不可以是变量名称. 2.GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof() ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值