资源描述:
《C++程序设计运算符重载 实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、专业课程实验报告课程名称:面向对象程序设计(C++)开课学期:2015至2016学年第1学期专业:计算机科学与技术年级班级:13计科学生姓名:侯瑄学号:222013321210092实验教师:陈睿计算机与信息科学学院软件学院实验项目名称C++程序设计运算符重载实验时间2015.10.25实验类型□验证性□设计性□综合性一、实验目的和要求(1)掌握通过运算符重载实现多态性的方法;(2)学会运算符重载的成员函数法和友元函数法; (3)能区分单目运算符的前置与后置。二、实验内容与设计(主要内容,操作步骤、算法描述或程序代码)本次实验主要实现以下内容:【项目内容】 定义一个复数类Complex,重
2、载运算符“+”,“-”,“*”,“/”“++”“--”“>”“<”,使之能用于复数的加、减、乘、除、自增、自减、比较大小。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积、商、自增、自减、比较大小。 提示:注意复数的乘、除法计算。Ps:同时注意复数的显示。程序设计如下:(基于vs2010运行)//redown.cpp:定义控制台应用程序的入口点。#include"stdafx.h"#includeusingnamespacestd;classComplex{private:doubler,i;public:Complex(doubleR=
3、0,doubleI=0):r(R),i(I){};Complexoperator+(Complexb);//L1复数加法Complexoperator-(Complexb);//L2复数减法friendComplexoperator*(Complexa,Complexb);//L3复数乘法friendComplexoperator/(Complexa,Complexb);//L4复数除法friendComplexoperator--(Complexa);//L5复数自减friendComplexoperator++(Complexa);//L6复数自增friendbooloperator>
4、(Complexa,Complexb);//L7复数的比较friendbooloperator<(Complexa,Complexb);voiddisplay();};//重载+and—ComplexComplex::operator+(Complexb){returnComplex(r+b.r,i+b.i);}ComplexComplex::operator-(Complexb){returnComplex(r-b.r,i-b.i);}//重载*Complexoperator*(Complexa,Complexb){Complext;t.r=a.r*b.r-a.i*b.i;t.i=b.r
5、*b.i+b.i*b.r;returnt;}//重载/Complexoperator/(Complexa,Complexb){Complext;doublex;x=1/(b.r*b.r+b.i*b.i);t.r=x*(a.r*b.r+a.i*b.i);t.i=x*(a.i*b.r-a.r*b.i);returnt;}//重载——Complexoperator--(Complexa){Complext;Complexy(1,1);t=a-y;returnt;}//重载++Complexoperator++(Complexa){Complext;Complexy(1,1);t=a+y;retu
6、rnt;}//重载>booloperator>(Complexa,Complexb){Complext;t=a-b;if((t.r>0)&&(t.i>0))return1;elsereturn0;}//重载0)cout<<"+";if(i!=0)cout<7、exc1(1,2),c2(3,4),c3,c4,c5,c6,c7,c8;c3=c1+c2;c4=c1-c2;c5=c1*c2;c6=c1/c2;c7=c2++;c8=c2--;cout<<"c1的数值为";c1.display();cout<<"c2的数值为";c2.display();cout<<"c3=c1+c2,所以c3的数值为";c3.display();cout<<"c4=c1-c2,所以c4的数值为";c4.