C++课程设计报告——复数计算器_第1页
C++课程设计报告——复数计算器_第2页
C++课程设计报告——复数计算器_第3页
C++课程设计报告——复数计算器_第4页
C++课程设计报告——复数计算器_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、C+课程设计报告课程设计题目:复数计算器姓名:学号:专业:班级: 指导教师 :目录一、概述.1二、 系统分析 . 1 系统的实现 . 1 实现的基本功能 . 1 拓展 . 1三、设计 . 2 系统功能设计 . 2 类设计 . 3 函数设计 . 3 流程图 . 5四、主程序 . 5 代码 . 5 运行结果 . 10五、不足之处 . 13六、心得体会 . 13七、参考文献 . 13概述题目:复数计算器1实现复数的四则运算。 2设计数字选择功能菜单,根据输入的数字选择执行不同的功能。二、系统分析 系统的实现根据题中任务的功能,首先要搞清楚复数的运算法则,并使用C+语言表达,复数包括实部和虚部, 其形

2、式可以表示成 a+bj 。表现出这种形式的关 键是定义一个复数类Complex,定义所需的成员函数,对各运算符进行重载, 并定义主函数实现对整个程序的控制,最后进行编译,运行和调试。 实现的基本功能由用户输入复数的实部和虚部, 对不少于两个的复数进行加减乘除四则 运算,当用户输入的复数为 0 是停止四则运算,输出 a+bj 形式的计算结果。 拓展为使用户可以进行多个复数的计算以及使他们自由选择所需计算的复 数个数,特定义了两个重载 != 和 = 函数,若复数输入的是 0,那么计 算结束。1复数的加法Complex operator+(Complex &c)Complex sum; sum.re

3、al=real+c.real; sum.imag=imag+c.imag; return sum;2复数的减法Complex operator-(Complex &c)Complex sub; sub.real=real-c.real; sub.imag=imag-c.imag; return sub;3复数的乘法Complex operator*(Complex &c)Complex multi;multi.real=real*c.real-imag*c.imag; multi.imag=real*c.imag+imag*c.real; return multi;4复数的除法/ 加法重载/

4、减法重载/ 乘法重载/ 实部相加/ 虚部相加/ 实部相减/ 虚部相减/ 实部乘积/ 虚部乘积/ 除法重载实部除积虚部除积三、设计 系统功能设计根据题目要求,系统需要实现四则计算,根据复数的运算法则,四则运算的 计算如下:Complex operator/(Complex &c)Complex div;div.real=(real*c.real+imag*c.imag)/(c.real*c.real+c.imag*c.imag); / div.imag=(imag*c.real-real*c.imag)/(c.real*c.real+c.imag*c.imag); / return div;复数

5、加法运算函数复数减法运算函数复数乘法运算函数复数除法运算函数coutt*菜单*n; 类设计定义 Complex 类:1实部 real,虚部 imagdouble real,imag;2构造函数:Complex() ,Complex(double r,double i)3析构函数:Complex()4加法重载:Complex operator+(Complex &c)5减法重载:Complex operator-(Complex &c)6乘法重载:Complex operator*(Complex &c)7除法重载:Complex operator/(Complex &c) 8重载 =:int

6、Complex: operator=(Complex &c)9重载! =:int Complex: operator!=(Complex &c) 函数设计1多个复数四则运算的设计void Add() /void Sub() /void Mul() /void Div() /2主函数的设计数字选择功能菜单,根据输入的数字选择执行不同的功能用户输入复数的实部,虚部,从而得到计算结果void main() / 主函数开始char strChoise20; / 定义字符串名 system(cls);coutt 这是一个复数计算器,可以实现以下功能,请按对应的按键 (0-4)nnn;coutt1: 多复

7、数加法,以 0 结束 n;coutt2: 多复数减法,以 0 结束 n;coutstrChoise; if(strcmp(strChoise,1)=0) Add();else if(strcmp(strChoise,2)=0)Sub();else if(strcmp(strChoise,3)=0) Mul();else if(strcmp(strChoise,4)=0)/用户选1则调用Add()函数/用户选2则调用Sub()函数/用户选3则调用Mul()函数/用户选4则调用Div()函数Div();else if(strcmp(strChoise,0)=0) / 用户选 0 则结束调用函数 c

8、outnnt 欢迎下次继续使用复数计算器 !nn; elsecoutnt 输入错误,请按任意键继续 !n;coutt3: 多复数乘法,以 0 结束 n; coutt4: 多复数除法,以 0 结束 n; coutt0: 退出程序 nn:;流程图四、主程序代码#in clude#in clude#in clude using n amespace std; class Complexpublic: double real,imag;Complex。Complex(double r,double i)/real=r; imag=i;Complex()Complex operator+(Complex

