2013级C++第3周【项目3 - 时间类】

来源:互联网 发布:javascript与jsp 编辑:程序博客网 时间:2024/05/01 09:50
/** 程序的版权和版本声明部分* Copyright (c)2013, 在校学生* All rightsreserved.* 文件名称: 项目3.cpp* 作    者:刘旺* 完成日期:2014年3月12日* 版本号: v1.0** 输入描述:* 问题描述:请在原类基础上,增加下列成员函数,要求前三个在类内定义*          (将是内置成员函数),后三个在类内声明,类外定义。*           在main()数中增加适当的调用以展示扩充类定义后的功能。* 程序输出:* 问题分析:*/#include <iostream>using namespace std;class Time{ public:    void set_time( );    void show_time( );    void add_a_sec() ; //增加1秒钟    void add_a_minute() ;//增加1分钟    void add_an_hour() ;//增加1小时    void add_seconds(int n) ;//增加n秒钟    void add_minutes(int n) ;//增加n分钟    void add_hours(int n) ;//增加n小时 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;}//增加1秒钟void Time::add_a_sec(){     ++this->sec ;     if(sec>=60)     {         ++minute ;         sec = sec-60 ;     }     if(minute>=60)     {         ++hour ;         minute = minute-60 ;     }     if(hour >= 24)     {         hour = hour - 24 ;     }}//增加1分钟void Time::add_a_minute(){      ++minute ;        if(minute>=60)     {         ++hour ;         minute = minute-60 ;     }     if(hour >= 24)     {         hour = hour - 24 ;     }}//增加1小时void Time::add_an_hour(){      ++hour ;      if(hour >= 24)     {         hour = hour - 24 ;     }}//增加n秒钟void Time::add_seconds(int n){      for(int i=1; i<=n; i++)      {          add_a_sec() ;      }}//增加n分钟void Time::add_minutes(int n){      for(int i=1; i<=n; i++)      {          add_a_minute() ;      }}//增加n小时void Time::add_hours(int n){      for(int i=1; i<=n; i++)      {          add_an_hour() ;      }}int main( ){    Time t1;    t1.set_time();    t1.show_time();    t1.add_a_sec() ; //增加1秒钟    cout << "增加1秒钟:" ;    t1.show_time();    t1.add_a_minute() ;//增加1分钟    cout << "增加1分钟:" ;    t1.show_time();    t1.add_an_hour() ;//增加1小时    cout << "增加1小时:" ;    t1.show_time();    t1.add_seconds(2) ;//增加n秒钟    cout << "增加2秒钟:" ;    t1.show_time();    t1.add_minutes(3) ;//增加n分钟    cout << "增加3分钟:" ;    t1.show_time();    t1.add_hours(4) ;//增加n小时    cout << "增加4小时:" ;    t1.show_time();    return 0;}

此程序主要要考虑到秒分钟的限制范围,注意细节,我从中也学习到了仔细认真很关键。

0 0
原创粉丝点击