C--课程设计报告--复数计算器.doc

上传人:鲁** 文档编号:542411502 上传时间:2022-10-13 格式:DOC 页数:54 大小:586.50KB
返回 下载 相关 举报
C--课程设计报告--复数计算器.doc_第1页
第1页 / 共54页
C--课程设计报告--复数计算器.doc_第2页
第2页 / 共54页
C--课程设计报告--复数计算器.doc_第3页
第3页 / 共54页
C--课程设计报告--复数计算器.doc_第4页
第4页 / 共54页
C--课程设计报告--复数计算器.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《C--课程设计报告--复数计算器.doc》由会员分享,可在线阅读,更多相关《C--课程设计报告--复数计算器.doc(54页珍藏版)》请在金锄头文库上搜索。

1、 高级程序设计实践(C+)课程设计报告题 目 复数计算器 目录第一章 需求分析.第1页第二章 概要设计.第2页第三章 详细设计.第4页第四章 调试分析.第21页第五章 测试结果.第25页第六章 课程设计总结.第36页第七章 参考文献.第37页第八章 附录.第37页 C+程序设计之复数计算器 第一章 需求分析第一章 需求分析1.1程序设计的任务11.1编程目的1.本次程序设计的目的运用面向对象程序设计知识,利用C+语言设计和实现一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现

2、复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算(5)实现实数、复数信息的输出1.1.2编程要求在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C+语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。1.1.3数据范围数据输入的形式为float型,输出形式亦是float型,数据(实数、复数的实部、虚部)范围是-2128 +2128,也即-3.40E+38 +3.40E+38。1.2本程序能实现的功能1.2.1实数类(Complex)所实现的功能:实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算

3、、前置自减运算、后置自减运算、求平方运算、求平方根运算;1.2.2复数类(Complex1)所实现的功能:复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。1.2.3主函数所能实现的功能1.提供给操作者操作数据的类型(实数还是复数)的标识;2.操作者选择数据类型后,提供运算类型操作的标识;3.运用指针调用两个类的各成员函数分别完成各项计;第52页 C+程序设计之复数计算器 第二章 概要设计 第二章 概要设计2.1构成部分2.1.1系统由三部分构成:实数类(Complex)、复数类(Complex1)、主函数main。

4、2.1.2.构成部分关系复数类(Complex1)由实数类(Complex)派生而来,其中两者成员函数中的enter(输入数据)函数是虚函数,用以实现多态性。主函数main通过指针调用实数类(Complex)、复数类(Complex1)分别完成实数运算、复数运算。2.1.3.类层次实数类是父类,复数类是子类。2.2主程序流程以及程序模块之间的调用关系如图2.21所示:输入flag判断flag判断wflag=1flag=2实数运算复数运算判断v w=3 w=4 w=5 w=6 w=12 v=3 v=4 v=5 v=6 v=11乘法运算减法运算加法运算求复数间夹角除法运算乘法运算减法运算加法运算求

5、平方运算除法运算图2.2-1主程序流程以及程序模块之间的调用关系图注:图2.2-1中没有画出1. flag=0时退出系统;2. flag不等于0,1,2时出现错误提示语句的选择结构;3. w,v在选择范围之外时出现错误提示语句的选择结构。4. 特殊处理:除法运算分母为0;求二次方根数为负数;求单个复数夹角时判断象限的过程。 C+程序设计之复数计算器 第三章 详细设计 第三章 详细设计3.1类层次中各个类的描述3.1.1.实数类(Complex)私有部分仅数据:float型数据 real;公共部分包括12个成员函数,分别是:类的构造函数:Complex()实数加法运算函数: Complex op

6、erator+(Complex &c1)实数减法运算函数:Complex operator-(Complex &c1)实数乘法运算函数:Complex operator*(Complex &c1)实数除法运算函数:Complex operator/(Complex &c1)实数前置自增函数:Complex operator+()实数后置自增函数:Complex operator+(int)实数前置自减函数:Complex operator-()实数后置自减函数:Complex operator-(int)实数求平方根函数:float RootOfTwo()实数求平方函数:float Squar

7、e()实数输入数据函数:virtual void enter()3.1.2.复数类(Complex1)私有部分仅数据成员float 型数据real和float 型数据imag,二者分别代表复数的实部和虚部;公共部分包含11个成员函数,分别是:类的构造函数:Complex1()复数加法运算函数:Complex1 operator+(Complex1 &c1)复数减法运算函数:Complex1 operator-(Complex1 &c1)复数乘法运算函数: Complex1 operator*(Complex1 &c1)复数除法运算函数:Complex1 operator/(Complex1 &

8、c1)复数求模长函数:float Length()复数求平方函数:Complex1 Square1()求共轭复数函数:Complex1 Conjugate()复数求角度函数:float Angle1()复数间求角度函数:float Angle2(Complex1 &c1)复数输入数据函数:void enter()3.2类中各成员函数的定义3.2.1实数类(Complex)1 类的构造函数 函数体部分:Complex();2实数加法运算函数函数体部分Complex operator+(Complex &c1)Complex c;coutthe result is: endl;c.real=rea

9、l+c1.real;coutreal+c1.real=c.realendl;return c;3实数减法运算函数函数体部分Complex operator-(Complex &c1)Complex c;coutthe result is: endl;c.real=real-c1.real;coutreal-c1.real=c.realendl;return c;4实数乘法运算函数函数体部分Complex operator*(Complex &c1)Complex c;c.real=real*c1.real;coutthe result is: endl;coutreal*c1.real=c.r

10、ealendl;return c;5实数除法运算函数函数体部分Complex operator/(Complex &c1)Complex c;coutthe result is: endl;c.real=real/c1.real;coutreal/c1.real=c.realendl;return c;6实数前置自增函数函数体部分Complex operator+() coutthe result is: endl;cout+real;+real;cout=realendl;return *this;7实数后置自增函数函数体部分Complex operator+(int)Complex tem

11、p(*this);coutthe result is: endl;coutreal+;real+;cout=real-1endl;coutrealendl;return temp;8实数前置自减函数函数体部分Complex operator-()coutthe result is: endl;cout-real;-real;cout=realendl;return *this;9实数后置自减函数函数体部分Complex operator-(int)Complex temp(*this);coutthe result is: endl;coutreal-;real-;cout=real+1endl;coutrealendl;return temp;10实数求平方根函数函数体部分float RootOfTwo()Complex c;if(real0)coutthe number is wrong!endl;elsecoutthe result is: endl;c.real=sqrt(real);coutsqrtreal=c.realendl;return c.real;11实数求平方函数函数体部分float Square()Complex c;coutthe result is: endl;c.real=real*real;c

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

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

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