ImageVerifierCode 换一换
格式:DOC , 页数:37 ,大小:277.54KB ,
资源ID:2658848      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2658848.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(复数计算器专业课程设计.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

复数计算器专业课程设计.doc

1、目 录1 题目内容及设计规定12 总体设计12.1 总体功能框图12.2 类设计阐明12.3 重要算法流程图13程序清单及注释14运营成果与分析15总结26参照文献21 题目内容及设计规定题目17 复数计算器内容及规定:(1)所设计复数计算器可以进行+ - * += -= *= + - = = (istream &is,CComplex &com ); /重载输入friend ostream & operator(CComplex &com);int operator(CComplex &com);int operator!=(CComplex &com);int operator=(CCom

2、plex &com);2.3 重要算法流程图开始声明一种complex类,并定义double,real,image;声明类函数,构造函数,加减乘除和取模运算c.real=real+c2.real;c.imag=imag+c2.imag;c.real=real-c2.real;c.imag=imag-c2.imag;c.real=(real*c2.real+imag*c2.imag)/a;c.imag=(imag*c2.real-real*c2.imag)/ac.real=real*c2.real-imag*c2.imag;c.imag=real*c2.imag+imag*c2.real;Sqr

3、t(real*real=imag*imag);输出c1,c2,c1+c2,c1-c2,c1*c2,c1/c2,c1值终结。图21 算法流程图3 程序清单及注释#include #include #include #include #include #include /#define EPS len-5 / 定义精度常数using namespace std;namespace NameCComplex / 定义命名空间 NameCComplex/*-|某些A:| 复数类 CComplex 声明和定义,以及构造体类型 顾客 User 定义| -*/*- | 复数类 CComplex 声明 -*/

4、class CComplexprivate:double Real,Image; / 分别为复数实部和虚部public:CComplex(double real=0,double image=0) / 构造函数Real = real; Image = image;friend istream & operator (istream & is,CComplex & com); / 重载输入friend ostream & operator (CComplex & com);int operator ”,比较模大小int CComplex:operator (CComplex & com)if (

5、 mod() com.mod() )return 1; / 若大,则返回 1elsereturn 0;/ 重载运算符“”,比较模大小int CComplex:operator (CComplex & com)if ( mod() (istream & is,CComplex & com) cout s; / 用字符串形式接受复数int len = strlen(s); / 求出字符串长度int n = 0,sign = 1; / 其中 n 值 为当前从字符串中提取出数字,会在下面 while 语句中得到拟定值 / sign 为状态变量,表达数值正负符号,以辅助辨认正负值com.Image =

6、com.Real = 0;/ 判断接受字符串与否合法for(int k=0;klen;k+)if ( (sk9) & (sk!=+ & sk!=- & sk!=i) )cout error endl;return is; / 错误,输出出错信息并返回/ 顺序辨认字符串中各字符for(int k=0;klen;)if ( n!=0 & (sk=- | sk=+) ) / 当前字符与否为符号位com.Real = sign * n; / 是符号位,且 n!=0,即 n 已被赋值(通过下面whlie语句),表白当前读取是虚部符号n = 0; / 将原 n*sign 值(带正负号数值)赋给实部后,将

7、n 清零,准备下一次继续接受并判断与否为虚部值if ( sk = -) / 当前字符若为负号sign = -1; k+; / 给符号标志变量 sign 赋值,表达为负数if ( sk = +) / 当前字符若为正号sign = 1; k+; / 给符号标志变量 sign 赋值,表达为正数if ( sk=i ) / 若当前字符为“i”if ( k!=len-1 ) / 判断字符 i 与否为字符串中最后一种字符cout =0 & sk=9 ) / 当前字符若在 09 之间,则将数字字符转换成数字数值n = n * 10 + sk - 0;k+;if ( slen-1!=i & n!=0 ) / 如

8、果最后一种字符不是 i,表达复数对象内只有实部,没有虚部,如:-acom.Real = n * sign;return is;/ 重载复数输出ostream & operator (ostream & os,CComplex & com)if ( fabs(com.Image)=0 ) / 如果虚部为 0os com.Real; / 只输出实部else if ( fabs(com.Real)=0 ) / 如果实部为 0os com.Image 0 )os com.Real + com.Image i; / 虚部为正elseos com.Real com.Image i; / 如 实部为 3,虚

