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

来源:互联网 发布:像素画软件 编辑:程序博客网 时间:2024/05/17 23:36
/**copyright (c)2014,烟台大学计算机学院*All rights reserved*文件名称:project.cpp*作者:孙春红*完成日期:2015年3月18日*版本号:v1.0**问题描述:阅读运行程序后,按要求扩充类的功能。(1)请在原类基础上,在类内增加下列成员函数(将是内置成员函数)add_a_sec()  //增加1秒钟add_a_minute() //增加1分钟add_an_hour() //增加1小时在main()数中,调用新增加的成员函数,以测试扩充后的功能。(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();    void add_seconds(int); //增加n秒钟    void add_minutes(int); //增加n分钟    void add_hours(int); //增加n小时private:    bool is_time(int, int, int);    int hour;    int minute;    int sec;};void Time::set_time( ){    char c1,c2;    cout<<"请输入时间(格式hh:mmvoid add_seconds(格式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;}inline void Time::add_a_sec(){    ++sec;    if (sec>59)        add_a_minute();}inline void Time::add_a_minute(){    ++minute;    if (minute>59)        add_an_hour();}inline void Time::add_an_hour(){    ++hour;    if (hour>23)    {        hour=0;    }}void Time::add_seconds(int n){    sec+=n;    if (sec>59)    {        sec%=60;        add_minutes(sec/60);    }}void Time::add_minutes(int n){    minute+=n;    if (minute>59)    {        minute%=60;        add_hours(minute/60);    }}void Time::add_hours(int n){    hour+=n;    if (hour>23)    {        hour%=24;    }}int main( ){    Time t1;    t1.set_time( );    t1.show_time( );    t1.add_a_sec();    cout<<"增加一秒后:"<<endl;    t1.show_time();    t1.add_a_minute();    cout<<"增加一分钟后:"<<endl;    t1.show_time();    t1.add_an_hour();    cout<<"增加一小时后:"<<endl;    t1.show_time();    t1.add_seconds(50);    cout<<"增加n秒钟后:"<<endl;    t1.show_time();    t1.add_minutes(120);    cout<<"增加n分钟后:" <<endl;    t1.show_time();    t1.add_hours(19);    cout<<"增加n小时后:"<<endl;    t1.show_time();    return 0;}


运行结果:

知识点总结:

运用面向对象的程序设计,运用类和对象在原有的程序上扩充其功能。

0 0
原创粉丝点击