中南大学 c++课程设计报告

上传人:第*** 文档编号:56889070 上传时间:2018-10-16 格式:DOC 页数:25 大小:206.50KB
返回 下载 相关 举报
中南大学 c++课程设计报告_第1页
第1页 / 共25页
中南大学 c++课程设计报告_第2页
第2页 / 共25页
中南大学 c++课程设计报告_第3页
第3页 / 共25页
中南大学 c++课程设计报告_第4页
第4页 / 共25页
中南大学 c++课程设计报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《中南大学 c++课程设计报告》由会员分享,可在线阅读,更多相关《中南大学 c++课程设计报告(25页珍藏版)》请在金锄头文库上搜索。

1、中南大学高级程序设计实践 (C+) 课程设计报告题 目 复数计算器 学生姓名 指导教师 刘嫔 学 院 信息科学与工程学院 专业班级 完成时间 2013 年 07 月 04 日 高级程序设计实践(C+)课程设计报告 1目录 第一章 概述.11 需求分析111 程序设计的任务112 程序实现的功能12 概要设计121 系统中的实体121 系统的类层次121 主程序的流程第二章 编辑程序2.1 程序设计211 系统功能设计 212 类设计213 函数设计 214 流程图 2.2 调试分析221 调试过程中遇到的问题及解决方法222 算法的时间复杂性和可能的改进设想2.3 测试结果231 实数计算测试

2、结果232 复数计算测试结果第 3 章 课程设计总结3.1 遇到的问题及解决过程3.2 课程设计收获3.3 课程设计思考附录:源程序代码高级程序设计实践(C+)课程设计报告 2第一章 概述11 需求分析 111 程序设计的任务 运用面向对象程序设计知识,利用 C+语言设计和实现一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算(5)实现实数、复数信息的输出112 程序实现的功能可以实现实

3、数的加、减、乘、除、自增、自减、求平方、二次方根等运算。可以实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算。12 概要设计121 系统中的实体整个系统包含两个类,两个 judge 函数和三个 show 函数。主函数为 show函数,show 函数中调用 judge 函数,而在 judge 函数的末尾又调用 show 函数,如此实现系统的循环,就可以在进行一次计算后立即进入下一次计算。122 系统的类层次系统有两个大类,实数类和复数类,每个类下都有其数据成员和成员函数,通过对数据成员的赋值和对成员函数的调用就可以实现相应的计算,达到系统预设的目的。

4、123 主程序的流程高级程序设计实践(C+)课程设计报告 3进入主程序,有两个选择,进入实数计算或者复数计算。例如进入复数计算后,由用户输入复数的实部和虚部,再输入想进行的计算的运算符,若是单复数计算,则程序会立刻显示运算结果;若是多复数计算,则系统会提示输入下一个复数,输入便可得出结果。一次计算结束后,程序会出现三个选择, “继续,返回和退出” ,选择“继续”或“返回”都可继续使用该程序。第 2 章 编辑程序2.1 程序设计211 系统功能设计 根据题目要求,系统需要实现四则计算等运算,根据复数的运算法则,这 些运算的计算如下: 1复数的加法 Complex operator+(Comple

5、x sum.real=real+c.real; /实部相加sum.imag=imag+c.imag; /虚部相加return sum; 2复数的减法 Complex operator-(Complex sub.real=real-c.real; /实部相减sub.imag=imag-c.imag; /虚部相减return sub; 3复数的乘法 Complex operator*(Complex multi.real=real*c.real-imag*c.imag; /实部乘积multi.imag=real*c.imag+imag*c.real; /虚部乘积return multi; 4复数的

6、除法 Complex operator/(Complex 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. 复数的平方 Complex Complex:power() /计算复数的平方 Complex c; c.real=real*real-imag*imag; c.imag=imag*real+real*imag; return c

7、; 6. 求共轭复数 Complex Complex:conjugate() /计算一个复数的共轭复 数 Complex c; c.real=real; c.imag=(-imag); return c; 7. 求单个复数的向量角 double Complex:angle() /计算一个复数的向量 角 double a; double b; a=imag/real; b=atan(a)/3.1415926*180; return b; 8. 求两个复数的夹角 double Complex:Incangle(Complex if(real!=0)高级程序设计实践(C+)课程设计报告 5b=ata

8、n(c2.imag/c2.real)/3.1415926*180;c=abs(a-b);if(real=0)b=atan(c2.imag/c2.real)/3.1415926*180;c=abs(a-b);if(real=0)return c; 9.求复数的模 void Complex:length() /计算复数的模 len=sqrt(real*real+imag*imag); couti; if(i=1) /判断要进行实数类运算还是复数类运算 show1(); if(i=2) show2(); return 0; void show1() cout #include #include #i

9、nclude using namespace std; class Complex /定义复数类 public: Complex() /构造函数初始化 real=0; imag=0; Complex(double r,double i) /构造函数 real=r; imag=i; Complex operator +(Complex /对加法运算符重载 Complex operator -(Complex /对减法运算符重载 Complex operator *(Complex /对乘法运算符重载 Complex operator /(Complex /对除法运算符重载Complex powe

10、r(); Complex conjugate(); double angle(); double Incangle(Complex void Complex:length(); void set(); void display(); private: double real; double imag; double len; ; Complex Complex:operator +(Complex c.real=real+c2.real; c.imag=imag+c2.imag; return c; Complex Complex:operator -(Complex c.real=real-

11、c2.real; c.imag=imag-c2.imag; return c; Complex Complex:operator *(Complex c.real=real*c2.real-imag*c2.imag; c.imag=imag*c2.real+real*c2.imag; return c; Complex Complex:operator /(Complex c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(imag*c2.real-real*c2.imag)/(c2.rea

12、l*c2.real+c2.imag*c2.imag); return c; Complex Complex:power() /计算复数的平方 Complex c; c.real=real*real-imag*imag; c.imag=imag*real+real*imag; return c; Complex Complex:conjugate() /计算一个复数的共轭复数 Complex c; c.real=real; c.imag=(-imag); return c; double Complex:angle() /计算一个复数的向量角 double a; double b; a=imag

13、/real; b=atan(a)/3.1415926*180; return b; 高级程序设计实践(C+)课程设计报告 17double Complex:Incangle(Complex if(real!=0)b=atan(c2.imag/c2.real)/3.1415926*180;c=abs(a-b);if(real=0)b=atan(c2.imag/c2.real)/3.1415926*180;c=abs(a-b);if(real=0)return c; void Complex:length() /计算复数的模 len=sqrt(real*real+imag*imag); coutrealimag; void Complex:display()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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