1、c.求复数差d.求复数积4.(1)建立一个复数,然后根据提示用户输入两个复数,使得 能同时进行两个复数的加 .减.乘运算。( 2)输入形式和输入值得范围: 分别输入两个复数, 其格式为: a+bi 用 enter 结束输入。( 3)输出形式:按程序规定输出其运算值。如:运算后只有实 数时只输出实数虚部部分不表示,反之一样5.测试程序( 1)0,0; 0,0;应输出“ 0”(2)3.1,0; 4.22, 8.9; 应输出“ 7.32+i8.9”( 3)-1.33, 2.34; 0.1, -6.5; 应输出“ -1.23-i4.16”(4)0, 9.7; -2.1, -9.7;应输出“ -2.1”
2、( 5)7.7, -8;-7.7,0;应输出“ -i8”二概要分析1.为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。2.本程序包含的函数:(1)主函数 main();(2)构造函数 typedef struct ();(3)调用函数 Complex createComplex(float a,float b)Complex add(Complex z1,Complex z2)Complex jian(Complex z1,Complex z2)Complex cheng(Complex z1,Complex z2)void printComplex(Complex z);各函数关系
3、如下:5)主函数伪代码main( )说明一个构造函数 Complex; 定义两个实数和虚数分别为 z1,z2;提示输入实数和虚数 z1, z2; 调用子函数; 提示输入 + - *;根据输入的符号判断输入的复数做何运算 输入 +时,调用加法子函数,打印输出;输入 -时,调用加法子函数,打印输出;输入 *时,调用加法子函数,打印输出;三详细设计1.主函数及其他函数#includemath.htypedef structfloat re;float im; Complex;Complex createComplex(float a,float b) / 编写一个函数生成复数 / Complex z
4、;z.re=a;z.im=b;return z;void Pl1nfcomp-ex(comp-ex z) /B圧*選半*叢 宀 if (z reH H OQOQOZ i mH H 0) prinffco云 e-se if(z.reHoQOQOz.irTFHO) pinff(=%.2frrN.exif(z.imvo)pinffu%.2frrNmye-se if(z.imco)pinff(-=%.2fn=fabs(zm)_ e-se宀printf(%.2f+i%.2fn,z.re,z.im);else%.2f-i%.2fn,z.re,fabs(z.im);z.re=z1.re+z2.re;z.im
5、=z1.im+z2.im;z.re=z1.re-z2.re;z.im=z1.im-z2.im;z.re=z1.re*z2.re-z1.im*z2.im;z.im=z1.re*z2.im+z1.im*z2.re;main()float a,b,c,d; 请输入元素 );scanf(%f%f%f%f,&a,&b,&c,&d); / 输入元素并调用函数生成复 数 z1,z2;并输出 /z1=createComplex(a,b);z2=createComplex(c,d); 产生的两个复数为 :printComplex(z1);printComplex(z2);c1=add(z1,z2);c2=jia
6、n(z1,z2);c3=cheng(z1,z2); 这两个复数的和差积: printComplex(c1);printComplex(c3);四.调试及分析1.由于开始对于结构体使用并不熟悉,使用时语法错误很多,需 要多加使用。2.编写是输入 printf 拼写错误 (漏掉后面的 f)导致该程序无法执 行3.在使用“ & ”符号是漏些了一个 &符号,这点需要常记。4.对于声明的函数使用不熟练,在编写时对于其中的循环结构难 以很流畅使用,即需要加强对 for 循环的使用。五.测试结果1.数据 0,0;0,0;2.数据 3.1,0; 4.22,8.9;3.数据 -1.33,2.34; 0.1,-6.5;4.数据 0,9.7; -2.1 -9.7;5.数据 7.7,-8; -7.7,0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1