9、部为 -6i,就变为 3 - 6i,而不是 3 + -6ireturn os;/ 加法重载CComplex CComplex:operator + (CComplex & com)CComplex sum;sum.Real = Real + com.Real; / 实部相加sum.Image = Image + com.Image; / 虚部相加return sum;/ 乘法重载CComplex CComplex:operator * (CComplex & com)CComplex multi;multi.Real = Real * com.Real - Image * com.Image;

10、 / 乘积实部multi.Image = Real * com.Image + Image * com.Real; / 乘积虚部return multi;/ 减法重载CComplex CComplex:operator - (CComplex & com)CComplex sub;sub.Real = Real - com.Real; / 实部相减sub.Image = Image - com.Image; / 虚部相减return sub;/ 加法赋值重载CComplex CComplex:operator += (CComplex & com)Real = Real + com.Real;

11、 / 实部Image = Image + com.Image; / 虚部return *this;/ 减法赋值重载CComplex CComplex:operator -= (CComplex & com)Real = Real - com.Real; / 实部Image = Image - com.Image; / 虚部return *this;/ 乘法赋值重载CComplex CComplex:operator *= (CComplex & com)double nReal = Real * com.Real - Image * com.Image; / 乘积实部double nImage

12、 = Real * com.Image - Image * com.Real; / 乘积虚部Real = nReal;Image = nImage;return *this;/ 重载 = 运算符,分别比较两个复数对象实部和虚部int CComplex:operator = (CComplex & com)if ( Real=com.Real & Image=com.Image )return 1; / 实部与虚部某些相等,则返回 1elsereturn 0;/*-|某些B:|测试函数 void Test(void)|实现复数加法函数 void Add()|实现复数减法函数 void Sub()

13、|实现复数乘法函数 void Mul()|实现复数自加函数 void Add1()|比较两个复数大小函数 void Compare()|输出本次顾客使用计算器状况记录 void userprint()|当前顾客使用完计算器,保存或更新顾客资料函数 void SaveFile()| -*/ 测试函数,随机出 10 道运算题,可以打分void Test(void)user.nTest+; / 顾客测试次数加 1cout 共10道题,作10以内加减运算,满分 100分:n;double real1,real2,image1,image2,real3,real4,image3,image4; / 1

14、和 2 分别代表两个待相加复数实部和虚部,3 和 4 则为相乘CComplex answer,temp;int score = 0;char op;for(int i=0;i=9;i+)real1 = rand()%200 - 100; / 产生随机数是两位数,可以是正数或负数image1 = rand()%200 - 100;real2 = rand()%200 - 100;image2 = rand()%200 - 100;CComplex a(real1,image1),b(real2,image2); / 用产生随机数对象分别初始化两个复数对象real3 = rand()%20 - 1

15、0; / 产生随机数是一位数,可以是正数或负数image3 = rand()%20 - 10;real4 = rand()%20 - 10;image4 = rand()%20 - 10;CComplex c(real3,image3),d(real4,image4);op = rand()%3; / 随机产生 3 种运算符switch(op)case 0:answer = a + b;cout a 加上 b 等于;break;case 1:answer = a - b;cout a 减去 b 等于;break;case 2: / 乘法运算,用实部和虚部都是 1 位数对象操作answer =

16、c * d;cout c 乘以 d temp; / 接受顾客输入成果if ( answer=temp ) score+=10; / 对的则加 10分elsecout 此题做错了n;cout 对的答案为: answer endl;cout 你最后得分是: score endl;/ 计算最后 3次平均分if ( user.nTest=3 ) / 若合计次数没有超过 3次user.dlAve = 0;user.dlScoreuser.nTest-1 = score; / 将本次测试成绩添加进记录中for(int i=0;iuser.nTest;i+)user.dlAve += user.dlScor

