复数运算地演示程序_第1页
复数运算地演示程序_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、示和构造复数,并且能进行复数的加减乘除运算 主程序模块:void mai n()float a,b,c,d;fushu f1,f2,plu,min,mul;printf(请按实部虚部的顺序依次输入两个复数:);scan f(%f%f%f%f,&a,&b,&c,&d);getfushu (f1,a,b); /*调用getfushu函数,构造复数f1*/getfushu (f2,c,d); /*调用getfushu函数,构造复数f2*/printf(n您输入的第一个复数是:);prin tfushu (f1);printf(n您输入的第二个复数是:);prin tf

4、ushu (f2);plusfushu (plu,f1,f2); /*调用plusfushu函数,使复数f1,f2相加*/printf(n相加结果为:);prin tfushu (plu);minusfushu (min,f1,f2); /*调用minuscomplex函数,使复数f1,f2相减*/printf(n相减结果为:);prin tfushu (min);multifushu (mul,f1,f2); /*调用multifushu函数,使f1,f2相乘*/printf(n相乘结果为:);prin tfushu (mul);prin tf(n);子程序模块:void getfushu

5、(fushu & f,float a,float b); /*void plusfushu (fushu& plu, fushu f1, fushu f2); /* voidminu sfushu (fushu& min, fushu f1, fushu f2); /* voidmultifushu (fushu & mul, fushu f1, fushu f2); /* voidprintfushu (fushu f); /*显示复数*/三、【实现描述(Implement)】(25%)构造复数*/实现复数的相加*/实现复数的相减*/实现复数的相乘*/实用标准

6、文档精彩文案(本部分应包括:抽象数据类型具体实现的函数原型说明、 法、函数设计、函数间的调用关系,关键的程序流程图等,给出关键算法的时间复 杂度分析。)void getfushu (fushu& f,float afloat b);通过接受两个数据来构造一个复数f,其中a为复数的实部,b为复数的虚部void plusfushu (fushu& plu, fushu f1, fushu f2);接收两个复数,并对其进行加法运算,将运算结果保存在plu里。void minu sfushu (fushu& min, fushu f1, fushu f2);对复数f1,f2进行

7、减法运算,并将运算结果保存在min里。void multifushu (fushu & mul, fushu f1, fushu f2);对复数f1,f2进行乘法运算,并将运算结果保存在mul里。void prin tfushu (fushu f);将复数f显示出来。四、【测试结果(Testing)】(20%)(本部分应包括:对实验的测试结果,应具体列出每次测试所输入的数据以及输出的 数据,并对测试结果进行分析总结)测试一:输入的两个复数分别为3.1和4.22+89,其操作及显示结果如下请按实部虚部的顺序依次输入两个复数:3.1 0 4.22 8.9您输入的第一个复数是3100000您

8、输入的第二个复数是:4.220000+8.900000i相加结果为:7.320000+8.900000i相减结果为:-1.120000-8.900000i相乘结果为:13.081999+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.08999

9、6-20.369999i实用标准文档精彩文案四、【实验总结】(10%)(本部分应包括:自己在实验中完成的任务, 注意组内的任意一位同学都必须独立完 成至少一项接口的实现;对所完成实验的经验总结、心得)实验总结、心得:经过这次实验,发现模块化编程能够使得程序变得简练,清晰,便 于读者阅读,利于自己改进。实验中,从复数的构造,至V加减乘的运算,再到结果的 输出都是通过函数来实现的。另一方面,在这次实验中发现自己对基本知识的掌握还 是不牢固,运行程序时出现了好多错误,后面又通过仔细的观察,才找出了错误的地 方。这次实验,让我复习了C的使用方法,并熟练掌握了结构体的定义和使用。这次 实验还让我对抽象数

10、据类型的含义有了更深的了解。五、【项目运作描述(Operate)】(10%)(本部分应包括:项目的成本效益分析,应用效果等的分析。)该项目投入了较多的时间,进行了多次修改,效益方面还可以,能进行简单的复数四 则运算。应用效果上还不尽人如意,程序简单,界面也相当简陋,进行一些不合理的 输入时,得不到理想的回应,缺乏人性化设计,在用户提示上有所欠缺。六、【代码】(10%)格式统一为,字体:Georgia ,行距:固定行距12,字号:小五)#include#includetypedef structfloat real;float imag;fushu;void getfushu(fushu&

11、; f,float afloat b);void plusfushu(fushu& 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);void getfushu(fushu& f,float a,float b)f.real=a;f.imag=b;void plusfushu(fushu& plu,fushu f1,fu

12、shu f2) plu.real=f1.real+f2.real; plu.imag=f1.imag+f2.imag;(本部分应包括:完整的代码及充分的注释。注意纸质的实验报告无需包括此部分实用标准文档精彩文案void minusfushu(fushu& min,fushu f1,fushu f2) min.real=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

13、); 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)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);prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论