定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告

上传人:bin****86 文档编号:59977962 上传时间:2018-11-13 格式:DOCX 页数:12 大小:18.82KB
返回 下载 相关 举报
定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告_第1页
第1页 / 共12页
定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告_第2页
第2页 / 共12页
定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告_第3页
第3页 / 共12页
定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告_第4页
第4页 / 共12页
定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告》由会员分享,可在线阅读,更多相关《定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告(12页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告复数运算的演示程序【实验题目】实验1.抽象数据类型.【问题描述】用C或C+语言设计并实现一个可进行复数运算的演示程序。【基本要求】1.由输入的实部和虚部生成一个复数2.两个复数求和3.两个复数求差4.两个复数求积【实现提示】定义复数为由两个相互之间存在次序关系的实数构成的抽象数据类型,则可以利用实数的操作来实现复数的操作。一、【实验构思】(10%)复数由实部和虚部构成,可以通过一个含有两个元素的结构体来实现复数的表示,并

2、且通过接受用户的输入,可以实现复数的生成。对于复数的四则运算,可以编写四个函数,通过函数的调用来实现相应的运算。加减法:=+i乘法:*=+i除法:二、【实验设计(Design)】(15%)a+bic+di=(a+bi)(c-di)c+d22=(ac+bd)(bc-ad)ic+d22功能:能够显示和构造复数,并且能进行复数的加减乘除运算。主程序模块:voidmain()floata,b,c,d;fushuf1,f2,plu,min,mul;printf(请按实部虚部的顺序依次输入两个复数:);scanf(%f%f%f%f,&a,&b,&c,&d);getfushu(f1,a,b);/*调用get

3、fushu函数,构造复数f1*/getfushu(f2,c,d);/*调用getfushu函数,构造复数f2*/printf(n您输入的第一个复数是:);printfushu(f1);printf(n您输入的第二个复数是:);printfushu(f2);plusfushu(plu,f1,f2);/*调用plusfushu函数,使复数f1,f2相加*/printf(n相加结果为:);printfushu(plu);minusfushu(min,f1,f2);/*调用minuscomplex函数,使复数f1,f2相减*/printf(n相减结果为:);printfushu(min);multif

4、ushu(mul,f1,f2);/*调用multifushu函数,使f1,f2相乘*/printf(n相乘结果为:);printfushu(mul);printf(n);子程序模块:voidgetfushu(fushu&f,floata,floatb);/*构造复数*/voidplusfushu(fushu&plu,fushuf1,fushuf2);/*实现复数的相加*/voidminusfushu(fushu&min,fushuf1,fushuf2);/*实现复数的相减*/voidmultifushu(fushu&mul,fushuf1,fushuf2);/*实现复数的相乘*/voidpri

5、ntfushu(fushuf);/*显示复数*/三、【实现描述】(25%)voidgetfushu(fushu&f,floata,floatb);通过接受两个数据来构造一个复数f,其中a为复数的实部,b为复数的虚部。voidplusfushu(fushu&plu,fushuf1,fushuf2);接收两个复数,并对其进行加法运算,将运算结果保存在plu里。voidminusfushu(fushu&min,fushuf1,fushuf2);对复数f1,f2进行减法运算,并将运算结果保存在min里。voidmultifushu(fushu&mul,fushuf1,fushuf2);对复数f1,f2

6、进行乘法运算,并将运算结果保存在mul里。voidprintfushu(fushuf);将复数f显示出来。四、【测试结果】(20%)测试一:输入的两个复数分别为和+,其操作及显示结果如下请按实部虚部的顺序依次输入两个复数:0您输入的第一个复数是:您输入的第二个复数是:+(来自:写论文网:定义复数的结构体,对复数进行加,减,乘,除四则运算操作的实验报告)相加结果为:+相减结果为:-相乘结果为:+测试二:输入的两个复数分别为和-,其操作及显示结果如下请按实部虚部的顺序依次输入两个复数:0-您输入的第一个复数是:+您输入的第二个复数是:-相加结果为:-相减结果为:+相乘结果为:四、【实验总结】(10

7、%)实验总结、心得:经过这次实验,发现模块化编程能够使得程序变得简练,清晰,便于读者阅读,利于自己改进。实验中,从复数的构造,到加减乘的运算,再到结果的输出都是通过函数来实现的。另一方面,在这次实验中发现自己对基本知识的掌握还是不牢固,运行程序时出现了好多错误,后面又通过仔细的观察,才找出了错误的地方。这次实验,让我复习了C的使用方法,并熟练掌握了结构体的定义和使用。这次实验还让我对抽象数据类型的含义有了更深的了解。五、【项目运作描述】(10%)该项目投入了较多的时间,进行了多次修改,效益方面还可以,能进行简单的复数四则运算。应用效果上还不尽人如意,程序简单,界面也相当简陋,进行一些不合理的输

8、入时,得不到理想的回应,缺乏人性化设计,在用户提示上有所欠缺。六、【代码】(10%)#include#includetypedefstructfloatreal;floatimag;fushu;voidgetfushu(fushu&f,floata,floatb);voidplusfushu(fushu&plu,fushuf1,fushuf2);voidminusfushu(fushu&min,fushuf1,fushuf2);voidmultifushu(fushu&mul,fushuf1,fushuf2);voidprintfushu(fushuf);voidgetfushu(fushu&

9、f,floata,floatb)=a;=b;voidplusfushu(fushu&plu,fushuf1,fushuf2)=+;=+;voidminusfushu(fushu&min,fushuf1,fushuf2)=;=;voidmultifushu(fushu&mul,fushuf1,fushuf2)=(*)-(*);=(*)+(*);voidprintfushu(fushuf)if(!=0)printf(%lf,);if(0)printf(+);printf(%lfi,);elseif(structcomplexdoublereal;/复数的实部doubleimage;/复数的虚部;v

10、oidmain()inti;charcalu;complexnum1;complexnum2;cout;cout;cout;cout;loop:coutcalu;switch(calu)case+:doublem;doublen;m=+;n=+;couti;if(i0)gotoloop;elsecout运算结束!endl;实验报告题目:复数的四则运算班级:13信管姓名:白浩然学号:XX完成日期:一、需求分析1本演示程序中复数由两个相互之间存在次序关系的实数构成。2演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数

11、据和运算结果显示在其后。3程序执行的命令包括:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。4.测试数据:1)构造复数:2)复数求和:3)复数求差:4)复数求积:5)提取实部:6)提取虚部:二、编码实现#include#includestructcomplexfloatreal;/实部floatimag;/虚部;/构造复数voidInitComplex(complex&c,floatr1,floatr2)=r1;/r1为实部=r2;/r2为虚部/复数求和voidAddComplex(comple

12、x&c,complexc1,complexc2)=+;/实部相加=+;/虚部相加/复数求差voidSubComplex(complex&c,complexc1,complexc2)=;/实部相减=;/虚部相减/复数求积voidMulComplex(complex&c,complexc1,complexc2)=(*)-(*);=(*)+(*);/分离实部voidRealComplex(complexc,float&r)r=;/分离虚部voidImagComplex(complexc,float&r)r=;/主程序voidmain()complexc,c1,c2;floatr,r1,r2,r11,

13、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+%fin,);break;case2:printf(输入c1的实部和虚部:n);scanf(%f%f,&r11,&r12);InitComplex(c1,r11,r12);目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号