




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建农林大学实验报告实验3 类和对象(二)一、实验目的和要求(1) 掌握静态成员的基本使用方法。(2) 掌握友元的使用方法,进一步理解其概念和作用。二、实验内容和原理1、分析并调试程序,然后完成以下问题:(1)指出默认参数的构造函数.(2)指出其余所有的构造函数,它们在本程序中分别起什么作用?(3)指出友元函数。将友元函数放到私有部分,观察结果是否有变化。(4)写出输出结果,并分析输出结果。2、声明Circle和Rectangle两个类,Circle有半径radius属性,Rectangle有length属性和width属性,定义二者的一个友元函数compare( )用于比较圆形和矩形面积的大小。3、定义一个Salesman类(销售员类),在该类定义中包括一个数据成员amount(销售量),两个静态数据成员total(总销售量)和count(销售员人数);成员函数amounttotalcount(int amount, float price)用于设置销售量和产品单价、求总销售量和累计销售员人数;静态成员函数sum()用于返回总销售额(销售额=销售量*单价);静态成员函数average用于求销售额平均值。在主函数main()中,输入某公司每位销售员的销售量和销售的产品单价,并调用上述函数求全部销售员的总销售量和平均值。三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C+ 6.0四、算法描述及实验步骤1(1)默认构造函数是My(My &m)x=m.x,y=m.y; (2)My(double i=0)x=y=i; My(double i,double j)x=i;y=j; friend double dist(My &a,My &b); double x,y;double dx=a.x-b.x; double dy=a.y-b.y; 定义函数I,X,Y 然后将I赋值给X,Y; 然后后面的是一个友元函数调用下面的私有函数;(3)友元函数是friend double dist(My &a,My &b);#include#includeclass Mypublic: My(double i=0)x=y=i; My(double i,double j)x=i;y=j; My(My &m)x=m.x,y=m.y; private: double x,y; friend double dist(My &a,My &b);double dist(My &a,My &b) double dx=a.x-b.x; double dy=a.y-b.y; return sqrt(dx*dx+dy*dy);int main() My a,b(25),c(3,11); My d(c);coutThe distance1:dist(a,c)endl; coutThe distance2:dist(b,c)endl;coutThe distance3:dist(c,d)endl;coutThe distance4:dist(a,b)endl;return 0;将友元函数放到私有部分结果是没有变化。(4)The distance1 求的是A点(0,0)到C(3,11)的距离 The distance2求的是B点(25,25)到C(3,11)的距离 The distance3求的是C点(3,11)到D(3,11)的距离 The distance1求的是A点(0,0)到B(25,25)的距离2.#includeconst double PI=3.14;class Circle;class Rectpublic: Rect(double len=0,double wid=0) length=len; width=wid; double area() return length*width; friend void area_compare(Rect a,Circle b);private: double length; double width;class Circlepublic:Circle(double r)R=r;double area();friend void are_compare(Rect a,Circle b);private:double R;double Circle:area()return PI*R*R;void area_compare(Rect a,Circle b) if(a.area()b.area() coutarea:AB; else if(a.area()=b.area() coutarea:A=B; else coutB;void main() Rect A(3.4,5); Circle B(1); area_compare(A,B);3.#includeusing namespace std;class Salesman public: void amounttotalcount(int amount,float price); static float sum(); static float average();private:int amount;static float total;static float count;static float totalprice;float Salesman : total=0;float Salesman : count=0;float Salesman : totalprice=0;void Salesman : amounttotalcount(int a,float b) amount=a; totalprice=totalprice+a*b; total=total+amount; count=count+1;float Salesman:sum()return totalprice;float Salesman:average()return totalprice/count;int main()Salesman sale; float b;int a,i,n;cout输入公司销售人员总数:n;for(i=1;i=n;i+)cout输入第i个销售人员数量a;cout输入第i个销售人员销售价格b;sale.amounttotalcount(a,b);cout输出全部销售量:Salesman:sum()endl; cout输出全部销售人员销售平均值:Salesman:average
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学(小数加减运算)计算题专项练习与答案汇编
- 2025年工会基础知识竞赛考试题(附答案)
- 2025年邵东市招聘社区工作者模拟试卷附答案详解(综合题)
- 2025年公务员(省考)试题及参考答案详解(综合题)
- 2025年华图护理专业试题题库及答案
- 益气活血开心汤治疗气虚血瘀型稳定型心绞痛合并焦虑、抑郁状态的转录组学研究
- 2025年中职内科护理学章节题库及答案
- 2024-2025学年新教材高中化学 专题5 微观结构与物质的多样性 3.1 同素异形现象 同分异构现象(2)说课稿 苏教版必修1
- 第18课 科技文化成就教学设计初中历史与社会部编版八年级下册-部编版
- 多模态教学模式对中学生英语学科核心素养培养成效研究
- 《大学生职业生涯规划与就业指导》高职就业和职业生涯全套教学课件
- 保健员考试题目及答案
- 【课件】数学建模活动:决定苹果的最佳出售时间点课件-2025-2026学年高一上学期数学人教B版(2019)必修第一册
- 施工队进场安全教育培训
- 母婴分离护理常规
- 污泥池清理管理制度
- 秩序员休假管理制度
- 2025年中国张裕产区葡萄酒特色与品牌国际化发展报告
- (2017)海南省房屋建筑与装饰装修工程综合定额交底资料
- 2024-2025学年下学期高一英语人教版同步经典题精练之语法填空
- 《社会科学研究方法》课件
评论
0/150
提交评论