第三周项目3-时间类
2014-03-15 10:31
260 查看
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称:时间函数 *作者: 张凯 *完成日期:2014年 03月15号 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述: *问题描述:制作一个时刻表 *程序输出: *问题分析: *算法设计: */ #include <iostream> using namespace std; class Time { private: bool is_time(int, int, int); int hour; int minute; int sec; public: void set_time( ); void show_time( ); void add_seconds(int); void add_minutes(int); void add_hours(int); void add_a_sec() { if (sec<60) { sec++; if (sec>60) { minute++; if (minute>60) { hour++; minute-=60; sec-=60; } } } } void add_a_minute() { if (minute<60) { minute++; if (minute>60) { hour++; minute-=60;} } } void add_a_hour() { if (hour<24) { hour++; } else { cout<<"输入格式错误!!!"<<endl; } } }; 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_seconds(int n) { if(sec+n<60) { sec+=n; if (sec>60) { minute ++; if (minute>60) { hour++; minute-=60; sec-=60; } } }else { cout<<"输入错误"; } } void Time ::add_minutes(int n) { if (minute+n<60) { minute=minute+n; if (minute>60) { hour++; minute-=60; } }else { cout<<" 输入错误"; } } void Time::add_hours(int n) { if (hour+n<=24) { hour+=n; }else { cout<<"格式不对!!!"<<endl; } } int main( ) { int n; Time t1; t1.set_time( ); t1.show_time( ); cout<<"1增加一秒钟的时间为:"; t1.add_a_sec(); t1.show_time(); cout<<"2增加一分钟为:"; t1.add_a_minute(); t1.show_time(); cout<<"3增加一小时为:"; t1.add_a_hour(); t1.show_time(); cout<<"4请输入n的值:"; cin>>n; cout<<"增加n秒后的时间为:"; t1.add_seconds(n); t1.show_time(); cout<<" 5请输入n的值"; cin>>n; cout<<" 增加n分钟的值为:"; t1.add_minutes(n); t1.show_time(); cout<<" 6请输入n的值:"; cin>>n; cout<<" 增加n小时的值为:"; t1.add_hours(n); t1.show_time(); return 0; }
运行结果
心得体会:(>^ω^<)