运用C语言编写复数的四则运算.docx
文本预览下载声明
运用C语言编写复数的四则运算需求分析设计一个可进行复数运算的演示程序实现下列六种基本运算:(1)由于输入的实部和虚部生成一个复数;(2)两个复数求和;(3)两个复数求差;(4)两个复数求积;(5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。3.程序执行的命令包括:a.输入数据生成一个复数b.求复数和c.求复数差d.求复数积(1)建立一个复数,然后根据提示用户输入两个复数,使得能同时进行两个复数的加.减.乘运算。输入形式和输入值得范围:分别输入两个复数,其格式为:a+bi用enter结束输入。输出形式:按程序规定输出其运算值。如:运算后只有实数时只输出实数虚部部分不表示,反之一样5.测试程序(1)0,0;0,0;应输出“0”(2)3.1,0;4.22, 8.9; 应输出“7.32+i8.9”-1.33, 2.34; 0.1, -6.5; 应输出“-1.23-i4.16”0, 9.7; -2.1, -9.7;应输出“-2.1”7.7, -8;-7.7,0;应输出“-i8” 概要分析为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。本程序包含的函数: (1)主函数 main();构造函数typedef struct();调用函数 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);各函数关系如下:主函数伪代码 main( ) { 说明一个构造函数Complex; 定义两个实数和虚数分别为z1,z2; 提示输入实数和虚数z1,z2; 调用子函数; 提示输入+ - *; 根据输入的符号判断输入的复数做何运算 { 输入+时,调用加法子函数,打印输出; 输入-时,调用加法子函数,打印输出; 输入*时,调用加法子函数,打印输出;} }详细设计主函数及其他函数#includestdio.h#includemath.htypedef struct{float 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==0z.im==0)printf(0\n);else if(z.re!=0z.im==0)printf(%.2f\n,z.re);else if(z.re==0z.im!=0){if(z.im0)printf(i%.2f\n,z.im);else if(z.im0)printf(-i%.2f\n,fabs(z.im));}else{if(z.im0)printf(%.2f+i%.2f\n,z.re,z.im);elseprintf(%.2f-i%.2f\n,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*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,a,b,c,d); //输入元素并调用函数生成复数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(这两个复数的和差积:);printComplex(c1);printComplex(c2);printComplex(c3);}调试及分析由于开始对于结构体使用并不熟悉,
显示全部