复件 实验5 对象作为类的成员-1.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:3 大小:47KB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

复件 实验5 对象作为类的成员-1.doc

复件实验5对象作为类的成员-1.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

18 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验五对象作为数据成员—1(50分)实验目的:学习对象作为类的数据成员的使用方法。包括以下几个方面const对象作为类的数据成员对象数据成员的初始化以及“成员初始化器”的使用方法const成员函数的声明、定义及使用实验内容:使用实验四增补中设计的日期类Date,其接口如下:#include<iostream>usingnamespacestd;classDate{public://默认构造函数,以fullyear的形式给出年月日,//默认值为1900年1月1日//同时设置日期分隔符为“-”Date(int=1900,int=1,int=1);///设置、获取函数/////设置日期,如果有非法的月或日,将其置为voidsetDate(int,int,int);voidsetYear(int);intgetYear()const;voidsetMonth(int);intgetMonth()const;voidsetDay(int);intgetDay()const;voidsetSeparator(char);///输出函数,使用setfill和setw///voidprintFullYear()const;//以YYYY-MM-DD的形式打印,//比如2010-01-08voidprintStandardYear()const;//以YY-MM-DD的形式打印//比如2010-01-08///计算函数/////函数:fullYearsTo:计算当前日期与参数日期之间相差几个整年intfullYearsTo(constDate&date)const;//函数daysTo:计算当前日期与参数日期之间相差多少天(考虑闰年)//如果参数日期在当前日期之前,返回负数,注意参数为日期对象的引用。//提示:可使用this指针,调用this->getLeftDaysYear(),//计算当前日期距本年结束还有几天;intdaysTo(constDate&date)const;///以下是新添加的,可以被daysTo函数调用/////getDayOfYear:计算当前日期是本年的第几天intgetDayOfYear()const;//getLeftDaysYear:计算当前日期距本年结束还有几天//不包括当前日期这一天intgetLeftDaysYear()const;private:intyear;intmonth;intday;charseparator;//日期分隔符staticconstintdaysPerMonth[12];//声明静态常变量,每月的天数//在.cpp文件中定义并初始化intcheckDay(intday)const;//根据年和月,判断参数日期是否合法。//如果合法,返回day,否则返回1。boolisLeapyear(intyear)const;//判断参数年是否是闰年。};使用Date类,定义Employee类如下:classEmployee{public://构造函数,使用“成员初始化器”初始化数据成员Employee(conststring,conststring,constDate&,constDate&);//打印员工的信息。调用Date类的print函数,打印员工的生日和雇佣日期。voidprint()const;//计算员工在参数指定的日期时,满多少岁。请使用Date类的fullYearsTo函数intgetAge(Date&date)const;//计算该员工在参数指定的日期时,工作满了多少年。intgetYearsWorked(Date&date)const;//计算该员工在参数指定的日期时,工作了多少天。请使用Date类的daysTo函数intgetDaysWorked(Date&date)const;~Employee();//destructorprivate:stringfirstName;stringlastName;//要求:出生日期、雇用日期必须声明为const,//因为对于每个雇员,这两个属性都是不能变化的。constDatebirthDate;//composition:memberobjectconstDatehireDate;};可以满足以下主函数的要求:voidEmpMain(){Datebirth(1969,8,11);Datehire(1998,4,1)