资源描述:
《c语言复数的运算(实验报告)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验报告题目:复数的四则运算班级:13信管姓名:白浩然学号:201340403034完成日期:2014.05.21一、需求分析1.本演示程序中复数由两个相互之间存在次序关系的实数构成。2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。3.程序执行的命令包括:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中
2、分离出虚部。4.测试数据:1)构造复数:2)复数求和:2)复数求差:3)复数求积:2)提取实部:3)提取虚部:二、编码实现#include"stdio.h"#include"stdlib.h"structcomplex{floatreal;//实部floatimag;//虚部};//构造复数voidInitComplex(complex&c,floatr1,floatr2){c.real=r1;//r1为实部c.imag=r2;//r2为虚部}//复数求和voidAddComplex(comple
3、x&c,complexc1,complexc2){c.real=c1.real+c2.real;//实部相加c.imag=c1.imag+c2.imag;//虚部相加}//复数求差voidSubComplex(complex&c,complexc1,complexc2){c.real=c1.real-c2.real;//实部相减c.imag=c1.imag-c2.imag;//虚部相减}//复数求积voidMulComplex(complex&c,complexc1,complexc2){c.re
4、al=(c1.real*c2.real)-(c1.imag*c2.imag);c.imag=(c1.real*c2.imag)+(c2.real*c1.imag);}//分离实部voidRealComplex(complexc,float&r){r=c.real;}//分离虚部voidImagComplex(complexc,float&r){r=c.imag;}//主程序voidmain(){complexc,c1,c2;floatr,r1,r2,r11,r22,r12,r21;intnode;
5、printf("请输入要操作的序号:");printf("1.构造一个复数2.两个复数求和3.两个复数求差");printf("4.两个复数求积5.分离出实部6.分离出虚部");scanf("%d",&node);while(node!=0){switch(node){case1:printf("输入复数的实部和虚部:");scanf("%f%f",&r1,&r2);InitComplex(c,r1,r2);printf("构造的复数为:%f+%fi",c.real,c.ima
6、g);break;case2:printf("输入c1的实部和虚部:");scanf("%f%f",&r11,&r12);InitComplex(c1,r11,r12);printf("输入c2的实部和虚部:");scanf("%f%f",&r21,&r22);InitComplex(c2,r21,r22);AddComplex(c,c1,c2);printf("结果为:%f+%fi",c.real,c.imag);break;case3:printf("输入c1的实部和虚部:")
7、;scanf("%f%f",&r11,&r12);InitComplex(c1,r11,r12);printf("输入c2的实部和虚部:");scanf("%f%f",&r21,&r22);InitComplex(c2,r21,r22);SubComplex(c,c1,c2);printf("结果为:%f+%fi",c.real,c.imag);break;case4:printf("输入c1的实部和虚部:");scanf("%f%f",&r11,&r12);InitComplex(c
8、1,r11,r12);printf("输入c2的实部和虚部:");scanf("%f%f",&r21,&r22);InitComplex(c2,r21,r22);MulComplex(c,c1,c2);printf("结果为:%f+%fi",c.real,c.imag);break;case5:printf("输入复数的实部和虚部:");scanf("%f%f",&r1,&r2);InitComplex(c,r1,r2);RealComplex(c,r);printf(