版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北科技学院计算机学院综合性实验实验报告课程名称《C++程序设计B》实验学期2015至2016学年第二学期学生所在系部计算机学院年级13级专业班级网络B131学生姓名赵洋学号201307024124任课教师胡英成绩评定:1、类及类文件、函数文件设计:A(),B(),C(),D(),F()2、程序结构合理,格式美观:A(),B(),C(),D(),F()3、语法语义及算法准确:A(),B(),C(),D(),F()4、实验结果正确,运行界面:A(),B(),C(),D(),F()5、操作熟练,解析完整:A(),B(),C(),D(),F()5、报告规范度:A(),B(),C(),D(),F()实验成绩计算机学院制
《C++程序设计B》课程综合性实验报告开课实验室:基础实验室二2016年6月3日实验题目复数类的设计一、实验目的掌握类的概念及构造方法;掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运算符的重载定义与使用。掌握继承和派生概念及应用。二、设备与环境微型计算机、Windows系列操作系统、VisualC++6.0等编辑软件三、实验内容设计复数类。重载+,-,*,/,+=,-=,*=,/=,<<,>>等运算符。编程设计实现下列函数: MyComplex(); MyComplex(inta); MyComplex(inta,intb);~MyComplex(); MyComplex(constMyComplex&v);Mycomplex&operator=(constMycomplex&rhs);Mycomplex&operator+=(constMycomplex&rhs);Mycomplex&operator-=(constMycomplex&rhs);Mycomplex&operator*=(constMycomplex&rhs);Mycomplex&operator/=(constMycomplex&rhs); friendMyComplexoperator+(MyComplexm,MyComplexn); friendMyComplexoperator-(MyComplexm,MyComplexn); friendMyComplexoperator*(MyComplexm,MyComplexn); friendMyComplexoperator/(MyComplexm,MyComplexn); friendostream&operator<<(ostream&s,MyComplext); friendistream&operator>>(istream&s,MyComplex&t);四、设计过程(包括类的数据成员、成员函数、友元函数及主函数,写出主要代码)1.创建基本类型MyComplex;数据成员有reg,imp;表示复数的实部和虚部;成员函数有析构函数无参构造函数MyComplex();带参构造函数MyComplex(inta);MyComplex(inta,intb),MyComplex(constMyComplex&);重载运算符=,+=,-=,*=,/=函数:Mycomplex&operator=(constMycomplex&rhs);Mycomplex&operator+=(constMycomplex&rhs);Mycomplex&operator-=(constMycomplex&rhs);Mycomplex&operator*=(constMycomplex&rhs);Mycomplex&operator/=(constMycomplex&rhs);基类析构函数~MyComplex();友元函数:friend MyComplexoperator+(constMyComplex&,constMyComplex&); friend MyComplexoperator-(constMyComplex&,constMyComplex&); friend MyComplexoperator*(constMyComplex&,constMyComplex&); friend MyComplexoperator/(constMyComplex&,constMyComplex&);friendbooloperator==(constMyComplex&,constMyComplex&);friendbooloperator!=(constMyComplex&,constMyComplex&);friendostream&operator<<(ostream&,MyComplex);friendistream&operator>>(istream&,MyComplex&);构造函数主要代码:MyComplex::MyComplex(){rem=0;imp=0;}MyComplex::MyComplex(inta){rem=a;imp=0;}MyComplex::MyComplex(inta,intb){ rem=a;imp=b;}MyComplex::MyComplex(constMyComplex&v){rem=v.rem;imp=v.imp;}运算符重载主要代码:MyComplexoperator+(constMyComplex&m,constMyComplex&n){MyComplext;t.rem=m.rem+n.rem;t.imp=m.imp+n.imp;returnt;}//-运算符重载MyComplexoperator-(constMyComplex&m,constMyComplex&n){MyComplext;t.rem=m.rem-n.rem;t.imp=m.imp-n.imp;returnt;}//*运算符重载MyComplexoperator*(constMyComplex&m,constMyComplex&n){MyComplext;t.rem=m.rem*n.rem-m.imp*n.imp;t.imp=m.rem*n.imp+m.imp*n.rem;returnt;}///运算符重载MyComplexoperator/(constMyComplex&m,constMyComplex&n){MyComplext;t.rem=(m.rem*n.rem+m.imp*n.imp)/(n.rem*n.rem+n.imp*n.imp);t.imp=(m.imp*n.rem-m.rem*n.imp)/(n.rem*n.rem+n.imp*n.imp);returnt;}//+=运算符重载MyComplex&MyComplex::operator+=(constMyComplex&n){rem=rem+n.rem;imp=imp+n.imp;return*this;}//-=运算符重载MyComplex&MyComplex::operator-=(constMyComplex&n){rem=rem-n.rem;imp=imp-n.imp;return*this;}//*=运算符重载MyComplex&MyComplex::operator*=(constMyComplex&n){ rem=rem*n.rem-imp*n.imp;imp=rem*n.imp+imp*n.rem;return*this;}///=运算符重载MyComplex&MyComplex::operator/=(constMyComplex&n){ rem=(rem*n.rem+imp*n.imp)/(n.rem*n.rem+n.imp*n.imp);imp=(imp*n.rem-rem*n.imp)/(n.rem*n.rem+n.imp*n.imp);return*this;}booloperator==(constMyComplex&m,constMyComplex&n){return((m.rem==n.rem)&&(m.imp==n.imp));}booloperator!=(constMyComplex&m,constMyComplex&n){return((m.rem!=n.rem)||(m.imp!=n.imp));}//<<运算符重载ostream&operator<<(ostream&s,MyComplext){if(t.imp==0)s<<t.rem;elses<<t.rem<<"+"<<t.imp<<"i";returns;}//>>运算符重载istream&operator>>(istream&s,MyComplex&t){s>>t.rem>>t.imp;returns;}五、实验结果(运行界面)及测试数据分析输入第一个复数为2+3i,第二个复数为3+2i,经过计算和程序运行结果对比,结果完全正确,基本实现了运算符的重载功能。六、实验总结在这次实验中,我把书中关于友元类的程序都演示了一遍,有时候我也不能理解为什么会得出这样的结果。经过一次次的代码分析和调试,发现问题,解决问题。最终完成了这次实验虽然代码是参照课本上的内容的,但是在运行时,还是会发现很多问题。例如:在重载运算符中使用友元函数,我开始不太能理解为什么只需
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1.1 国家是什么(导学案) 高二政治 (统编版选择性必修1)
- 印刷机械行业智能化发展的市场机遇分析考核试卷
- 2025年销售佣金合同范本与业绩激励方案3篇
- 2025版木工行业培训与认证服务合同范本4篇
- 2025年商业委托销售协议
- 2025年合法住房公租房协议
- 二零二五年度驾校品牌推广与市场拓展合作合同2篇
- 2025年度个人二手车转让及二手车增值服务合同3篇
- 二零二五年度林业苗木繁育基地承包合同4篇
- 二零二五年度集体产权房屋买卖合同样本(含房屋产权调查及核实要求)
- 《医院财务分析报告》课件
- 2025老年公寓合同管理制度
- 2024-2025学年人教版数学六年级上册 期末综合卷(含答案)
- 2024中国汽车后市场年度发展报告
- 感染性腹泻的护理查房
- 天津市部分区2023-2024学年高二上学期期末考试 物理 含解析
- 《人工智能基础》全套英语教学课件(共7章)
- 废铁收购厂管理制度
- 物品赔偿单范本
- 《水和废水监测》课件
- 沪教版六年级数学下册课件【全册】
评论
0/150
提交评论