/*
* 程序的版权和版本声明部分
* 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_seconds();//增加n秒
void add_minutes();//增加n分钟
void add_hours();//增加n小时
void 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 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 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;
}
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_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;
}
运行结果:
心得体会:在编程中我遇到了一个“程序中缺少一个‘}’的问题”,但是真的把我给难住不,不过还好我已经解决了,这次真的是长见识了。