欢迎来到天天文库
浏览记录
ID:38698479
大小:200.00 KB
页数:8页
时间:2019-06-17
《实验三:类和对象(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、福建农林大学实验报告实验3类和对象(二)一、实验目的和要求(1)掌握静态成员的基本使用方法。(2)掌握友元的使用方法,进一步理解其概念和作用。二、实验内容和原理1、分析并调试程序,然后完成以下问题:(1)指出默认参数的构造函数.(2)指出其余所有的构造函数,它们在本程序中分别起什么作用?(3)指出友元函数。将友元函数放到私有部分,观察结果是否有变化。(4)写出输出结果,并分析输出结果。2、声明Circle和Rectangle两个类,Circle有半径radius属性,Rectangle有length属性和width属性
2、,定义二者的一个友元函数compare()用于比较圆形和矩形面积的大小。3、定义一个Salesman类(销售员类),在该类定义中包括一个数据成员amount(销售量),两个静态数据成员total(总销售量)和count(销售员人数);成员函数amounttotalcount(intamount,floatprice)用于设置销售量和产品单价、求总销售量和累计销售员人数;静态成员函数sum()用于返回总销售额(销售额=销售量*单价);静态成员函数average用于求销售额平均值。在主函数main()中,输入某公司每位销售
3、员的销售量和销售的产品单价,并调用上述函数求全部销售员的总销售量和平均值。三、实验环境1.硬件:PC机;2.软件:Windows操作系统、VisualC++6.0四、算法描述及实验步骤1(1)默认构造函数是My(My&m){x=m.x,y=m.y;}(2)My(doublei=0){x=y=i;}My(doublei,doublej){x=i;y=j;}frienddoubledist(My&a,My&b);doublex,y;doubledx=a.x-b.x;doubledy=a.y-b.y;定义函数I,X,Y然后将
4、I赋值给X,Y;然后后面的是一个友元函数调用下面的私有函数;(3)友元函数是frienddoubledist(My&a,My&b);#include#includeclassMy{public:My(doublei=0){x=y=i;}My(doublei,doublej){x=i;y=j;}My(My&m){x=m.x,y=m.y;}private:doublex,y;frienddoubledist(My&a,My&b);};doubledist(My&a,My&b){doub
5、ledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){Mya,b(25),c(3,11);Myd(c);cout<<"Thedistance1:"<6、私有部分结果是没有变化。(4)Thedistance1求的是A点(0,0)到C(3,11)的距离Thedistance2求的是B点(25,25)到C(3,11)的距离Thedistance3求的是C点(3,11)到D(3,11)的距离Thedistance1求的是A点(0,0)到B(25,25)的距离2.#includeconstdoublePI=3.14;classCircle;classRect{public:Rect(doublelen=0,doublewid=0){length=len;7、width=wid;}doublearea(){returnlength*width;}friendvoidarea_compare(Recta,Circleb);private:doublelength;doublewidth;};classCircle{public:Circle(doubler){R=r;}doublearea();friendvoidare_compare(Recta,Circleb);private:doubleR;};doubleCircle::area(){returnPI*R*R;}vo8、idarea_compare(Recta,Circleb){if(a.area()B";}voidmain(){RectA(3.4,5);CircleB(1
6、私有部分结果是没有变化。(4)Thedistance1求的是A点(0,0)到C(3,11)的距离Thedistance2求的是B点(25,25)到C(3,11)的距离Thedistance3求的是C点(3,11)到D(3,11)的距离Thedistance1求的是A点(0,0)到B(25,25)的距离2.#includeconstdoublePI=3.14;classCircle;classRect{public:Rect(doublelen=0,doublewid=0){length=len;
7、width=wid;}doublearea(){returnlength*width;}friendvoidarea_compare(Recta,Circleb);private:doublelength;doublewidth;};classCircle{public:Circle(doubler){R=r;}doublearea();friendvoidare_compare(Recta,Circleb);private:doubleR;};doubleCircle::area(){returnPI*R*R;}vo
8、idarea_compare(Recta,Circleb){if(a.area()B";}voidmain(){RectA(3.4,5);CircleB(1
此文档下载收益归作者所有