2、c2>c1,c2∈D}基本操作:创建一个复数InitComplex();输出一个复数OutComplex();求两个复数相加之和AddComplex();求两个复数相减之差SubComplex();求两个复数相乘之积MulComplex();求两个复数的商SComplex();等等;}ADTcomplex;本实验实现使用TC2.0实现复数的描述及操作。具体实现要求:1.从键盘分别输入2个复数,并可修改已输入的复数。2.能输出指定的复数。3.两个复数相加之和,观察输出结果。4.两个复数相加之差,观察输出结果。5.求两个复数相乘之积,观察输出结果。6.求两个复数的
3、商,观察输出结果。7.用户可看到如下界面:******************************1.输入复数C1**2.输入复数C2**3.输出复数C1**4.输出复数C2**5.求C1和C2的和**6.求C1和C2的差**7.求C1和C2的积**8.求C1和C2的商**0.结束******************************四详细设计步骤1:复数的抽象数据类型的定义。ADTComplex{数据对象:D={a,b
4、a,b∈FloatSet}数据关系:R={
5、a,b∈D}基本操作:InitComplex(&C,vr,vi);操作结果:
6、构造一个复数,元素a,b分别被赋以参数vr,vi的值。OutComplex(C);操作结果:输出一个复数。AddComplex(&C,C1,C2);操作结果:求两个复数C1,C2之和,结果存入C。SubComplex(&C,C1,C2);操作结果:求两个复数C1,C2之差,结果存入C。MulComplex(&C,C1,C2);操作结果:求两个复数C1,C2的积,结果存入C。}ADTComplex步骤2:复数的存储结构及相关操作的声明。复数的存储结构#include#includetypedefstructComplex{f
7、loatreal;floatimage;}Complex;基本操作的声明:StatusInitComplex(&C,vr,vi);操作结果:构造一个复数,元素a,b分别被赋以参数vr,vi的值。voidOutComplex(C);操作结果:输出一个复数。ComplexAddComplex(&C,C1,C2);操作结果:求两个复数C1,C2之和,结果存入C。ComplexSubComplex(&C,C1,C2);操作结果:求两个复数C1,C2之差,结果存入C。ComplexMulComplex(&C,C1,C2);操作结果:求两个复数C1,C2的积,结果存入C。
8、ComplexSComplex(&C,C1,C2);操作结果:求两个复数C1,C2的商,结果存入C。步骤3:复数的基本操作的实现。复数的基本操作://构造一个复数,元素a,b分别被赋以参数vr,vi的值StatusInitComplex(Complex&C,floatvr,floatvi){C.real=vr;C.image=vi;returnOK;}//输出一个复数voidOutComplex(ComplexC){printf(C.real“+”C.image“i”);}//求两个复数C1,C2之和,结果存入CComplexAddComplex(Comple
9、x&C,ComplexC1,ComplexC2);{C.real=C1.real+C2.real;C.image=C1.image+C2.image;returnC;}//求两个复数C1,C2之差,结果存入CComplexSubComplex(Complex&C,ComplexC1,ComplexC2){C.real=C1.real-C2.real;C.image=C1.image-C2.image;returnC;}//求两个复数C1,C2的积,结果存入CComplexMulComplex(Complex&C,ComplexC1,ComplexC2){C.r
10、eal=C1.real*C2.real