您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > C语言复数的运算(实验报告)
实验报告题目:复数的四则运算班级:13信管姓名:白浩然学号:201340403034完成日期:2014.05.21一、需求分析1.本演示程序中复数由两个相互之间存在次序关系的实数构成。2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。3.程序执行的命令包括:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。4.测试数据:1)构造复数:2)复数求和:3)复数求差:4)复数求积:5)提取实部:6)提取虚部:二、编码实现#includestdio.h#includestdlib.hstructcomplex{floatreal;//实部floatimag;//虚部};//构造复数voidInitComplex(complex&c,floatr1,floatr2){c.real=r1;//r1为实部c.imag=r2;//r2为虚部}//复数求和voidAddComplex(complex&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.real=(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;printf(请输入要操作的序号:\n);printf(1.构造一个复数2.两个复数求和3.两个复数求差\n);printf(4.两个复数求积5.分离出实部6.分离出虚部\n);scanf(%d,&node);while(node!=0){switch(node){case1:printf(输入复数的实部和虚部:\n);scanf(%f%f,&r1,&r2);InitComplex(c,r1,r2);printf(构造的复数为:%f+%fi\n,c.real,c.imag);break;case2:printf(输入c1的实部和虚部:\n);scanf(%f%f,&r11,&r12);InitComplex(c1,r11,r12);printf(输入c2的实部和虚部:\n);scanf(%f%f,&r21,&r22);InitComplex(c2,r21,r22);AddComplex(c,c1,c2);printf(结果为:%f+%fi\n,c.real,c.imag);break;case3:printf(输入c1的实部和虚部:\n);scanf(%f%f,&r11,&r12);InitComplex(c1,r11,r12);printf(输入c2的实部和虚部:\n);scanf(%f%f,&r21,&r22);InitComplex(c2,r21,r22);SubComplex(c,c1,c2);printf(结果为:%f+%fi\n,c.real,c.imag);break;case4:printf(输入c1的实部和虚部:\n);scanf(%f%f,&r11,&r12);InitComplex(c1,r11,r12);printf(输入c2的实部和虚部:\n);scanf(%f%f,&r21,&r22);InitComplex(c2,r21,r22);MulComplex(c,c1,c2);printf(结果为:%f+%fi\n,c.real,c.imag);break;case5:printf(输入复数的实部和虚部:\n);scanf(%f%f,&r1,&r2);InitComplex(c,r1,r2);RealComplex(c,r);printf(实部为:%f\n,r);break;case6:printf(输入复数的实部和虚部:\n);scanf(%f%f,&r1,&r2);InitComplex(c,r1,r2);ImagComplex(c,r);printf(虚部为:%f\n,r);break;default:printf(结束);}scanf(%d,node);}}三、调试分析1.开始时文件后缀写成了“.c”,导致调试多次无法运行,后来改为“.cpp”;2.多处“%f”写成了“%d”,导致程序不能正常运行;3.定义结构体时,最后一个“}”后忘记加“;”,导致程序出现错误,以后应多加注意。
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:C语言复数的运算(实验报告)
链接地址:https://www.777doc.com/doc-7215396 .html