复数运算的演示程序.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复数运算的演示程序

【实验题目】

实验1.抽象数据类型•

【问题描述】

用C或C++语言设计并实现一个可进行复数运算的演示程序。

【基本要求】

1.由输入的实部和虚部生成一个复数

2.两个复数求和

3.两个复数求差

4.两个复数求积

【实现提示】

定义复数为由两个相互之间存在次序关系的实数构成的抽象数据类型,则可以利用实数的操作来实现复数的操作。

(下面的内容由学生填写,格式统一为,字体:楷体,行距:固定行距18,字号:小四) 一、【实验构思(Conceive )】(10%)

(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)

复数由实部和虚部构成,可以通过一个含有两个元素的结构体来实现复数的表示,并且通过接受用户的输入,可以实现复数的生成。对于复数的四则运算,可以编写四个函数,通过函数的调用来实现相应的运算。

加减法:(a + bi )±(c + di) = (a ± c ) + (b ± d) i

乘法:(a + bi) * (c + di) = (ac - bd ) + (ad + bc ) i

a bi _ (a bi)(c _di) (ac bd)(bc -ad)i

除、:c di _ c2 d2「c2 d2

二、【实验设计(Design)】(15%)

(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)

功能:能够显示和构造复数,并且能进行复数的加减乘除运算。主程序模块: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 函数,构造复数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); multifushu (mul,f1,f2); /* 调用multifushu 函数,使f1,f2 相乘*/ printf("\n 相乘结果为:");

printfushu (mul); printf("\n");

} 子程序模块:void getfushu (fushu& f,float a,float 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); /* 显示复数*/

、【实现描述( Implement )】(25%)

本部分应包括:抽象数据类型具体实现的函数原型说明、法、

关键操作实现的伪码算

函数设计、函数间的调用关系,关键的程序流程图等,给出关键算

法的时间复杂度分析。)

void 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 进行乘法运算,并将运算结果保存在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.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.089996-20.369999i

相关文档
最新文档