C++课程设计报告复数计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章需求分析 (1)
第二章概要设计 (2)
第三章详细设计 (4)
第四章调试分析 (21)
第五章测试结果 (25)
第六章课程设计总结 (36)
第七章参考文献 (37)
第八章附录 (37)
第一章需求分析
1.1程序设计的任务
1.1.1编程目的
1.本次程序设计的目的运用面向对象程序设计知识,利用C++语言设计和实现一个复数计算器,要求具备如下主要功能:
(1)建立实数类、复数类
(2)实现实数、复数信息的初始化
(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作
(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算
(5)实现实数、复数信息的输出
1.1.2编程要求
在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。
1.1.3数据范围
数据输入的形式为float型,输出形式亦是float型,数据(实数、复数的实部、虚部)范围是-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38。
1.2本程序能实现的功能
1.2.1实数类(Complex)所实现的功能:
实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算、前置自减运算、后置自减运算、求平方运算、求平方根运算;
1.2.2复数类(Complex1)所实现的功能:
复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。
1.2.3主函数所能实现的功能
1.提供给操作者操作数据的类型(实数还是复数)的标识;
2.操作者选择数据类型后,提供运算类型操作的标识;
3.运用指针调用两个类的各成员函数分别完成各项计;
第二章概要设计
2.1构成部分
2.1.1系统由三部分构成:实数类(Complex)、复数类(Complex1)、主函数main。
2.1.2.构成部分关系
复数类(Complex1)由实数类(Complex)派生而来,其中两者成员函数中的enter (输入数据)函数是虚函数,用以实现多态性。
主函数main通过指针调用实数类(Complex)、复数类(Complex1)分别完成实数运算、复数运算。
2.1.
3.类层次
实数类是父类,复数类是子类。
2.2主程序流程以及程序模块之间的调用关系
如图2.2—1所示:
图2.2--1主程序流程以及程序模块之间的调用关系图
注:图2.2--1中没有画出
1.flag=0时退出系统;
2.flag不等于0,1,2时出现错误提示语句的选择结构;
3.w,v在选择范围之外时出现错误提示语句的选择结构。
4.特殊处理:
除法运算分母为0;求二次方根数为负数;求单个复数夹角时判断象限的过程。
第三章详细设计
3.1类层次中各个类的描述
3.1.1.实数类(Complex)
私有部分仅数据:float型数据real;
公共部分包括12个成员函数,分别是:
类的构造函数:Complex()
实数加法运算函数:Complex operator+(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 Square()
实数输入数据函数: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 &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;
cout<<"the result is: "< c.real=real+c1.real; cout< return c; } 3实数减法运算函数 函数体部分 Complex operator-(Complex &c1) { Complex c; cout<<"the result is: "< c.real=real-c1.real; cout< return c; } 4实数乘法运算函数 函数体部分 Complex operator*(Complex &c1) { Complex c; c.real=real*c1.real; cout<<"the result is: "< cout<