第四次上机实践项目-项目3-时间类-(2)

来源:互联网 发布:sql server 百度网盘 编辑:程序博客网 时间:2024/05/01 11:15


问题及代码:

/*

*文件名称:时间类

*作者:刘涛

完成日期:2016.3.27

*

*问题描述:加k+1个小时,m+1分钟,n+1秒后的时间

*输入描述:无

程序输出:加了时分秒之后的正确时间

*/

#include<iostream>using namespace std;class Time{public:    void add_a_sec(){sec++;}    void add_a_minute(){minute++;}    void add_an_hour(){hour++;}    void add_seconds(int n);    void add_minutes(int m);    void add_hours(int k);    void set_time();    void show_time();private:    bool is_time(int ,int ,int );    int hour;    int minute;    int sec;};void Time::add_seconds(int n){    sec+=n;    if(sec>60)    {        minute+=sec/60;        sec=sec%60;    }}void Time::add_minutes(int m){    minute+=m;    if(minute>60)    {        hour+=minute/60;        minute=minute%60;    }}void Time::add_hours(int k){    hour+=k;    if(hour>24)    {        hour=hour%24;    }}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;}int main(){    Time t1;    t1.set_time();    t1.show_time();    t1.add_a_sec();//增加一秒钟    t1.add_a_minute();//增加一分钟    t1.add_an_hour();//增加一小时    t1.add_seconds(3);//增加n秒钟    t1.add_minutes(4);//增加n分钟    t1.add_hours(2);//增加n小时    t1.show_time();    return 0;}
运行及结果:

0 0
原创粉丝点击