统制时间少不了成员函数(不一样哦!)

控制时间少不了成员函数(不一样哦!)
/* 
* 程序的版权和版本声明部分 
* Copyright (c)2012, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称: x.cpp 
* 作者:张浩
* 完成日期: 2013年3  月17  日 
* 版本号: v1.0 
* 输入描述:输入时间,并输入增加多少秒,多少分钟,多少小时。  
* 问题描述:运用类和对象,初步练习使用  
* 程序输出:增加后的时间是多少。 
*/  
#include <iostream>
using namespace std;
class Time
{
public:
	void set_time();
	void show_time();
	void add_a_sec();//增加1秒
	void add_a_minute();//增加1秒
	void add_an_hour();//增加1小时
	void add_seconds();//增加n秒
	void add_minutes();//增加n分钟
	void add_hours();//增加n小时
private:
	bool is_time(int,int,int);
	int hour,h;
	int minute,m;
	int sec,s;
};
void Time::set_time()
{
	char c1,c2;
	cout<<"请输入时间(格式hh:mm:ss)"<<endl;
	while(1)
	{
		cin>>hour>>c1>>minute>>c2>>sec;
		if(c1!=':'||c2!=':')
			cout<<"格式不正确,请重新输入"<<endl;
		else if(!is_time(hour,minute,sec))
			cout<<"时间非法,请重新输入"<<endl;
		else
		{
			h=hour;
			m=minute;
			s=sec;
			break;
		}
	}
}
void Time::show_time()//输出时间
{
	cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
bool Time::is_time(int h,int m,int s)
{
	if(h<0||h>24||m<0||m>60||s<0||s>60)
		return false;
	else
		return true;
}
void Time::add_a_sec()//增加1秒
	{
		sec+=1;
		if(sec==60)
		{
			sec=00;
			minute+=1;
			if(minute==60)
			{
				minute=00;
				hour+=1;
				if(hour==24)
				{
					hour=00;
				}
			}
		}
		cout<<"增加1秒后,时间为:"<<endl;
		if(hour==00&&minute==00&&sec==00)
		{
			cout<<"第二天  "<<endl;
			show_time();
		}
		else
			show_time();
		hour=h;minute=m;sec=s;
	}
void Time::add_a_minute()//增加1分钟
	{
		minute+=1;
		if(minute==60)
		{
			minute=00;
			hour+=1;
			if(hour==24)
			{
				hour=00;
			}
		}
		cout<<"增加1分钟后,时间为:"<<endl;
		if(hour==00&&minute==00)
		{
			cout<<"第二天  ";
			show_time();
		}else
			show_time();
		hour=h;minute=m;sec=s;
	}
void Time::add_an_hour()//增加1小时
	{
		hour+=1;
		if(hour==24)
		{
			hour=00;
		}
		cout<<"增加1小时后,时间为:"<<endl;
		if(hour==00)
		{cout<<"第二天 ";
		show_time();}
		else
			show_time();
		hour=h;minute=m;sec=s;
	}
void Time::add_seconds()//增加n秒
{
	int n;
	cout<<"请输入增加的秒数:"<<endl;
	cin>>n;
	sec+=n;
	int a=0;
	while(sec>=60){
		sec-=60;
		++a;
	}
	minute+=a;
	a=0;
	while(minute>=60)
	{
		minute-=60;
		++a;
	}
	hour+=a;
	a=0;
	while(hour>=24)
	{
		hour-=24;
		++a;
	}
	cout<<"增加"<<n<<"秒后,时间为:"<<endl;
	if(a==0)
		show_time();
	else
	{cout<<"第"<<a+1<<"天 ";
	show_time();}
	hour=h;minute=m;sec=s;
}
void Time::add_minutes()//增加n分钟
{
	int n;
	cout<<"请输入增加的分钟数:"<<endl;
	cin>>n;
	int a=0;
	minute+=n;
	while(minute>=60){
		minute-=60;
		++a;
	}
	hour+=a;
	a=0;
	while(hour>=24){
		hour-=24;
		++a;
	}
	cout<<"增加"<<n<<"分钟后,时间为:"<<endl;
	if(a==0)
		show_time();
	else
	{cout<<"第"<<a+1<<"天 ";
	show_time();}
	hour=h;minute=m;sec=s;
}
void Time::add_hours()//增加n小时
{
	int n,a=0;
	cout<<"请输入增加的小时数:"<<endl;
	cin>>n;
	hour+=n;
	while(hour>=24){
		hour-=24;
		++a;
	}
	cout<<"增加"<<n<<"小时后,时间为:"<<endl;
	if(a==0)
		show_time();
	else
	{cout<<"第"<<a+1<<"天 ";
	show_time();}
	hour=h;minute=m;sec=s;
}
int main()
{
	Time t1;
	Time &t2=t1;
	t1.set_time();
	//cout<<endl<<"现在的时间为:"<<endl;
	t2.show_time();
	t2.add_a_sec();
	t2.add_a_minute();
	t2.add_an_hour();
	t2.add_seconds();
	t2.add_minutes();
	t2.add_hours();
	return 0;
}

运行结果:

统制时间少不了成员函数(不一样哦!)

心得体会:算法不编写各种各样,我的就是其中一个,等着你们改进!!!

1楼sxhelijian昨天 21:05
让add_hours()等函数只管时间的改变,而输出之类的工作,不要搅和在其中。“一个模块只完成一个功能”,这是大牛的敬告,值得思考。