9、 &c)Complex sum;sum.real=real+c.real;sum.imag=imag+c.imag;return sum;Complex operator-(Complex &c)Complex sub;sub.real=real-c.real;sub.imag=imag-c.imag;return sub;Complex operator*(Complex &c)Complex multi; multi.real=real*c.real-imag*c.imag; multi.imag=real*c.imag+imag*c.real; return multi;构造函数/ 加法

10、重载/实部相加虚部相加/减法重载/实部相减/虚部相减/乘法重载/实部乘积/虚部乘积/ 除法重载real=0.0;imag=0.0;Complex operator/(Complex &c)Complex div;div.real=(real*c.real+imag*c.imag)/(c.real*c.real+c.imag*c.imag);/实部除积div.imag=(imag*c.real-real*c.imag)/(c.real*c.real+c.imag*c.imag);/虚部除积return div;i nt Complex: operator=(Complex &c)if(real=

11、c.real&imag=c.imag)return 1;elsereturn 0;int Complex: operator!=(Complex &c) if(real=c.real&imag=c.imag)return 0;elsereturn 1;void Add() / 复数加法运算函数double a,b,c,d;cout 加法计算 n 最少输入两个复数 , 并且以 0 结束 n;coutab;coutcd;Complex num1(a,b),num2(c,d),sum,zero(0,0);sum=num1+num2;double x,y;coutxy;Complex num(x,y)

12、;int i=4;while(!(num=zero)sum=sum+num;cout 第 iab;num.real =a;num.imag =b;i+;i f(sum.imag 0)cout 加法结果是 :sum.real+sum.imagjendl; elsecout 加法结果是 :sum.realsum.imagjendl; cout 请按任意键继续 n;void Sub() / 复数减法运算函数double a,b,c,d;cout 减法计算 n 最少输入两个复数 , 并且以 0 结束 n;coutab;coutcd;Complex num1(a,b),num2(c,d),sub,zer

13、o(0,0);sub=num1-num2;double x,y;coutxy;Complex num(x,y);int i=4;while(!(num=zero)sub=sub-num;cout第 iab;num.real =a;num.imag =b;i+;i f(sub.imag0)cout 减法结果是 :sub.real+sub.imagjendl; elsecout 减法结果是 :sub.realsub.imagjendl;cout 请按任意键继续 n;void Mul() / 复数乘法运算函数double a,b,c,d;cout 乘法计算 n 最少输入两个复数 , 并且以 0 结束

14、 n;coutab;coutcd;Complex num1(a,b),num2(c,d),mul,zero(0,0);mul=num1*num2;double x,y;coutxy;Complex num(x,y);int i=4;while(!(num=zero)mul=mul*num;cout 第 iab;num.real =a;num.imag =b;i+;i f(mul.imag 0)cout 乘法结果是 :mul.real+mul.imagjendl; elsecout 乘法结果是 :mul.realmul.imagjendl;cout 请按任意键继续 n;void Div() /

15、复数除法运算函数double a,b,c,d;cout 除法计算 n 最少输入两个复数 , 并且以 0 结束 n;coutab;coutcd;Complex num1(a,b),num2(c,d),div,zero(0,0); div=num1/num2;double x,y;coutxy;Complex num(x,y);int i=4;while(num!=zero)div=div/num;cout 第 iab;num.real =a;num.imag =b;i+;i f(div.imag0)cout 除法结果是 :div.real+div.imagjendl; elsecout 除法结果

16、是 :div.realdiv.imagjendl;cout 请按任意键继续 n;void main() / 主函数开始char strChoise20; / 定义字符串名 system(cls);coutt 这是一个复数计算器, 可以实现以下功能, 请按对应的按键 (0-4)nnn;coutt*菜单 *ncoutt1:多复数加法,以0 结束 n;coutt2:多复数减法,以0 结束 n;coutt3:多复数乘法,以0 结束 n;coutt4:多复数除法,以0 结束 n;coutt0:退出程序 nn:;coutstrChoise;if(strcmp(strChoise,1)=0)/用户选 1则调

17、用 Add() 函数Add();else if(strcmp(strChoise,2)=0) /用户选 2则调用 Sub() 函数Sub();else if(strcmp(strChoise,3)=0) /用户选 3 则调用 Mul() 函数Mul();else if(strcmp(strChoise,4)=0) /用户选 4 则调用 Div() 函数Div();else if(strcmp(strChoise,0)=0) /用户选 0 则结束调用函数coutnnt 欢迎下次继续使用复数计算器 !nn; elsecoutnt 输入错误,请按任意键继续 !n; 运行结果1加法运算2 .减法运算3 .乘法运算4.除法计算五、不足之处在测试的环节中,界面的结构不够人性化,不如加法算完后要重新进入才能 继续算减法。六、心得体会通过这一次的课程设计,我自己有了很大的收获,不仅仅是在C+勺知识上,更有在问题的处理能力上的一个

温馨提示

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

评论

0/150

提交评论