用c语言实现复数的加减乘除实验报告,C++实现复数加减乘除实验报告.doc

该博客介绍如何使用C++定义一个复数类,并实现复数的加、减、乘、除运算。通过结构体定义复数数据类型,提供初始化、获取实部和虚部的函数,以及加、减、乘、除的成员函数。在main函数中,用户输入两个复数并选择运算符,程序将输出运算结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验 C++实现复数的加减乘除

试用C语言的结构类型定义表示复数Complex的抽象数据类型。

(1)在复数内部用浮点数定义其实部与虚部;

(2)设计实现复数的+、-、、等运算的函数。

基本操作函数接口:

InitComplex( &Z, v1, v2 ):操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值。

GetReal( Z, &realPart ):初始条件:复数已存在。

操作结果:用realPart返回复数Z的实部值。

GetImag( Z, &ImagPart ):初始条件:复数已存在。

操作结果:用ImagPart返回复数Z的虚部值。

Add( z1,z2, &sum ):初始条件:z1,z2是复数。

操作结果:用sum返回两个复数z1,z2的和值。

Sub( z1,z2, &residue):初始条件:z1,z2是复数。

操作结果:用res返回两个复数z1,z2的差值。

mul( z1,z2, &product ):初始条件:z1,z2是复数。

操作结果:用product返回两个复数z1,z2的积。

div( z1,z2, &quotient,&residue):初始条件:z1,z2是复数。

操作结果:用quotient 返回两个复数z1除z2的商, 用residue返回它们的余数。

要求main函数中只能是基本的输入输出语句和函数调用语句,其运行界面如下:

please input first complex number : a + bi

the other one : c+ di

please choice operation: +, -, * or /:+

(a + bi)+ (c+ di)=……

其中a,b,c,d是用户从键盘上输入的实型值,分别代表两个复数的实部和虚部。

实验代码:

#include//定义一个复数类

typedef struct {

float realpart;

float imagpart;

}Complex;

Complex InitComplex(float v1,float v2) //初始化

{ Complex z;

z.realpart=v1;

z.imagpart=v2;

return z;

}

float Getreal(Complex z)

{return z.realpart;

}

float Getimagepart(Complex z)

{return z.imagpart;

}

Complex Add(Complex z1,Complex z2) //实现加法运算

{

z1.realpart=z1.realpart+z2.realpart;

z1.imagpart=z1.imagpart+z2.imagpart;

return z1;

}

Complex Sub(Complex z1,Complex z2) //实现减法运算

{z1.realpart=z1.realpart-z2.realpart;

z1.imagpart=z1.imagpart-z2.imagpart;

return z1;

}

Complex Mul(Complex z1,Complex z2) //实现乘法运算

{z1.realpart=z1.realpart*z2.realpart;

z1.imagpart=z1.imagpart*z2.imagpart;

return z1;

}

Complex Div(Complex z1,Complex z2) // 实现除法运算

{z1.realpart=z1.realpart/z2.realpart;

z1.imagpart=z1.imagpart/z2.imagpart;

return z1;

}

int main ()

{ float a,b,c,d;

char e;

Complex z1,z2,z3;

printf("please input first complex number a+bi:"); //只需输入实部a,虚部b

scanf("%f %f",&a,&b);

z1= InitComplex(a,b);

printf("please input the other :");

scanf("%f %f",&c,&d);

z2=InitComplex(c,d);

printf("please choice operation :+,-,*,/ :"); //选择运算符

getchar();

scanf("%c",&e);

if (e==+) //选择运算符

z3= Add( z1,z2);

if(e==-)

z3=Sub(z1,z2);

if(e==*)

z3=Mul(z1,z2);

if(e==/)

z3=Div(z1, z2);

printf("%f+%fi",z3.realpart,z3.imagpart);

return 0;

}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值