运用C语言编写复数地四则运算.docx
- 文档编号:6312533
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:8
- 大小:85.90KB
运用C语言编写复数地四则运算.docx
《运用C语言编写复数地四则运算.docx》由会员分享,可在线阅读,更多相关《运用C语言编写复数地四则运算.docx(8页珍藏版)》请在冰豆网上搜索。
运用C语言编写复数地四则运算
运用C语言编写复数的四则运算
一、需求分析
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”
二.概要分析
1.为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。
2.本程序包含的函数:
(1)主函数main();
(2)构造函数typedefstruct();
(3)调用函数ComplexcreateComplex(floata,floatb)
Complexadd(Complexz1,Complexz2)
Complexjian(Complexz1,Complexz2)
Complexcheng(Complexz1,Complexz2)
voidprintComplex(Complexz);
各函数关系如下:
(5)主函数伪代码
main()
{
说明一个构造函数Complex;
定义两个实数和虚数分别为z1,z2;
提示输入实数和虚数z1,z2;
调用子函数;
提示输入+-*;
根据输入的符号判断输入的复数做何运算
{
输入+时,调用加法子函数,打印输出;
输入-时,调用加法子函数,打印输出;
输入*时,调用加法子函数,打印输出;
}
}
三.详细设计
1.主函数及其他函数
#include
#include
typedefstruct
{
floatre;
floatim;
}Complex;
ComplexcreateComplex(floata,floatb)//编写一个函数生成复数//
{
Complexz;
z.re=a;
z.im=b;
returnz;
}
voidprintComplex(Complexz)//输出复数并控制其格式//
{
if(z.re==0&&z.im==0)
printf("0\n");
elseif(z.re!
=0&&z.im==0)
printf("%.2f\n",z.re);
elseif(z.re==0&&z.im!
=0)
{
if(z.im>0)
printf("i%.2f\n",z.im);
elseif(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));
}
}
Complexadd(Complexz1,Complexz2)
{
Complexz;
z.re=z1.re+z2.re;
z.im=z1.im+z2.im;
returnz;
}
Complexjian(Complexz1,Complexz2)
{
Complexz;
z.re=z1.re-z2.re;
z.im=z1.im-z2.im;
returnz;
}
Complexcheng(Complexz1,Complexz2)
{
Complexz;
z.re=z1.re*z2.re-z1.im*z2.im;
z.im=z1.re*z2.im+z1.im*z2.re;
returnz;
}
main()
{
floata,b,c,d;
Complexz1,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);
}
四.调试及分析
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运用 语言 编写 复数 四则运算