C++试题精选----类的封装和继承----NO.2

希望c++的入门者们闲暇之余,可以浏览思考,有什么问题欢迎留言或者私信。

类的封装和继承----NO.2

eg.Time类的框架定义如下。
class Time //声明Time类
{
public:
Time( int = 0, int = 0, int = 0 ); // 带默认参数的构造函数

	// set functions
	void setTime( int, int, int );	// 设置hour, minute, second
void setHour( int );			// 设置hour (确保数据在合理范围)
void setMinute( int );		// 设置minute (确保数据在合理范围)
void setSecond( int );		// 设置second (确保数据在合理范围)
// get functions
int getHour();		// 返回 hour
int getMinute();	// 返回 minute
int getSecond();	// 返回 second

void printUniversal();	// 按24小时格式输出时间:23:56:12     
	void printStandard();	// 按12小时格式输出时间:11:56:12 (PM) 或 9:23:55(AM)

private:
int hour; // 0 - 23 (24小时格式)
int minute; // 0 - 59
int second; // 0 - 59
}; // Time类定义结束
(1) 按照注释的要求完成所有成员函数的定义;
(2) 在主程序中定义Time类对象,通过对象指针或引用调用上述成员函数以测试其正确性。
**

#include<iostream>
using namespace std; 
class Time		//声明Time类
{
public:
		Time( int = 0, int = 0, int = 0 ); // 带默认参数的构造函数	
		// set functions
	void setTime( int, int, int );	// 设置hour, minute, second
    void setHour( int );			// 设置hour (确保数据在合理范围)
    void setMinute( int );		// 设置minute (确保数据在合理范围)
    void setSecond( int );		// 设置second (确保数据在合理范围)

    // get functions
    int getHour();		// 返回 hour
    int getMinute();	// 返回 minute
    int getSecond();	// 返回 second
	
    void printUniversal();	// 按24小时格式输出时间:23:56:12     
	void printStandard();	// 按12小时格式输出时间:11:56:12 (PM) 或 9:23:55(AM)
private:
		int hour;	// 0 - 23 (24小时格式)
		int minute; // 0 - 59
		int second; // 0 - 59
	};
Time::Time(int,int,int)
{
	
}
int Time::getHour()
{
	return hour;
}
int Time::getMinute()
{
	return minute;
}
int Time::getSecond()
{
	return second;
}
void Time::setTime(int Hour,int Minute,int Second)
{
	setHour(Hour);
	setMinute(Minute);
	setSecond(Second);
}
void Time::setHour(int Hour) 
{ 
    hour=Hour; 
}
void Time::setMinute(int Minute)
{
	minute=Minute;
}
void Time::setSecond(int Second)
{
	second=Second;
}
void Time::printUniversal()
{
	cout<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<endl;
}
void Time::printStandard()
{
	if(hour<=12)
	{
	cout<<getHour()<<":"<<getMinute()<<":"<<getSecond()<<"(AM)"<<endl;
	}
	else{
	cout<<getHour()-12<<":"<<getMinute()<<":"<<getSecond()<<"(PM)"<<endl;
}
}
int main()
{
	Time t1=(0,0,0),t2=(0,0,0);
	t1.setTime(10,12,52);
	t1.printStandard();
	t1.printUniversal();
	t2.setTime(15,2,2);
	t2.printStandard();
	t2.printUniversal();
	return 0;
}

运行结果
在这里插入图片描述
有问题私聊博主或者在下面留言,如果有更好的解法也请留言,欢迎大家讨论,共同进步,一起学习。

C++是面向对象编程,我也想面向对象编程。”

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的xiaolang

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值