C++课程设计报告复数计算器.docx

上传人:b****1 文档编号:567453 上传时间:2022-10-11 格式:DOCX 页数:65 大小:440.09KB
下载 相关 举报
C++课程设计报告复数计算器.docx_第1页
第1页 / 共65页
C++课程设计报告复数计算器.docx_第2页
第2页 / 共65页
C++课程设计报告复数计算器.docx_第3页
第3页 / 共65页
C++课程设计报告复数计算器.docx_第4页
第4页 / 共65页
C++课程设计报告复数计算器.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

C++课程设计报告复数计算器.docx

《C++课程设计报告复数计算器.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告复数计算器.docx(65页珍藏版)》请在冰豆网上搜索。

C++课程设计报告复数计算器.docx

C++课程设计报告复数计算器

第一章需求分析.................................第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所示:

w=3w=4w=5w=6……w=12v=3v=4v=5v=6……v=11

 

图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()

实数加法运算函数:

Complexoperator+(Complex&c1)

实数减法运算函数:

Complexoperator-(Complex&c1)

实数乘法运算函数:

Complexoperator*(Complex&c1)

实数除法运算函数:

Complexoperator/(Complex&c1)

实数前置自增函数:

Complexoperator++()

实数后置自增函数:

Complexoperator++(int)

实数前置自减函数:

Complexoperator--()

实数后置自减函数:

Complexoperator--(int)

实数求平方根函数:

floatRootOfTwo()

实数求平方函数:

floatSquare()

实数输入数据函数:

virtualvoidenter()

3.1.2.复数类(Complex1)

私有部分仅数据成员float型数据real和float型数据imag,二者分别代表复数的实部和虚部;

公共部分包含11个成员函数,分别是:

类的构造函数:

Complex1()

复数加法运算函数:

Complex1operator+(Complex1&c1)

复数减法运算函数:

Complex1operator-(Complex1&c1)

复数乘法运算函数:

Complex1operator*(Complex1&c1)

复数除法运算函数:

Complex1operator/(Complex1&c1)

复数求模长函数:

floatLength()

复数求平方函数:

Complex1Square1()

求共轭复数函数:

Complex1Conjugate()

复数求角度函数:

floatAngle1()

复数间求角度函数:

floatAngle2(Complex1&c1)

复数输入数据函数:

voidenter()

3.2类中各成员函数的定义

3.2.1实数类(Complex)

1类的构造函数

函数体部分:

Complex(){};

2实数加法运算函数

函数体部分

Complexoperator+(Complex&c1)

{

Complexc;

cout<<"theresultis:

"<

c.real=real+c1.real;

cout<

returnc;

}

3实数减法运算函数

函数体部分

Complexoperator-(Complex&c1)

{

Complexc;

cout<<"theresultis:

"<

c.real=real-c1.real;

cout<

returnc;

}

4实数乘法运算函数

函数体部分

Complexoperator*(Complex&c1)

{

Complexc;

c.real=real*c1.real;

cout<<"theresultis:

"<

cout<

returnc;

}

5实数除法运算函数

函数体部分

Complexoperator/(Complex&c1)

{

Complexc;

cout<<"theresultis:

"<

c.real=real/c1.real;

cout<

"<

cout<<"++"<

++real;

cout<<"="<

return*this;

}

7实数后置自增函数

函数体部分

Complexoperator++(int)

{

Complextemp(*this);

cout<<"theresultis:

"<

cout<

real++;

cout<<"="<

cout<

returntemp;

}

8实数前置自减函数

函数体部分

Complexoperator--()

{

cout<<"theresultis:

"<

cout<<"--"<

--real;

cout<<"="<

return*this;

}

9实数后置自减函数

函数体部分

Complexoperator--(int)

{

Complextemp(*this);

cout<<"theresultis:

"<

cout<

real--;

cout<<"="<

cout<

returntemp;

}

10实数求平方根函数

函数体部分

floatRootOfTwo()

{

Complexc;

if(real<0)

{

cout<<"thenumberiswrong!

!

!

"<

}

else

{

cout<<"theresultis:

"<

c.real=sqrt(real);

cout<<"sqrt"<

}

returnc.real;

}

11实数求平方函数

函数体部分

floatSquare()

{

Complexc;

cout<<"theresultis:

"<

c.real=real*real;

cout<<"square"<

returnc.real;

}

12实数输入数据函数(虚函数)

函数体部分

virtualvoidenter()

{

cin>>real;

}

3.2.2复数类(Complex1)

1.类的构造函数

函数体部分

Complex1(){};

2.复数加法运算函数

函数体部分

Complex1operator+(Complex1&c1)

{

Complex1c;

cout<<"theresultis:

"<

c.real=real+c1.real;

c.imag=imag+c1.imag;

cout<<"("<

<<"("<

<<"("<

returnc;

}

3复数减法运算函数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1