第2周项目3时间类

来源:互联网 发布:工业机器人编程 编辑:程序博客网 时间:2024/05/22 00:39
编号及代码/*完成日期:3月15*作者:范星月*问题描述:在原类基础上增加内置成员函数,并在增加三个成员函数,在类内声明,类外定义*问题输入:输入时间*问题输出:按要求输出时间*/#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_a_hour();    void add_seconds(int n);    void add_minutes(int n);    void add_hours(int n);private:    bool is_time(int ,int ,int );    int sec;    int minute;    int hour;};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            break;    }}void Time::show_time(){    cout<<hour<<":"<<minute<<":"<<sec<<endl;}bool Time::is_time(int h,int m,int s){    if(h<0||h>23||m<0||m>59||s<0||s>59)        return false;    return true;}void Time::add_a_sec(){    sec++;    if(sec>59)    {        sec=0;        add_a_minute();    }}void Time::add_a_minute(){    minute++;    if(minute>59)    {        minute=0;        add_a_hour();    }}void Time::add_a_hour(){    hour++;    if(hour>23)        hour=0;}void Time::add_seconds(int  n){    sec+=n;    if(sec>59)    {        add_minutes(sec/60);        sec%=60;    }}void Time::add_minutes(int n){    minute+=n;    if(minute>60)    {        add_hours(minute/60);        minute%=60;    }}void Time::add_hours(int n){    hour+=n;    if(hour>23)        add_hours(hour%24);}int main(){    Time t1;    t1.set_time();    cout<<"现在时间是:"<<endl;    t1.show_time();    t1.add_a_sec();    cout<<"增加一秒钟后的时间是:"<<endl;    t1.show_time();    t1.add_a_minute();    cout<<"增加一分钟后的时间是:"<<endl;    t1.show_time();    t1.add_a_hour();    cout<<"增加一小时后的时间是:"<<endl;    t1.show_time();    t1.add_seconds(1);    cout<<"增加n秒钟后的时间是:"<<endl;    t1.show_time();    t1.add_minutes(1);    cout<<"增加n分钟后的时间是:"<<endl;    t1.show_time();    t1.add_hours(1);    cout<<"增加n小时后的时间是:"<<endl;    t1.show_time();    return 0;}


运行结果:

 学习总结:结果的变化是在上一个的基础上,类是对象的抽象,对象是类的具体实例,内置函数,定义,调用,取整,取余,在秒数可能超过60的时候,调用增加分数的成员函数,使时间合法

 

0 0
原创粉丝点击