统制时间少不了成员函数(不一样哦!)
控制时间少不了成员函数(不一样哦!)
/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: x.cpp * 作者:张浩 * 完成日期: 2013年3 月17 日 * 版本号: v1.0 * 输入描述:输入时间,并输入增加多少秒,多少分钟,多少小时。 * 问题描述:运用类和对象,初步练习使用 * 程序输出:增加后的时间是多少。 */ #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();//增加n秒 void add_minutes();//增加n分钟 void add_hours();//增加n小时 private: bool is_time(int,int,int); int hour,h; int minute,m; int sec,s; }; void Time::set_time() { char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"<<endl; while(1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=':'||c2!=':') cout<<"格式不正确,请重新输入"<<endl; else if(!is_time(hour,minute,sec)) cout<<"时间非法,请重新输入"<<endl; else { h=hour; m=minute; s=sec; 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; else return true; } void Time::add_a_sec()//增加1秒 { sec+=1; if(sec==60) { sec=00; minute+=1; if(minute==60) { minute=00; hour+=1; if(hour==24) { hour=00; } } } cout<<"增加1秒后,时间为:"<<endl; if(hour==00&&minute==00&&sec==00) { cout<<"第二天 "<<endl; show_time(); } else show_time(); hour=h;minute=m;sec=s; } void Time::add_a_minute()//增加1分钟 { minute+=1; if(minute==60) { minute=00; hour+=1; if(hour==24) { hour=00; } } cout<<"增加1分钟后,时间为:"<<endl; if(hour==00&&minute==00) { cout<<"第二天 "; show_time(); }else show_time(); hour=h;minute=m;sec=s; } void Time::add_an_hour()//增加1小时 { hour+=1; if(hour==24) { hour=00; } cout<<"增加1小时后,时间为:"<<endl; if(hour==00) {cout<<"第二天 "; show_time();} else show_time(); hour=h;minute=m;sec=s; } void Time::add_seconds()//增加n秒 { int n; cout<<"请输入增加的秒数:"<<endl; cin>>n; sec+=n; int a=0; while(sec>=60){ sec-=60; ++a; } minute+=a; a=0; while(minute>=60) { minute-=60; ++a; } hour+=a; a=0; while(hour>=24) { hour-=24; ++a; } cout<<"增加"<<n<<"秒后,时间为:"<<endl; if(a==0) show_time(); else {cout<<"第"<<a+1<<"天 "; show_time();} hour=h;minute=m;sec=s; } void Time::add_minutes()//增加n分钟 { int n; cout<<"请输入增加的分钟数:"<<endl; cin>>n; int a=0; minute+=n; while(minute>=60){ minute-=60; ++a; } hour+=a; a=0; while(hour>=24){ hour-=24; ++a; } cout<<"增加"<<n<<"分钟后,时间为:"<<endl; if(a==0) show_time(); else {cout<<"第"<<a+1<<"天 "; show_time();} hour=h;minute=m;sec=s; } void Time::add_hours()//增加n小时 { int n,a=0; cout<<"请输入增加的小时数:"<<endl; cin>>n; hour+=n; while(hour>=24){ hour-=24; ++a; } cout<<"增加"<<n<<"小时后,时间为:"<<endl; if(a==0) show_time(); else {cout<<"第"<<a+1<<"天 "; show_time();} hour=h;minute=m;sec=s; } int main() { Time t1; Time &t2=t1; t1.set_time(); //cout<<endl<<"现在的时间为:"<<endl; t2.show_time(); t2.add_a_sec(); t2.add_a_minute(); t2.add_an_hour(); t2.add_seconds(); t2.add_minutes(); t2.add_hours(); return 0; }
运行结果:
心得体会:算法不编写各种各样,我的就是其中一个,等着你们改进!!!
- 1楼sxhelijian昨天 21:05
- 让add_hours()等函数只管时间的改变,而输出之类的工作,不要搅和在其中。“一个模块只完成一个功能”,这是大牛的敬告,值得思考。