运用C语言学习知识编写复数的四则运算.doc
-* 运用C语言编写复数的四则运算1、 需求分析1. 设计一个可进行复数运算的演示程序2. 实现下列六种基本运算:(1)由于输入的实部和虚部生成一个复数;(2)两个复数求和;(3)两个复数求差;(4)两个复数求积;(5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。3.程序执行的命令包括:a.输入数据生成一个复数b.求复数和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”(5) 7.7, -8;-7.7,0;应输出“-i8” 2 概要分析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);各函数关系如下:(5) 主函数伪代码 main( ) 说明一个构造函数Complex; 定义两个实数和虚数分别为z1,z2; 提示输入实数和虚数z1,z2; 调用子函数; 提示输入+ - *; 根据输入的符号判断输入的复数做何运算 输入+时,调用加法子函数,打印输出; 输入-时,调用加法子函数,打印输出; 输入*时,调用加法子函数,打印输出; 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=0&z.im=0)printf(0n);else if(z.re!=0&z.im=0)printf(%.2fn,z.re);else if(z.re=0&z.im!=0)if(z.im0)printf(i%.2fn,z.im);else if(z.im0)printf(%.2f+i%.2fn,z.re,z.im);elseprintf(%.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*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);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;
收藏
编号:2627767
类型:共享资源
大小:88.15KB
格式:DOC
上传时间:2020-04-25
8
金币
- 关 键 词:
-
运用
应用
语言
学习
知识
编写
复数
四则运算
- 资源描述:
-
-*
运用C语言编写复数的四则运算
1、 需求分析
1. 设计一个可进行复数运算的演示程序
2. 实现下列六种基本运算:
(1)由于输入的实部和虚部生成一个复数;(2)两个复数求和;(3)两个复数求差;(4)两个复数求积;(5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。
3.程序执行的命令包括:
a.输入数据生成一个复数
b.求复数和
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”
(5) 7.7, -8;-7.7,0;应输出“-i8”
2. 概要分析
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);
各函数关系如下:
(5) 主函数伪代码
main( )
{
说明一个构造函数Complex;
定义两个实数和虚数分别为z1,z2;
提示输入实数和虚数z1,z2;
调用子函数;
提示输入+ - *;
根据输入的符号判断输入的复数做何运算
{
输入+时,调用加法子函数,打印输出;
输入-时,调用加法子函数,打印输出;
输入*时,调用加法子函数,打印输出;
}
}
3. 详细设计
1. 主函数及其他函数
#include
#include
typedef 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==0&&z.im==0)
printf("0\n");
else if(z.re!=0&&z.im==0)
printf("%.2f\n",z.re);
else if(z.re==0&&z.im!=0)
{
if(z.im>0)
printf("i%.2f\n",z.im);
else if(z.im<0)
printf("-i%.2f\n",fabs(z.im));
}
else
{
if(z.im>0)
printf("%.2f+i%.2f\n",z.re,z.im);
else
printf("%.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);
}
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;
展开阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。