第二周项目三 时间类

来源:互联网 发布:凯通杯java模拟题 编辑:程序博客网 时间:2024/05/29 11:44
问题及代码:
/** Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 文件名称:test.cpp* 作    者:宋健* 版 本 号:v1.0* 日    期:3月18日* 问题描述:通过改变时间对象改变作用* 输入描述:* 程序输出:*/#include <iostream>using namespace std;class Time{public:    void set_time();    void show_time( );    void add_a_sec()    {        sec=sec+1;        if (sec>=60)        {            add_a_minute();            sec=0;        }    }    void add_a_minute()    {        ++minute;        if(minute>=60)        {            add_an_hour();            minute=0;        }    }    void add_an_hour()    {        hour=hour+1;        if(hour>=24)            hour=hour-24;    }    void add_seconds(int);    void add_minutes(int);    void add_hours(int);private:    bool is_time(int, int, int);   //这个成员函数设置为私有的,是合适的,请品味    int hour;    int minute;    int sec;    int n;};void Time::add_seconds(int n){    sec=sec+n;    if(sec>=60)    {        add_minutes(sec/60);        sec=(sec+60)%60;    }}void Time::add_minutes(int n){    minute=minute+n;    if(minute>=60)    {        add_hours(minute/60);        minute=(minute+60)%60;    }}void Time::add_hours(int n){    hour=hour+n;    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( ){int n;    Time t1;    t1.set_time( );    t1.show_time( );    t1.add_a_sec();    cout<<"增加1s后的时间为:";    t1.show_time();    t1.add_a_minute();    cout<<"增加1min后的时间为:";    t1.show_time();    t1.add_an_hour();    cout<<"增加1hour后的时间为:";    t1.show_time();    cout<<"请输入增加的时间N:";    cin>>n;    t1.add_seconds(n);    cout<<"增加n s后的时间为:";    t1.show_time();     t1.add_minutes(n);     cout<<"增加n min后的时间为:";    t1.show_time();     t1.add_hours(n);     cout<<"增加n h后的时间为:";    t1.show_time();    return 0;}

运行结果:

知识点总结:

要看清楚题目要求啊,细心,自己想想解决问题中需要注意的细节,还有别把问题想的太麻烦


0 0
原创粉丝点击