第一周项目 3 时间类

来源:互联网 发布:像素画软件 编辑:程序博客网 时间:2024/05/17 21:41
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称 : main.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( );    void add_a_sec();    void add_a_minute();    void add_an_hour();    void add_second(int);    void add_minutes(int);    void add_hours(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_a_sec(){    sec=sec+1;    if(sec>59)    {        sec=0;        add_a_minute();    }}void Time::add_a_minute(){    minute=minute+1;    if(minute>59)    {        minute=0;        add_an_hour();    }}void Time::add_an_hour(){    hour=hour+1;    if(hour>23)    {        hour=0;    }}void Time::add_second(int s){    sec=sec+s;    if(sec>59)    {        add_minutes(sec/60);        sec=sec%60;    }}void Time::add_minutes(int m){    minute=minute+m;    if(minute>59)    {        add_hours(minute/60);        minute=minute%60;    }}void Time::add_hours(int h){    hour=hour+h;    if(hour>23)    {        hour=hour%24;    }}int main( ){    int a,b,c;    Time t1;    t1.set_time( );    cout<<"现在时间是:";    t1.show_time( );    t1.add_a_sec();    cout<<"增加一秒:";    t1.show_time();    t1.add_a_minute();    cout<<"增加一分钟 :";    t1.show_time();    t1.add_an_hour();    cout<<"增加一小时 :";    t1.show_time();    cout<<"增加的秒数:";    cin>>a;    t1.add_second(a);    cout<<"增加之后变为:";    t1.show_time();    cout<<"增加的分钟数:";    cin>>b;    t1.add_minutes(b);    cout<<"增加之后变为:";    t1.show_time();    cout<<"增加的小时数:";    cin>>c;    t1.add_hours(c);    cout<<"增加之后变为:";    t1.show_time();    return 0;}


 

知识点总结 :

   写这个的时候要注意到时分秒的变换,不然很容易写错,还有就是在类内先定义后在进行描述。

学习心得 :

    写完觉得还可以,继续加油

0 0
原创粉丝点击