复数计算器课程设计Word格式.docx
- 文档编号:16022741
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:31
- 大小:396.44KB
复数计算器课程设计Word格式.docx
《复数计算器课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《复数计算器课程设计Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
定义各成员函数。
定义主函数,实现对整个程序的控制。
编译、运行并调试
2.2类的设计说明
classCComplex//定义命名空间NameCComplex
{
private:
doubleReal,Image;
public:
CComplex(doublereal=0,doubleimage=0)//构造函数
{
Real=real;
Image=image;
}
friendistream&
operator>
(istream&
is,CComplex&
com);
//重载输入
friendostream&
operator<
<
(ostream&
os,CComplex&
com);
//重载输出
CComplexoperator+(CComplex&
//加法重载
CComplexoperator-(CComplex&
//减法重载
CComplexoperator*(CComplex&
//乘法重载
CComplexoperator+=(CComplex&
//加法赋值重载
CComplexoperator-=(CComplex&
//减法赋值重载
CComplexoperator*=(CComplex&
//乘法赋值重载
CComplexoperator++();
//自加
CComplexoperator--();
//自减
doublemod(void);
//求复数的模
intoperator>
(CComplex&
intoperator<
intoperator!
=(CComplex&
intoperator==(CComplex&
};
2.3主要算法流程图
。
图2-1算法流程图
3程序清单及注释
#include<
iostream>
cmath>
cstdlib>
cstring>
fstream>
ctime>
//#defineEPSlen-5//定义精度常数
usingnamespacestd;
namespaceNameCComplex//定义命名空间NameCComplex
/*-----------------------------------------------------------------------
|部分A:
|复数类CComplex的声明和定义,以及结构体类型用户User的定义
|
----------------------------------------------------------------------*/
/*---------------------------------
|复数类CComplex的声明
--------------------------------*/
classCComplex
private:
doubleReal,Image;
//分别为复数的实部和虚部
public:
CComplex(doublereal=0,doubleimage=0)//构造函数
{
Real=real;
Image=image;
}
friendistream&
operator>
(istream&
is,CComplex&
com);
//重载输入
friendostream&
operator<
(ostream&
os,CComplex&
//重载输出
CComplexoperator+(CComplex&
//加法重载
CComplexoperator-(CComplex&
//减法重载
CComplexoperator*(CComplex&
//乘法重载
CComplexoperator+=(CComplex&
//加法赋值重载
CComplexoperator-=(CComplex&
//减法赋值重载
CComplexoperator*=(CComplex&
//乘法赋值重载
CComplexoperator++();
//自加
CComplexoperator--();
//自减
doublemod(void);
intoperator>
(CComplex&
intoperator<
intoperator!
=(CComplex&
intoperator==(CComplex&
};
/*------------------------------------
|结构体类型用户User的定义
-----------------------------------*/
structUser
charszName[20];
//用户名
intnTime;
//使用次数
intnTest;
//测试次数
doubledlAve;
//平均成绩
intnAdd;
//加法次数
intnSub;
//减法次数
intnMul;
//乘法次数
doubledlScore[3];
//3次测试得分
}user;
/*---------------------------------------------------------------
|复数类CComplex的类外定义部分
---------------------------------------------------------------*/
//重载运算符“++”,实部与虚部均加1
CComplexCComplex:
:
operator++()
Real++;
Image++;
return*this;
//重载运算符“--”,实部与虚部均减1
operator--()
Real--;
Image--;
//求复数的模,返回实部^2+虚部^2
doubleCComplex:
mod()
returnReal*Real+Image*Image;
//重载运算符“>
”,比较模的大小
intCComplex:
operator>
com)
if(mod()>
com.mod())
return1;
//若大,则返回1
else
return0;
//重载运算符“<
operator<
if(mod()<
//若小,则返回1
//重载运算符“!
=”,分别判断复数的实部与虚部
operator!
if(*this==com)
else
//重载复数的输入,a+bi的形式
istream&
com)
cout<
"
输入复数:
"
;
chars[80];
is>
s;
//用字符串的形式接收复数
intlen=strlen(s);
//求出字符串的长度
intn=0,sign=1;
//其中的n值为当前从字符串中提取出的数字,会在下面的while语句中得到确定的值
//sign为状态变量,表示数值的正负符号,以辅助辨认正负值
com.Image=com.Real=0;
//判断接收的字符串是否合法
for(intk=0;
k<
len;
k++)
if((s[k]<
'
0'
||s[k]>
9'
)&
&
(s[k]!
='
+'
&
s[k]!
-'
i'
))
{
cout<
error"
<
endl;
returnis;
//错误,输出出错信息并返回
}
//顺序识别字符串中各字符
)
if(n!
=0&
(s[k]=='
--'
||s[k]=='
))//当前字符是否为符号位
com.Real=sign*n;
//是符号位,且n!
=0,即n已被赋值(通过下面的whlie语句),表明当前读取的是虚部的符号
n=0;
//将原n*sign值(带正负号的数值)赋给实部后,将n清零,准备下一次继续接收并判断是否为虚部的值
if(s[k]=='
)//当前字符若为负号
sign=-1;
k++;
//给符号标志变量sign赋值,表示为负数
)//当前字符若为正号
sign=1;
//给符号标志变量sign赋值,表示为正数
if(s[k]=='
)//若当前字符为“i”
if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复数 计算器 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)