第5周项目3-时间类(2)

来源:互联网 发布:linux修改密码策略 编辑:程序博客网 时间:2024/05/17 05:15
/**Copyright(C) 2016,计算机与控制工程学院*All rights reserved.*文件名:test.cpp*作者:张志新*完成日期:2016年4月1日*版本号:v1.0**问题描述:*(2)再增加三个成员函数,要求在类内声明,类外定义。*add_seconds(int) //增加n秒钟*add_minutes(int) //增加n分钟*add_hours(int) //增加n小时*提示:*要考虑增加后超出取值范围的情形;*增加n秒后,秒数可能会超过60,调整秒数,并可以调用增加分钟数的成员函数,使时间合法;同理,增加分钟数也*/#include<iostream>using namespace std;class Time{public:    void set_time( );       void show_time( );inline void add_a_sec();//声明内联函数inline void add_a_minute();inline void add_an_hour();inline void add_sec(int n);inline void add_minute(int n);inline void add_hour(int n);private:     bool is_time(int, int, int);       int hour;    int minute;    int sec;};void Time::set_time( ) {    char c1,c2;    cout<<"请输入时间(格式hh:mm:ss)";    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::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::add_a_sec(){++sec;if(sec>=60){minute++;sec=0;}}void Time::add_a_minute(){++minute;if(minute>=60){hour++;minute=0;}}void Time::add_an_hour(){++hour;if(hour>24){hour=hour-24;}}void Time::add_sec(int n){sec+=n;if(sec>=60){minute+=sec/60;sec=sec%60;}}void Time::add_minute(int n){minute+=n;if(minute>=60){hour+=minute/60;minute=minute%60;}}void Time::add_hour(int n){hour+=n;if(hour>24){hour=hour-24;}}int main( ){    Time t1;      t1.set_time( );    t1.add_a_sec();t1.show_time( );//加一秒钟t1.add_a_minute();//加一分钟t1.show_time( );t1.add_an_hour();//加一个小时t1.show_time( );t1.add_sec(60);t1.show_time( );t1.add_minute(6);t1.show_time( );    t1.add_hour(2);t1.show_time( );    return 0;}

0 0
原创粉丝点击