已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
xxxxxxxx学院计算机系综合性实验报告xxxxxxxx学院计算机系综合性实验实 验 报 告 课程名称 面向对象程序设计(c+) 实验学期 2111 至 2112 学年 第 一 学期学生所在系部 计算机学院 年级 2110 专业班级 计科B10-3 学生姓名 xxxx 学号 xxxxxxxxxxxx 任课教师 xxxxxx 实验成绩 计算机系制面向对象程序设计(C+)课程综合性实验报告开课实验室:软件工程实验室 2011年12月6日实验题目复数类的设计一、实验目的掌握类的概念及构造方法;掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运算符的重载定义与使用。二、设备与环境微型计算机、Windows 系列操作系统 、Visual C+6.0软件三、实验内容1、实验内容设计复数类,重载+,-,*,/,等运算符。编程设计实现下列函数:MyComplex();MyComplex(int a);MyComplex(int a,int b) ;MyComplex(const MyComplex& v) ; Mycomplex& operator=(const Mycomplex& rhs); Mycomplex& operator+=(const Mycomplex& rhs); Mycomplex& operator-=(const Mycomplex& rhs); Mycomplex& operator*=(const Mycomplex& rhs); Mycomplex& operator/=(const Mycomplex& rhs); friend MyComplex operator+(MyComplex m,MyComplex n) ;friend MyComplex operator-(MyComplex m,MyComplex n) ;friend MyComplex operator*(MyComplex m,MyComplex n) ;friend MyComplex operator/(MyComplex m,MyComplex n) ;friend ostream& operator(istream& s,MyComplex& t); 2、实验要求(1)用C语言编程实现上述实验内容中的结构定义和算法。(2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。(3)实验完成后撰写实验报告,实验报告的具体格式参见实验报告须知。(4)实验完成后把打印好的实验报告以及电子版的实验报告和源程序一并上交。(5)实验结果效果图参照下图所示。四、实验结果及分析原程序代码:#include #include using namespace std;#include #include class MyComplex;MyComplex operator+(const MyComplex& m,const MyComplex& n);MyComplex operator-(const MyComplex& m,const MyComplex& n);MyComplex operator*(const MyComplex& m,const MyComplex& n);MyComplex operator/(const MyComplex& m,const MyComplex& n);ostream & operator(istream& s,MyComplex& t);class MyComplexprivate:int rem,imp;public:MyComplex();MyComplex(int a);MyComplex(int a,int b);MyComplex(const MyComplex& v);MyComplex &operator=(const MyComplex & rhs);MyComplex &operator+=(const MyComplex & rhs);MyComplex &operator-=(const MyComplex & rhs);MyComplex &operator*=(const MyComplex & rhs);MyComplex &operator/=(const MyComplex & rhs);friend MyComplex operator+(const MyComplex& m,const MyComplex& n);friend MyComplex operator-(const MyComplex& m,const MyComplex& n);friend MyComplex operator*(const MyComplex& m,const MyComplex& n);friend MyComplex operator/(const MyComplex& m,const MyComplex& n);friend ostream & operator(istream& s,MyComplex& t);/*-输入a,b两复数-*/MyComplex:MyComplex()rem=0;imp=0;MyComplex:MyComplex(int a)rem=a;imp=0;MyComplex:MyComplex(int a,int b)rem=a;imp=b;MyComplex:MyComplex(const MyComplex& v)rem=v.rem;imp=v.imp;/*-+= -= *= /= 运算符重载-*/MyComplex &MyComplex:operator=(const MyComplex & rhs)rem=rhs.rem;imp=rhs.imp;return *this;MyComplex &MyComplex:operator+=(const MyComplex & rhs)rem+=rhs.rem;imp+=rhs.imp;return *this;MyComplex &MyComplex:operator-=(const MyComplex & rhs)rem-=rhs.rem;imp-=rhs.imp;return *this;MyComplex &MyComplex:operator*=(const MyComplex & rhs)int i;i=rem;rem=rem*rhs.rem-rhs.imp*imp;imp=i*rhs.imp+rhs.rem*imp;return *this;MyComplex &MyComplex:operator/=(const MyComplex & rhs)int i,j;i=rem;j=imp;rem=(rem*rhs.rem+rhs.imp*imp)/(rhs.rem*rhs.rem+rhs.imp*rhs.imp);imp=(rhs.rem*imp-i*rhs.imp)/(rhs.rem*rhs.rem+rhs.imp*rhs.imp);return *this;/*-+ - * / 四则运算重载-*/MyComplex operator+(const MyComplex& m,const MyComplex& n)MyComplex t; t.rem=m.rem+n.rem;t.imp=m.imp+n.imp;return t;MyComplex operator-(const MyComplex& m,const MyComplex& n)MyComplex t; t.rem=m.rem-n.rem;t.imp=m.imp-n.imp;return t;MyComplex operator*(const MyComplex& m,const MyComplex& n)MyComplex t; t.rem=m.rem*n.rem-m.imp*n.imp;t.imp=m.rem*n.imp+m.imp*n.rem;return t;MyComplex operator/(const MyComplex& m,const MyComplex& n)MyComplex t; t.rem=(m.rem*n.rem+m.imp*n.imp)/(n.rem*n.rem+n.imp*n.imp);t.imp=(m.imp*n.imp-m.rem*n.imp)/(n.rem*n.rem+n.imp*n.imp);return t;/*-重载输入输出运算符-*/ostream & operator(ostream & s,MyComplex t)if(t.imp=0)ssetw(2)t.rem;else if (t.rem=0)ssetw(2)t.impi;else if(t.imp0) ssetw(2)t.rem-setw(2)abs(t.imp)i;elsessetw(2)t.rem+setw(2)t.imp(istream& s,MyComplex& t)st.remt.imp;return s;/*-自定义的控制屏幕光标坐标函数-*/void gotoxy(int x,int y)COORD c;c.X=x-1;c.Y=y-1;SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE),c);/*-主函数-*/void main()MyComplex a,b;coutnnn;cout n;cout n;cout CopyRight n;cout Designed by 计科B103 张森 n;cout n;cout n;gotoxy (1,1);coutplease input the first MyComplex a:a;coutplease input the second MyComplex b:b;coutnn;couta=anb=bn;couta+b=a+bn;couta-b=a-bn;couta*b=a*bn;couta/b=a/bn;coutnn;couta=a b=b ; couta+=b issetw(10)(a+=b)n;couta=a b=b ;couta-=b is(a-=b)n;couta=a b=b ;couta*=b is(a*=b)n;couta=a b=b ;couta/=b is(a/=b)n;运行结果截图: 实验结果分析:通过这次实验,我学会了主要的运算符的重载,以及友元的相关用法,并且能够熟练运用。另外在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论