17、ei; / 若此前有记录,将其与本次记录合计相加起来,用以计算平均分user.dlAve = user.dlAve / user.nTest; / 计算平均分,user.dlAve 从合计分数 变成了平均分else / 如果合计测试超过 3次user.dlScore0 = user.dlScore1; / 最前面一次记录将被覆盖,即:删除user.dlScore1 = user.dlScore2;user.dlScore2 = score; / 将本次记录添加进测试记录尾部user.dlAve=0;for(int i=0;i3;i+) / 计算最新 3次平均分user.dlAve += use

18、r.dlScorei;user.dlAve = user.dlAve / 3;cout 按任意键继续n;cout .flush();cin.get();cin.get();/ 实现复数加法void Add()user.nAdd+;CComplex num1,num2,sum,Zero(0,0);cout 加法计算n 至少输入两个复数,输入“0”结束n;cout num1; / 输入第 1个复数cout num2; / 输入第 2个复数sum = num1 + num2;cout num1; / 输入第 3个复数int i = 4;while ( !(num1=Zero) )sum = sum

19、+ num1; / 实现复数相加cout 第 i num1; / 输入第 i个复数i+;cout 成果是: sum endl;cout 按任意键继续n;cout.flush();cin.get();cin.get();/ 实现复数减法void Sub()user.nSub+;CComplex num1,num2,sub,Zero(0,0);cout 减法计算n 至少输入两个复数,输入“0”结束n;cout num1; / 输入第 1个复数cout num2; / 输入第 2个复数sub = num1 - num2;cout num1; / 输入第 3个复数int i = 4;while ( !

20、(num1=Zero) )sub = sub - num1; / 实现复数减法cout 第 i num1; / 输入第 i个复数i+;cout 成果是: sub endl;cout 按任意键继续n;cin.get();cin.get();/ 实现复数乘法void Mul()user.nMul+;CComplex num1,num2,mul,Zero(0,0);cout 乘法计算n 至少输入两个复数,输入“0”结束n;cout num1; / 输入第 1个复数cout num2; / 输入第 2个复数mul = num1 + num2;cout num1; / 输入第 3个复数int i = 4

21、;while ( !(num1=Zero) )mul *= num1; / 实现复数减法cout 第 i num1; / 输入第 i个复数cout 成果是: mul endl;cout num1; / 这里 输入数也许是虚部为0数,原书代码未作判断num1+; / 实部与虚某些别加 1cout 自加成果为 num1 endl;cout num1;num1-;cout 自减成果为 num1 endl;cout 按任意键继续n;cout.flush();cin.get();cin.get();/ 比较两个复数大小void Compare()CComplex num1,num2;cout 输入两个复

22、数n;cout num1;cout num2;if ( num1=num2 )cout num2 )cout num1 模不不大于 num2 模n;else if ( num1num2 )cout num2 模不不大于 num1 模n;elsecout 这两个复数模相等n;cout 按任意键继续n;cin.get();cin.get();/ 输出本次顾客使用计算器状况记录void userprint()cout user.szName 使用次数为: user.nTime 次 endl;cout 其中:t 加法次数: user.nAdd 次n t 减法次数: user.nSub 次n t 乘法次

23、数: user.nMul 次n t 测试次数: user.nTest 次n t 平均成绩: user.dlAve 次 endl;/ 顾客登陆,开始启动计算器void Login()char szName20;cout 请输入您姓名:;cin.getline(szName,20);ifstream infile;User user1;infile.open(user.dat,ios:binary|ios:in); / 打开顾客资料文献 (这个地方 若没有文献,则不会创立新文献,不知何问题if ( !infile ) / 若没有顾客资料文献cout 没有原始记录文献, 您是第 1位顾客!n;str

24、cpy(user.szName,szName); / 为全局变量 user 中 szName 成员赋值user.nTime+;return; / 函数返回/ 读取顾客资料文献(从该文献第1个字节开始逐个读取信息)/ 如果顾客资料中找到了当前姓名顾客,则阐明是老顾客,显示某些信息,并作某些使用次数记录。infile.read( (char *)&user1,sizeof(User) ); while ( !infile.eof() ) / 只要没到文献末尾(未遇文献结束符),则始终进行此循环if ( strcmp(user.szName,szName)=0 ) / 将顾客资料文献中顾客名与读取顾客名进行比较user

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服