- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
姓名
合作者
学号
学号
C++课程设计实验报告 班级
班级
任课教师
教师指定题目
实验报告成绩
复数计算器
时间
评定难易级别 A 级
复数计算器
程序功能设计
1.
程序功能的总体结构
复数计算器的程序总体功能可设计成如图1所示,可以看出,复数计
算器的各种功能都用菜单选项列出,用户可以根据需要选择相应的菜 单项,从而执行不同的子程序以完成相应的功能。
2.课程设计要求
一开始运行程序,要有详细的菜单选项界面,用户不选择退出就可以 反复运算。
可以进行多个操作数的复数运算,输入 0+0*i 时为止。
编写可以对输入的复数求模的成员函数。
编写具有测试功能的函数,即计算机能够自动出题,并要求用户计算,
同时计算机判断用户计算的对错并打分,要求十题为一个单元,每题
一个运算符,运算符包括+,-,*三种,参与加减运算实部虚部为 一位数。
(5) 重载输入输出运算符,对复数的输入既可采用实部虚部分开提示输入,
也可直接输入诸如a+i*b或a+ib这种形式,对复数的输出要 考虑实部虚部的正负号,通过判断给出的输出结果。
输出菜单及提示信
输出菜单
及提示信
输入选择
开始
加法子程序
结束
减法子程序
测试子程序
息
是否做加法
N
Y
是否做减法
N
Y
是否进行测试
N
Add()
. . . . . . ……
Y
是否退出
N
Y
2.
程序设计思想
1)类的封装
程序中将复数形式的数据定义成一个复数类 CComplex,重载了加法及减
法等运算符,使函数的加减等运算像一般数据一样方便.每个运算符重载都用 一个函数去实现。参考类的定义如下:
class CComplex{
private:
double Real,Image;
public:
CComplex(double real=0,double image=0) //构造函数 {Real=real;Image=image;}
friend istreamoperator(istreamis,CComplexcom); //重载输入
friend ostreamoperator(ostreamos,CComplexcom); //重载输
出
CComplex operator+(CComplexcom);
CComplex operator-(CComplexcom); //减法重载
CComplex operator*(CComplexcom); //乘法重载
CComplex operator/(CComplexcom); //除法重载
int operator==(CComplexcom);
int operator!=(CComplexcom);
int operator(CComplexcom);
int operator(CComplexcom);
float Module(void); //复数求模
};
(2)设计的任务要求 1
在实际应用中,输入复数可能为 a+bi, a, bi, -a, -bi, +i. –i. I 等形式。重
载输入运算符应该能识别这样形式多样的复数。所以在重载输入函数时要
综合考虑上述各种输入形式。可行的处理方式是:在重载输入函数中,设 计用
(3)设计的任务要求 2
在程序中设计一个复数运算的测试函数 Test(),其功能是让计算机
随机出 10 道运算题,用户给出答案,同时计算机实时判断对错并可
以打分。这个函数的关键是让计算机随机产生复数对象和运算符,
计算机内部有一个随机数发生器,可以产生一个固定顺序的整型随 机数序列,调用语句为“int a = rand();”这时,a 就是该随机数 发生器产生的随机数。
由于产生的随机书数在整数范围内,为测试方便,按程序设计要 求,产生的随机复数对象实部和虚部在 100 以内,运算符只有加减
两种。因此,需要对产生的随机数进行进一步的处理,用随机数模 除以除以 100,产生出 100 以内的随机整数;同样,用随机数模除
以 3,可以产生出 0、
1、3 三个随机数据,定义 0 为加法,1 为减
法,2 为乘法,这样就可以产生出随机的复数对象的加减乘运算了。 可以参见图 2 测试子程序 Test()结构框图。
设置循环次数为 10前两个随机数 初始复数对
设置循环次数为 10
前两个随机数 初始复数对象 1
后两个随机数 初始复数对象 2
用两个随机数 初始复数对象 3
最后两个随机数 初始复数对象 4
两对象相乘
输出总分
结束
产生 8 个 100 以内的随机数
产生 2 以内的 随机数 op
两对象相加
用户输入结果
总分加 10
两对象相减
用户输入结果
输出出错信息
总分加 10
输出出错信息
用户输入结果
总分加 10
输出
原创力文档


文档评论(0)