记录一下!

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

#include <stdio.h>

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/C++语言如何实现复数抽象数据类型Complex的更多相关文章

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

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

  2. C语言抽象数据类型ADT

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

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

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

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

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

  5. ORACLE抽象数据类型

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

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

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

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

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

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

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

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

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

随机推荐

  1. (Keil) Debug & Simulation 操作

    0x00 printf在MCU環境下print debug error message,利用Logic Analyzer模擬MCU register or GPIO狀態. 若是要要使用printf函數 ...

  2. json、xml

    json:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然 ...

  3. 老男孩python作业1

    作业1:编写登陆接口 (1)输入用户名密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 作业2:多级菜单 (1)三级菜单 (2)可依次选择进入各子菜单 (3)所需新知识点:列表.字典 任务1思 ...

  4. BZOJ 5421: 收藏家

    传送门 直接搞很复杂,考虑转化问题 题目只要求第1个人最多能获得的物品数量 所以如果一种物品拥有多个和一个是没区别的 那么考虑每种物品对第1个人怎样贡献 显然要经过一些交换最终到达第一个人那里 发现很 ...

  5. C# Task超时规则

    需要知道以下的知识 正规的骚操作:https://stackoverflow.com/questions/4238345/asynchronously-wait-for-taskt-to-comple ...

  6. 1136 A Delayed Palindrome (20 分)

    Consider a positive integer N written in standard notation with k+1 digits a​i​​ as a​k​​⋯a​1​​a​0​​ ...

  7. git 项目常用命令

    git remote -v 查看对应的远程仓库 git fetch origin master 将某个远程主机的更新,全部取回本地 git merge origin master 合并分支 git a ...

  8. python学习8-闭包、迭代器(转载)

    一.第一类对象: 函数名是一个变量,可以当普通变量使用,但它又是一个特殊的变量,与括号配合可以执行函数. 函数名的运用 1.单独打印是一个内存地址 2.可以给其他变量赋值 3.可以作为容器类变量的元素 ...

  9. oracle 操作实例(一)----rman 全备恢复

    一,环境背景 拥有全备数据库 全备脚本: export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01 export ORACLE_SID=pr ...

  10. 【OpenCV-python】CV2和PIL按box信息实现图像裁剪

    # 用cv2实现裁剪 import cv2 import os img = cv2.imread("./test_and_verification/1406170100001.jpg&quo ...