第三周任务三之用类调整时间(1)

来源:互联网 发布:天涯论坛营销软件 编辑:程序博客网 时间:2024/05/17 09:08

源程序:

/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: 增加类定义的功能                             * 作    者: 2011级 计114-3 张宗佳                             * 完成日期: 2012年 03 月 05 日* 版 本 号: vc.1         * 对任务及求解方法的描述部分* 输入描述:输入时、分、秒,并实现加时* 问题描述:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。*add_a_sec()  //增加1秒钟*add_a_minute() //增加1分钟*add_an_hour() //增加1小时*add_seconds(int) //增加n秒钟*add_minutes(int) //增加n分钟*add_hours(int) //增加n小时*提示:要考虑增加后超出取值范围的情形  * 程序输出: 输出正确形式的时间* 程序头部的注释结束*/#include <iostream>using namespace std;class Time{public:void set_time( );   void show_time( ); inline void add_a_sec();inline void add_a_minute();inline void add_an_hour();private: bool is_time(int, int, int);int hour;int minute;int sec;};int main( ){Time t1;  Time &t2=t1;t1.set_time( );   t2.show_time( );cout << "增加一秒后,时间是:";t1.add_a_sec();t2.show_time();cout << "增加一分钟后,时间是:";t1.add_a_minute();t2.show_time();cout << "增加一小时后,时间是:";t1.add_an_hour();t2.show_time();return 0;}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()//增加一秒后的时间函数{if(sec == 59){sec = 0;add_a_minute();//如果第59秒时在增加一秒钟,秒针变成0,分针增加1}else{sec = sec + 1;}return;}void Time::add_a_minute()//增加一分钟后的时间函数{if(minute == 59){minute = 0;add_an_hour();}else{minute = minute +1;}return;}void Time::add_an_hour()//增加一小时后的时间函数{if(hour == 23){hour = 0;}else{hour = hour + 1;}return;}

实验结果:

经验积累:

1.所增加的函数都是void形,无返回值

2.设置成内置函数,如果在类外定义,在类内声明的时候要在函数前面加上inline,在定义的时候可以不用再加,如果直接在类内定义时,函数前可以不加inline


原创粉丝点击