当前位置:文档之家› 实验三类与对象

实验三类与对象

{
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用于统计一个班的平均成绩。
实验三
实验目的
掌握类和对象的概念、定义和访问方法
掌握不同类型成员的访问限制
掌握构造函数和析构函数的使用方法
实验示例
[例3-1]运用面向对象程序设计方法编写一个程序,计算两个给定长方形的面积,其类中设计一个用于计算两个长方形的总面积成员函数。
解题思路:
设计一个类Rect,包含数据成员len(表示长度)、wid(表示宽度),以及求面积的公有成员函数area()、求两个长方形的总面积成员函数addarea(),并设计两个重载的构造函数。
实现步骤:
1.新建Win32Console 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)
2.设计一个雇员类employee,该类对象可存储雇员的姓名、编号、生日等信息,要求使用上一题设计的日期类作为对象成员表示生日。雇员类的使用如:
employee a(“Smith”,“10”, 1978, 11, 25);
//对象a表示雇员Smith,编号为10,1978年11月25日出生
date Today;
实验习题
1.定义一个日期类Date,该类对象存储日期数据,并实现如下操作:
void getdate(); //输出日期,格式:”2000年1月1日”
int getyear(); //返回年份
int getmonth(); //返回月份
int getday(); //返回日期
void setdate(int y, int m, int d); //设置日期
if(mn==my&&dn==dy)
return 1;
else
return 0;
}
};
int main()
{
Date today;
today.setdate(2014,3,27);
employee f;
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; //初始化静态数据成员

if (a.isBirth(Today))……. //判断今天是否为某雇员的生日
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
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<<"的雇员生日为";
#include<iostream.h>
class Date
{
public:
void getdate() //输出日期,格式:"2000年1月1日"
{
cout<<y<<"年"<<m<<"月"<<d<<"日";
}
int getyear() //返回年份
{
return y;
}
int getmonth() //返回月份
解题思路:
使用2个静态数据成员分别存储总分、人数,另定义一个静态成员函数输出平均成绩。
实现步骤:
1.新建Win32Console Application程序项目
2.在文件编辑区窗口编写如下程序代码:
#include <iostream.h>
class score
{
int fs;
static int sum;
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.编译、链接和执行程序
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.getdayt 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];
相关主题