1、 运用 C 语言编写复数的四则运算1、需求分析1.设计一个可进行复数运算的演示程序2.实现下列六种基本运算:(1)由于输入的实部和虚部生成一个复数;(2 )两个复数求和;(3)两个复数求差;( 4)两个复数求积;( 5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。3.程序执行的命令包括:a.输入数据生成一个复数b.求复数和c.求复数差d.求复数积4.( 1)建立一个复数,然后根据提示用户输入两个复数,使得能同时进行两个复数的加.减.乘运算。(2)输入形式和输入值得范围:分别输入两个复数,其格式为:a+bi 用 enter 结束输入。(3)输出形式:按程序规定输出其运算值。
2、如:运算后只有实数时只输出实数虚部部分不表示,反之一样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”(5)7.7, -8;-7.7,0 ;应输出“-i8” 2概要分析1.为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。2.本程序包含的函数:(1)主函数 main();(2)构造函数 typedef struct();(3)调用函数 Complex createCompl
3、ex(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);各函数关系如下:(5)主函数伪代码main( )说明一个构造函数 Complex;定义两个实数和虚数分别为 z1,z2;提示输入实数和虚数 z1,z2 ;调用子函数;提示输入+ - *;根据输入的符号判断输入的复数做何运算输入+时,调用加法子函数,打印输出;输入-时,调用加法子函数,打印输出;
4、输入*时,调用加法子函数,打印输出;3详细设计1.主函数及其他函数#include#includetypedef structfloat re;float im; Complex;Complex createComplex(float a,float b) /编写一个函数生成复数/Complex z;z.re=a;z.im=b;return z;void printComplex(Complex z) /输出复数并控制其格式/if(z.re=0else if(z.re!=0else if(z.re=0else if(z.im0)printf(“%.2f+i%.2fn“,z.re,z.im);e
5、lseprintf(“%.2f-i%.2fn“,z.re,fabs(z.im);Complex add(Complex z1,Complex z2)Complex z;z.re=z1.re+z2.re;z.im=z1.im+z2.im;return z;Complex jian(Complex z1,Complex z2)Complex z;z.re=z1.re-z2.re;z.im=z1.im-z2.im;return z;Complex cheng(Complex z1,Complex z2)Complex z;z.re=z1.re*z2.re-z1.im*z2.im;z.im=z1.re
6、*z2.im+z1.im*z2.re;return z;main()float a,b,c,d;Complex z1,z2,c1,c2,c3;printf(“请输入元素“);scanf(“%f%f%f%f“, /输入元素并调用函数生成复数 z1,z2;并输出/z1=createComplex(a,b);z2=createComplex(c,d);printf(“产生的两个复数为:“);printComplex(z1);printComplex(z2);c1=add(z1,z2);c2=jian(z1,z2);c3=cheng(z1,z2);printf(“这两个复数的和差积:“);printC
7、omplex(c1);printComplex(c2);printComplex(c3);4.调试及分析1.由于开始对于结构体使用并不熟悉,使用时语法错误很多,需要多加使用。2.编写是输入 printf 拼写错误(漏掉后面的 f)导致该程序无法执行3.在使用“&”符号是漏些了一个& 符号,这点需要常记。4.对于声明的函数使用不熟练,在编写时对于其中的循环结构难以很流畅使用,即需要加强对 for 循环的使用。5.测试结果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;