第二周【项目3—时间类】

来源:互联网 发布:大数据txt 编辑:程序博客网 时间:2024/06/05 10:23
/**Copyright (c) 2014,烟台大学计算机学院*ALL right reserved*文件名:时间类*作者;童宇*完成日期:2015年3月21日*版本号v1.0*问题描述:改时间*输入描述:输入一个时间和想要加的时间*程序输出:输出相应的结果*/#include <iostream>using namespace std;class Time{public:    void set_time();    void change_time (int ,int ,int );    void add_seconds(int);    void add_minutes(int);    void add_hours(int);    void show_time();private:    bool is_time(int, int, int );    int hour;    int minute;    int sec;};void Time::set_time(){    char c1,c2;    cout<<"请输入时间(格式 hh::mm::ss)\n";    while (1)    {        cin>>hour>>c1>>minute>>c2>>sec;        if(c1!=':'||c2!=':')            cout<<"格式不正确,请重新输入"<<endl;        else if(!is_time(hour,minute,sec))            cout<<"时间非法,请重新输入"<<endl;        else            break;    }}void Time::add_seconds(int s){    change_time(0,0,s);}void Time::add_minutes(int m){    change_time(0,m,0);}void Time::add_hours(int h){    change_time(h,0,0);}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;    return true;}void Time::change_time (int h,int m,int s){    int i=0;    sec+=s;    while(!is_time(hour,minute,sec))    {        sec-=60;        i++;    }    minute+=i;    minute+=m;    i=0;     while(!is_time(hour,minute,sec))    {        minute-=60;        i++;    }    hour+=i;    hour+=h;    i=0;     while(!is_time(hour,minute,sec))    {        hour-=24;        i++;    }}int main(){    Time t1;    int h,m,s;    t1.set_time();    cout<<"请输入需要增加的时间";    cout<<"请输入所需增加的小时\n";    cin>>h;    t1.add_hours(h);    cout<<"请输入所需增加的分钟\n";    cin>>m;    t1.add_minutes(m);    cout<<"请输入所需增加的秒数\n";    cin>>s;    t1.add_seconds(s);    t1.show_time();    return 0;}


运行结果:

0 0
原创粉丝点击