第五周项目3——(2)时间类

来源:互联网 发布:和平网络电视手机破解 编辑:程序博客网 时间:2024/05/18 00:43

///// 2016.3.31 修改 /////

问题及代码:

 /*  * Copyright (c) 2016,烟台大学计算机与控制工程学院  * All rights reserved.  * 文件名称:main.cpp  * 作    者:赵志君  * 完成日期:2016年3月31日  * 版 本 号:v1.0  *  * 问题描述:为一个时间类增加功能  */#include<iostream>using namespace std;class Time{public:    void set_time();    void show_time();    void add_seconds(int);    void add_minute(int);    void add_hour(int);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_hour(int n){    hour+=n;    if(hour>23)        hour=hour-24;}void Time::add_minute(int n){    minute+=n;    if(minute>59)    {        add_hour(minute/60);        minute=minute%60;    }}void Time::add_seconds(int n){    sec=sec+n;    if(sec>59)    {        add_minute(sec/60);        sec=sec%60;    }}int main(){    Time t1;    t1.set_time();    t1.show_time();    t1.add_hour(4);    t1.add_minute(50);    t1.add_seconds(60);    t1.show_time();    return 0;}

运行结果:



学习心得:第一做出的代码,有着许多严重的错误,比如:时间没有24时60分60秒这几个值,还有就是增加的值可能会大于24大于60,让下一个数量级增加的可能不只是1而已。


/////////////////////////////////////////////////////////////// /    以下为错误代码     / ///////////////////////////////////////////////////////////////

问题及代码:

 /*  * Copyright (c) 2016,烟台大学计算机与控制工程学院  * All rights reserved.  * 文件名称:main.cpp  * 作    者:赵志君  * 完成日期:2016年3月28日  * 版 本 号:v1.0  *  * 问题描述:为一个时间类增加功能  */#include<iostream>using namespace std;class Time{public:    void set_time();    void show_time();    void add_seconds(int);    void add_minute(int);    void add_hour(int);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_hour(int n){    hour+=n;    if(hour>24)        hour=hour-24;}void Time::add_minute(int n){    minute+=n;    if(minute>60)    {        minute=minute-60;        hour++;    }}void Time::add_seconds(int n){    sec=sec+n;    if(sec>60)    {        sec=sec-60;        minute++;    }}int main(){    Time t1;    t1.set_time();    t1.show_time();    t1.add_hour(4);    t1.add_minute(5);    t1.add_seconds(6);    t1.show_time();    return 0;}

运行结果:



学习心得:注意时间的超限问题

0 0
原创粉丝点击