复数运算的演示程序文件

上传人:xmg****18 文档编号:118983543 上传时间:2020-01-02 格式:DOC 页数:6 大小:47KB
返回 下载 相关 举报
复数运算的演示程序文件_第1页
第1页 / 共6页
复数运算的演示程序文件_第2页
第2页 / 共6页
复数运算的演示程序文件_第3页
第3页 / 共6页
复数运算的演示程序文件_第4页
第4页 / 共6页
复数运算的演示程序文件_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《复数运算的演示程序文件》由会员分享,可在线阅读,更多相关《复数运算的演示程序文件(6页珍藏版)》请在金锄头文库上搜索。

1、 . . . .复数运算的演示程序【实验题目】 实验1. 抽象数据类型.【问题描述】用C或C+语言设计并实现一个可进行复数运算的演示程序。【基本要求】1.由输入的实部和虚部生成一个复数2.两个复数求和3.两个复数求差4.两个复数求积【实现提示】定义复数为由两个相互之间存在次序关系的实数构成的抽象数据类型,则可以利用实数的操作来实现复数的操作。(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四)一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)复数由实部和虚部构成,可

2、以通过一个含有两个元素的结构体来实现复数的表示,并且通过接受用户的输入,可以实现复数的生成。对于复数的四则运算,可以编写四个函数,通过函数的调用来实现相应的运算。加减法:(a + bi)(c + di)=(a c )+(b d)i乘法:(a + bi)*(c + di)=(ac - bd)+(ad + bc)i除法: 二、【实验设计(Design)】(15%)(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)功能:能够显示和构造复数,并且能进行复数的加减乘除运算。主程序模块:void main() float a,b,c,d;

3、 fushu f1,f2,plu,min,mul; printf(请按实部虚部的顺序依次输入两个复数:); scanf(%f%f%f%f,&a,&b,&c,&d); getfushu (f1,a,b); /*调用getfushu函数,构造复数f1*/ getfushu (f2,c,d); /*调用getfushu函数,构造复数f2*/ printf(n您输入的第一个复数是:); printfushu (f1); printf(n您输入的第二个复数是:); printfushu (f2); plusfushu (plu,f1,f2); /*调用plusfushu函数,使复数f1,f2相加*/ p

4、rintf(n相加结果为:); printfushu (plu); minusfushu (min,f1,f2); /*调用minuscomplex函数,使复数f1,f2相减*/ printf(n相减结果为:); printfushu (min); multifushu (mul,f1,f2); /*调用multifushu函数,使f1,f2相乘*/ printf(n相乘结果为:); printfushu (mul); printf(n);子程序模块:void getfushu (fushu& f,float a,float b); /*构造复数*/void plusfushu (fushu&

5、 plu, fushu f1, fushu f2); /*实现复数的相加*/void minusfushu (fushu& min, fushu f1, fushu f2); /*实现复数的相减*/void multifushu (fushu& mul, fushu f1, fushu f2); /*实现复数的相乘*/void printfushu (fushu f); /*显示复数*/三、【实现描述(Implement)】(25%)(本部分应包括:抽象数据类型具体实现的函数原型说明、 关键操作实现的伪码算法、 函数设计、函数间的调用关系,关键的程序流程图等,给出关键算法的时间复杂度分析。)v

6、oid getfushu (fushu& f,float a,float b);通过接受两个数据来构造一个复数f,其中a为复数的实部,b为复数的虚部。void plusfushu (fushu& plu, fushu f1, fushu f2);接收两个复数,并对其进行加法运算,将运算结果保存在plu里。void minusfushu (fushu& min, fushu f1, fushu f2);对复数f1,f2进行减法运算,并将运算结果保存在min里。void multifushu (fushu& mul, fushu f1, fushu f2);对复数f1,f2进行乘法运算,并将运算结

7、果保存在mul里。void printfushu (fushu f);将复数f显示出来。四、【测试结果(Testing)】(20%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的数据,并对测试结果进行分析总结)测试一:输入的两个复数分别为3.1和4.22+8.9i,其操作及显示结果如下请按实部虚部的顺序依次输入两个复数:3.1 0 4.22 8.9您输入的第一个复数是:3.100000您输入的第二个复数是:4.220000+8.900000i相加结果为:7.320000+8.900000i相减结果为:-1.120000-8.900000i相乘结果为:13.08199

8、9+27.589998i测试二:输入的两个复数分别为9.7i和-2.1-9.7i,其操作及显示结果如下请按实部虚部的顺序依次输入两个复数:0 9.7 -2.1 -9.7您输入的第一个复数是:+9.700000i您输入的第二个复数是:-2.100000-9.700000i相加结果为:-2.100000相减结果为:2.100000+19.400000i相乘结果为:94.089996-20.369999i四、【实验总结】(10%)(本部分应包括:自己在实验中完成的任务,注意组内的任意一位同学都必须独立完成至少一项接口的实现;对所完成实验的经验总结、心得)实验总结、心得:经过这次实验,发现模块化编程能

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

10、简陋,进行一些不合理的输入时,得不到理想的回应,缺乏人性化设计,在用户提示上有所欠缺。六、【代码】(10%)(本部分应包括:完整的代码及充分的注释。 注意纸质的实验报告无需包括此部分。格式统一为,字体: Georgia , 行距: 固定行距12,字号: 小五)#include#includetypedef struct float real; float imag; fushu;void getfushu(fushu& f,float a,float b);void plusfushu(fushu& plu,fushu f1, fushu f2);void minusfushu(fushu&

11、min,fushu f1, fushu f2);void multifushu(fushu& mul,fushu f1, fushu f2);void printfushu(fushu f);void getfushu(fushu& f,float a,float b)f.real=a; f.imag=b;void plusfushu(fushu& plu,fushu f1,fushu f2)plu.real=f1.real+f2.real; plu.imag=f1.imag+f2.imag;void minusfushu(fushu& min,fushu f1,fushu f2)min.re

12、al=f1.real-f2.real; min.imag=f1.imag-f2.imag;void multifushu(fushu& mul,fushu f1,fushu f2)mul.real=(f1.real*f2.real)-(f1.imag*f2.imag); mul.imag=(f1.real*f2.imag)+(f1.imag*f2.real);void printfushu(fushu f)if (f.real!=0) printf(%lf,f.real); if (f.imag0) printf(+); printf(%lfi,f.imag); else if(f.imag0

13、) printf(%lfi,f.imag); void main() float a,b,c,d; fushu f1,f2,plu,min,mul; printf(请按实部虚部的顺序依次输入两个复数:); scanf(%f%f%f%f,&a,&b,&c,&d); getfushu(f1,a,b); getfushu(f2,c,d); printf(n您输入的第一个复数是:); printfushu(f1); printf(n您输入的第二个复数是:); printfushu(f2); plusfushu(plu,f1,f2); printf(n相加结果为:); printfushu(plu); minusfushu(min,f1,f2); printf(n相减结果为:); printfushu(min); multifushu(mul,f1,f2); printf(n相乘结果为:); printfushu(mul); printf(n); . word资料可编辑 .

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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