西华大学c实验报告5多态和虚函数运算符重载

西华大学c实验报告5多态和虚函数运算符重载

ID:27806465

大小:91.40 KB

页数:6页

时间:2018-12-06

西华大学c实验报告5多态和虚函数运算符重载_第1页
西华大学c实验报告5多态和虚函数运算符重载_第2页
西华大学c实验报告5多态和虚函数运算符重载_第3页
西华大学c实验报告5多态和虚函数运算符重载_第4页
西华大学c实验报告5多态和虚函数运算符重载_第5页
资源描述:

《西华大学c实验报告5多态和虚函数运算符重载》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西华大学实验报告(计算机类)开课学院及实验室:机械工程与自动化实验时间:年月日学生姓名学号成绩学生所在学院机械工程与自动化年级传业/班2011级机电班课程名称高级语言在测控中的应用课程代码6003559实验项目名称多态和虚函数、运算符重载项目代码指导教师项目学分一、实验目的1.理解虚函数的特性;2.理解纯虚函数和抽象类的特性;3.掌握用虚函数实现运行时的多态性和编写通用程序的方法;4.掌握用成员函数和友元函数重修运算符的方法。二、内容与设计思想上机实践内容:1.定义一个抽象类CShape,包含纯虚函数Area()(原来计算面积)和SetData()(原来重设形状大小)。然后派生出三角形CT

2、riangle类、矩形CRect类、圆CCircle类,分别求其面积。最后定义一个CArea类,计算这儿个形状的面积之和,个形状的数据通过CArea类构造函数或成员函数来设置。编程一个完整的程序。2.定义一个复数类CComplex,通过重载运算符和,直接实现两个复数之间的乘除运算。编写一个完整的程序(包括测试运算符的程序部分)。运算符用成员函数实现重载,而运算符用友元函数实现重载。提示:两复数相乘的计算公式为:(a+bi)*(c+di)=(ac-bd)+ad+bc)i;两复数相除的计算公式为:(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)

3、i三、使用环境操作系统:WindownsXPC++环境:VisualC++6.0四、核心代码及调试过程#includeusingnamespacestd;classCShape{public:virtualfloatAreaO=0;virtualvoidSctData(floatfl,floatf2)=0;};classCTriangleipublicCShape{public:CTriangle(floath=0,floatw=0){H=h;W=w;}floatArea(){return(float)(H*W*0.5);}voidSctData(floatfl,flo

4、atf2){H=fl;W=f2;}privatc:floatH,W;};classCRcct:publicCShape{public:CRect(floath=0,floatw=0){II=h;W=w;floatAreaOreturn(float)(H*W);voidSetData(floatfl,floatf2)H=fl;W=f2;}private:floatH,W;};classCCircle:publicCShape{public:CCirclc(floatr=0){R=r;}floatArea()CN・C:Windowssystem32cmd.exe为:••为・•・•为:••

5、为::续需为需为需为需为继面囂・•面囂・•面囂・•面囂••键的面面面面面面面面为意番的积番的积番的积番的餐角形形面角形形面角形形面角形形黑三矩圆忌三矩圆忌三矩圆忌三矩圆忌请::L8?・54295・0332324・533:187・54295・0332324・533:187・542452.389681.889:187・512452.389651.889r)return(float)(3.14159265*R*R);}voidSetData(floatr,float){R=r;}private:floatR;};classCArea{public:CArea(floattriWidth,floa

6、ttrilleight,floatreWidth,floatrcllcight,floeitppShape=ncwCShape*[3];ppShapc[O]=ncwCTrianglc(triWidth,trillcight);ppShape[l]=ncwCRect(reWidth,reHeight);ppShape[2]=ncwCCirclc(r);}^CArea(){for(inti二0;i〈3;i++)deletcppShape[i];delete[]ppShape;}voidSetShapcData(intn,floatfl,floatf2=0){if((n>2)

7、

8、(n<0))re

9、turn;ppShape[n]->SctData(f1,f2);}voidCalAndPrint(void){floatfSum=0.0;char*str[3]二{〃三角〃,〃矩〃,〃圆行;for(inti二0;i〈3;i++){floatarca=ppShapc[i]->Arca();cout«str[i]«,z形的面积为:t/z«area«endl;fSum+=arca;}cout<<,z总而积为:t,,<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。