收藏 分销(赏)

实验三++类与对象.doc

上传人:xrp****65 文档编号:5896045 上传时间:2024-11-22 格式:DOC 页数:5 大小:26.50KB 下载积分:10 金币
下载 相关 举报
实验三++类与对象.doc_第1页
第1页 / 共5页
实验三++类与对象.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
实验三 类与对象 实验目的 l 掌握类和对象的概念、定义和访问方法 l 掌握不同类型成员的访问限制 l 掌握构造函数和析构函数的使用方法 实验示例 [例3-1] 运用面向对象程序设计方法编写一个程序,计算两个给定长方形的面积,其类中设计一个用于计算两个长方形的总面积成员函数。 解题思路: 设计一个类Rect,包含数据成员len(表示长度)、wid(表示宽度),以及求面积的公有成员函数area()、求两个长方形的总面积成员函数addarea(),并设计两个重载的构造函数。 实现步骤: 1.新建Win32 Console Application程序项目 2.在文件编辑区窗口编写如下程序代码: #include <iostream.h> #include <iomanip.h> class Rect { float len,wid; public: Rect(){ }; // 默认的构造函数(内联的) Rect(float,float); // 构造函数 float area(){ return len*wid; }; // 求面积(内联的) void addarea(Rect,Rect); // 求两个长方形的面积 }; Rect::Rect(float a, float b) { len=a; wid=b; } void Rect::addarea(Rect r1, Rect r2) { cout<<”总面积:”<<r1.len*r1.wid+r2.len*r2.wid<<endl; } void main() { Rect A(3.5,2.0), B(3.8,2.3), C; cout<<A.area<<’\t’<<B.area<<endl; C.addarea; } 3.编译、链接和执行程序 [例3-2] 编写一个程序,设计一个类score用于统计一个班的平均成绩。 解题思路: 使用2个静态数据成员分别存储总分、人数,另定义一个静态成员函数输出平均成绩。 实现步骤: 1.新建Win32 Console Application程序项目 2.在文件编辑区窗口编写如下程序代码: #include <iostream.h> class score { int fs; static int sum; static int num; public: score(int s) { fs=s; sum+=fs; num++; } static void average() { if (num==0) cout<<”尚未输入学生成绩!”<<endl; cout<<”平均成绩:”<<sum/num<<endl;; } }; int score::sum=0; // 初始化静态数据成员 int score::num=0; void main() { score *p; int s; while (1) { cout<<”学生成绩:”; cin>>s; if (s<0) break; // 输入负数时结束成绩输入 p=new score(s); delete p; } score::average(); } 3.编译、链接和执行程序 实验习题 1.定义一个日期类Date,该类对象存储日期数据,并实现如下操作: void getdate(); // 输出日期,格式:”2000年1月1日” int getyear(); // 返回年份 int getmonth(); // 返回月份 int getday(); // 返回日期 void setdate(int y, int m, int d); // 设置日期 2.设计一个雇员类employee,该类对象可存储雇员的姓名、编号、生日等信息,要求使用上一题设计的日期类作为对象成员表示生日。雇员类的使用如: employee a(“Smith”, “10”, 1978, 11, 25); // 对象a表示雇员Smith,编号为10,1978年11月25日出生 date Today; … if (a.isBirth(Today)) ……. // 判断今天是否为某雇员的生日 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 #include<iostream.h> class Date { public: void getdate() // 输出日期,格式:"2000年1月1日" { cout<<y<<"年"<<m<<"月"<<d<<"日"; } int getyear() // 返回年份 { return y; } int getmonth() // 返回月份 { return m; } int getday() // 返回日期 { return d; } void setdate(int y1, int m1, int d1) // 设置日期 { y=y1; m=m1; d=d1; } private: int y,m,d; }; class employee { char name[10]; int num; Date birth; public: void set(char a[10],int b) { name[10]=a[10]; num=b; } void Birth(int y2,int m2,int d2) { birth.setdate(y2,m2,d2); } void show() { cout<<"编号为"<<num<<"的雇员生日为"; birth.getdate(); cout<<endl; } int isBirth(Date a,employee b) // 判断今天是否为某雇员的生日 { int mn,my,dn,dy; mn=a.getmonth(); my=b.birth.getmonth(); dn=a.getday(); dy=b.birth.getday(); if(mn==my&&dn==dy) return 1; else return 0; } }; int main() { Date today; today.setdate(2014,3,27); employee f; f.set("Anna",1); f.Birth(1992,8,19); f.show(); cout<<"今天是"; today.getdate(); cout<<endl; if(f.isBirth(today,f)) cout<<"今天是该雇员的生日。"<<endl; else cout<<"今天不是该雇员的生日。"<<endl; return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服