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

下载本文档

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

文档简介

C+课程设计报告课程设计题目:复数计算器姓名: 学号:专业:班级: 指导教师: 年 月 日 目录一概述1二、系统分析1 系统的实现1 实现的基本功能1 拓展1三、设计2 系统功能设计2 类设计3 函数设计3 流程图5四、主程序5 代码5 运行结果10五、不足之处13六、心得体会13七、参考文献13 一概述题目:复数计算器1实现复数的四则运算。2设计数字选择功能菜单,根据输入的数字选择执行不同的功能。二、系统分析 系统的实现根据题中任务的功能,首先要搞清楚复数的运算法则,并使用C+语言表达,复数包括实部和虚部,其形式可以表示成a+bj。表现出这种形式的关键是定义一个复数类Complex,定义所需的成员函数,对各运算符进行重载,并定义主函数实现对整个程序的控制,最后进行编译,运行和调试。 实现的基本功能由用户输入复数的实部和虚部,对不少于两个的复数进行加减乘除四则运算,当用户输入的复数为0是停止四则运算,输出a+bj形式的计算结果。 拓展 为使用户可以进行多个复数的计算以及使他们自由选择所需计算的复数个数,特定义了两个重载 != 和 = 函数,若复数输入的是0,那么计算结束。三、设计 系统功能设计根据题目要求,系统需要实现四则计算,根据复数的运算法则,四则运算的计算如下:1复数的加法 Complex operator+(Complex &c) /加法重载 Complex sum; sum.real=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复数的除法 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; 类设计定义Complex类:1实部real ,虚部 imag double 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 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; coutt*菜单*n; coutt1:多复数加法,以0结束n; coutt2:多复数减法,以0结束n; coutt3:多复数乘法,以0结束n; coutt4:多复数除法,以0结束n; coutt0:退出程序nn:; coutstrChoise; if(strcmp(strChoise,1)=0) /用户选1则调用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; else coutnt输入错误,请按任意键继续!n; 流程图进入选择并输入复数减法复数加法复数乘法复数除法退出输出重新选择及输入四、主程序 代码#include #include #include using namespace std;class Complexpublic:double real,imag; Complex()real=0.0;imag=0.0; Complex(double r,double i) /构造函数 real=r; imag=i; Complex() Complex operator+(Complex &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; 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; int Complex: operator=(Complex &c)if(real=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); int i=4; while(!(num=zero) sum=sum+num; cout第iab; num.real =a; num.imag =b; i+; if(sum.imag 0) cout加法结果是:sum.real+sum.imagjendl; else cout加法结果是: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,zero(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+; if(sub.imag0) cout减法结果是:sub.real+sub.imagjendl; else cout减法结果是:sub.realsub.imagjendl; cout请按任意键继续n; void Mul() /复数乘法运算函数 double a,b,c,d; cout乘法计算n最少输入两个复数,并且以0结束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+; if(mul.imag 0) cout乘法结果是:mul.real+mul.imagjendl; else cout乘法结果是:mul.realmul.imagjendl; cout请按任意键继续n; void Div() /复数除法运算函数 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+; if(div.imag0) cout除法结果是:div.real+div.imagjendl; else cout除法结果是:div.realdiv.imagjendl; cout请按任意键继续n; void main() /主函数开始 char strChoise20; /定义字符串名 system(cls); coutt这是一个复数计算器,可以实现以下功能,请按对应的按键(0-4)nnn; coutt*菜单*n; coutt1:多复数加法,以0结束n; coutt2:多复数减法,以0结束n; coutt3:多复数乘法,以0结束n; coutt4:多复数除法,以0结束n; coutt0:退出程序nn:; coutstrChoise; if(strcmp(strChoise,1)=0) /用户选1则调用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; else coutnt输入错误,请按任意键继续!n; 运行结果1加法运算2减法运算3乘法运算4除法计算五、不足之处在测试的环节中,界面的结构不够人性化,不如加法算完后要重新进入才能继续算减法。六、心得体会通过这一次的课程设计,我自己有了很大的收获,不仅仅是在C+的知识上,更有在问题的处

温馨提示

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

评论

0/150

提交评论