资源描述:
《C++实现复数加减乘除实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验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是复数。操作结果
2、:用sum返回两个复数z1,z2的和值。Sub(z1,z2,&residue):初始条件:z1,z2是复数。操作结果:用res返回两个复数z1,z2的差值。mul(z1,z2,&product):初始条件:z1,z2是复数。操作结果:用product返回两个复数z1,z2的积。div(z1,z2,"ient,&residue):初始条件:z1,z2是复数。操作结果:用quotient返回两个复数z1除z2的商,用residue返回它们的余数。要求main函数中只能是基本的输入输出语句和函数调用语句,其运行界面如下:pleaseinputfirstcomplexnumber:a+bit
3、heotherone:c+dipleasechoiceoperation:+,-,*or/:+(a+bi)+(c+di)=……其中a,b,c,d是用户从键盘上输入的实型值,分别代表两个复数的实部和虚部。实验代码:#include//定义一个复数类typedefstruct{floatrealpart;floatimagpart;}Complex;ComplexInitComplex(floatv1,floatv2)//初始化{Complexz;z.realpart=v1;z.imagpart=v2;returnz;}floatGetreal(Complexz){return
4、z.realpart;}floatGetimagepart(Complexz){returnz.imagpart;}ComplexAdd(Complexz1,Complexz2)//实现加法运算{z1.realpart=z1.realpart+z2.realpart;z1.imagpart=z1.imagpart+z2.imagpart;returnz1;}ComplexSub(Complexz1,Complexz2)//实现减法运算{z1.realpart=z1.realpart-z2.realpart;z1.imagpart=z1.imagpart-z2.imagpart;returnz
5、1;}ComplexMul(Complexz1,Complexz2)//实现乘法运算{z1.realpart=z1.realpart*z2.realpart;z1.imagpart=z1.imagpart*z2.imagpart;returnz1;}ComplexDiv(Complexz1,Complexz2)//实现除法运算{z1.realpart=z1.realpart/z2.realpart;z1.imagpart=z1.imagpart/z2.imagpart;returnz1;}intmain(){floata,b,c,d;chare;Complexz1,z2,z3;printf(
6、"pleaseinputfirstcomplexnumbera+bi:");//只需输入实部a,虚部bscanf("%f%f",&a,&b);z1=InitComplex(a,b);printf("pleaseinputtheother:");scanf("%f%f",&c,&d);z2=InitComplex(c,d);printf("pleasechoiceoperation:+,-,*,/:");//选择运算符getchar();scanf("%c",&e);if(e=='+')//选择运算符z3=Add(z1,z2);if(e=='-')z3=Sub(z1,z2);if(e=='*'
7、)z3=Mul(z1,z2);if(e=='/')z3=Div(z1,z2);printf("%f+%fi",z3.realpart,z3.imagpart);return0;}运行结果: