设计一个时间类CTimeInfo,要求其满足下述要求.(1) 具有私有成员:int hour(小时),int minute(分钟) (2设计一个时间类CTimeInfo,要求其满足下述要求.(1)具有私有成员:int hour(小时),int minute(分钟)(2)要求有
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/30 03:24:48
设计一个时间类CTimeInfo,要求其满足下述要求.(1) 具有私有成员:int hour(小时),int minute(分钟) (2设计一个时间类CTimeInfo,要求其满足下述要求.(1)具有私有成员:int hour(小时),int minute(分钟)(2)要求有
设计一个时间类CTimeInfo,要求其满足下述要求.(1) 具有私有成员:int hour(小时),int minute(分钟) (2
设计一个时间类CTimeInfo,要求其满足下述要求.
(1)具有私有成员:int hour(小时),int minute(分钟)
(2)要求有一个无参数的构造函数,其初始的小时和分钟分别为:0,0;
(3)要求有一个带参数的构造函数,其参数分别对应小时和分钟;
(4)要求用一个成员函数实现时间的设置;
设计一个会议类CMeeting,要求满足下述要求(假设约定会议都在同一天内完成):
(1)具有数据成员:string topic(主题),string ownername(主持人),CTimeInfo starttime(会议开始时间),CTimeInfo(会议结束时间);
(2)要求有一个带参数的构造函数初始化主题,主持人,会议开始时间,会议结束时间 ;
(3)把CMeeting设为CTimeInfo的友元类,添加一个成员函数实现主题,主持人的设置;
(4)添加一个成员函数实现会议开始时间,会议结束时间的设置;
(5)在CMeeting类中添加一个成员函数计算本次会议的持续时间;
(6)添加一个成员函数输出会议的主题,主持人,会议持续时间,会议开始时间,会议结束时间等信息.
Main主程序:
创建一个CMeeting的对象,设置其数据成员信息并输出,验证其正确性.
设计一个时间类CTimeInfo,要求其满足下述要求.(1) 具有私有成员:int hour(小时),int minute(分钟) (2设计一个时间类CTimeInfo,要求其满足下述要求.(1)具有私有成员:int hour(小时),int minute(分钟)(2)要求有
#include <iostream>
#include <string>
class CTimeinfo
{
private:
int hour,minute;
public:
CTimeinfo();
CTimeinfo(int _Hour,int _Minute);
bool set(int _Hour,int _Minute);
friend class CMeeting;
};
class CMeeting
{
private:
std::string topic;
std::string ownername;
CTimeinfo starttime;
CTimeinfo endtime;
public:
CMeeting(std::string _Topic,std::string _OwnerName);
void settime(CTimeinfo _StartTime,CTimeinfo _EndTime);
CTimeinfo lasttime();
void show();
};
CTimeinfo::CTimeinfo():hour(0),minute(0){}
CTimeinfo::CTimeinfo(int _Hour,int _Minute):hour(_Hour),minute(_Minute){}
bool CTimeinfo::set(int _Hour,int _Minute)
{
if( _Hour>=0 && _Hour <24 && _Minute>=0 && _Minute<60 )
{
hour=_Hour;
minute=_Minute;
return true;
}
else
{
hour=0;
minute=0;
return false;
}
}
CMeeting::CMeeting(std::string _Topic,std::string _OwnerName):topic(_Topic),ownername(_OwnerName){}
void CMeeting::settime(CTimeinfo _StartTime,CTimeinfo _EndTime)
{
starttime.hour=_StartTime.hour;
starttime.minute=_StartTime.minute;
endtime.hour=_EndTime.hour;
endtime.minute=_EndTime.minute;
}
CTimeinfo CMeeting::lasttime()
{
CTimeinfo temp;
temp.hour=endtime.hour-starttime.hour;
temp.minute=endtime.minute-starttime.minute;
if(temp.minute<0)
{
temp.hour--;
temp.minute+=60;
}
if(temp.hour<0)
temp.hour+=24;
return temp;
}
void CMeeting::show()
{
std::cout<<"Topic: "<<topic<<std::endl
<<"OwnerName: "<<ownername<<std::endl
<<"StartTime: "<<starttime.hour<<':'<<starttime.minute<<std::endl
<<"EndTime: "<<endtime.hour<<':'<<endtime.minute<<std::endl
<<"LastTime:"<<lasttime().hour<<':'<<lasttime().minute<<std::endl;
}
int main()
{
CMeeting m(std::string("Sein und Zeit"),std::string("Martin Heidegger"));
m.settime(CTimeinfo(5,26),CTimeinfo(9,26));
m.show();
return 0;
}时间输入不合法置0.开始时间晚于结束时间认为经过一夜.