1、C+程序设计运算符重载课程实验报告一、 实验目的和要求(1) 掌握通过运算符重载实现多态性的方法;(2) 学会运算符重载的成员函数法和友元函数法;能区分单目运算符的前置与后置。二、实验内容与设计(主要内容,操作步骤、算法描述或程序代码) 本次实验主要实现以下内容:【项目内容】定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”“+”“-”“”“”,使之能用于复数的加、减、乘、除、自增、自减、比较大小。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积、商、自增、自减、比较大小。提示:注意复数的乘、除法计算。Ps:同时注意复数的显示。程序设计如下:
2、(基于vs2010运行)/ redown.cpp : 定义控制台应用程序的入口点。#include stdafx.h#includeusing namespace std;class Complex private:double r, i;public:Complex (double R=0, double I=0):r(R), i(I) ;Complex operator+(Complex b); /L1 复数加法Complex operator-(Complex b); /L2 复数减法friendComplex operator*(Complex a,Complex b); /L3 复数
3、乘法friendComplex operator/(Complex a,Complex b); /L4 复数除法friend Complex operator-(Complex a); /L5 复数自减friend Complex operator+(Complex a); /L6 复数自增friend bool operator(Complex a,Complex b); /L7 复数的比较friend bool operatorbool operator (Complex a,Complex b) Complex t;t = a-b;if(t.r0)&(t.i0) return 1;els
4、ereturn 0;/重载bool operator (Complex a,Complex b) Complex t;t = a-b;if(t.r0)&(t.i0) return 1;elsereturn 0;/定义复数的显示void Complex:display()cout0) cout+;if (i!=0) coutiiendl;void main(void) Complex c1(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-;coutc1的数值为;c1.display()
5、;coutc2的数值为;c2.display();coutc3=c1+c2,所以c3的数值为;c3.display();coutc4=c1-c2,所以c4的数值为;c4.display();coutc5=c1*c2,所以c5的数值为;c5.display();coutc6=c1/c2,所以c6的数值为;c6.display();coutc7=c2+,所以c7的数值为;c7.display();coutc8=c2-,所以c8的数值为;c8.display();coutc7?;coutc7?ture:false);coutn;cout 比较c8c7?;cout (c8c7?ture:false);
6、system(pause);三、测试数据和执行结果 (在给定数据下,执行操作、算法和程序的结果,可使用数据、图表、截图等给出) 程序运行如图:四、实验结果分析及总结(对实验的结果是否达到预期进行分析,总结实验的收获和存在的问题等)通过此次实验我对于运算符的重载有了一定的了解认识和掌握,对于友元,二元,一元,特殊等运算符也有了清楚的认知,同时明白了这些运算符应该如何重载以及不能重载的运算符有. .* : ?: # 等几个。同时进一步的掌握了类的定义,对复数新建了Complex类,同时对新建的类进行了复数的加减比较大小等运算。对C+语言有了进一步的掌握。教师评阅实验内容和设计(A-E):操作过程、算法或代码(A-E):实验结果(A-E):实验分析和总结(A-E):实验成绩(A-E):反馈评语: