项目三 时间类
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: x.cpp* 作者:徐本锡* 完成日期: 2013年3 月15 日* 版本号: v1.0* 输入描述:输入时间,并输入增加多少秒,多少分钟,多少小时。* 问题描述:运用类和对象,初步练习使用* 程序输出:增加后的时间是多少。*///我的代码:#include <iostream>using namespace std;class Time{public:void set_time( ); void show_time( );void add_seconds();// 增加 n 秒钟void add_minutes();// 增加 n 分钟void add_hours(); // 增加 n 小时void 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秒后,为";if(hour==00&&minute==0&&sec==0)cout<<"第二天 00:00:00"<<endl;elseshow_time( );hour=h;minute=m;sec=s;}void add_a_minute() // 增加 1 分钟{minute+=1;if(minute==60){minute=00;hour+=1;if(hour==24){hour=00;}}cout<<"加上1分钟后,为";if(hour==00&&minute==0){cout<<"第二天 ";show_time( );}elseshow_time( );hour=h;minute=m;sec=s;}void add_an_hour() // 增加 1 小时{hour+=1;if(hour==24){hour=00;}cout<<"加上1小时后,为";if(hour==00){cout<<"第二天 ";show_time( );}elseshow_time( );hour=h;minute=m;sec=s;}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)";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;return true;}void Time::add_seconds()//增加n秒钟{int n;cout<<"增加 秒。";cout<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b';cin>>n;int a=0;sec+=n;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<<"秒后,为";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<<"增加 分钟。";cout<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b';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<<"分钟后,为";if(a==0)show_time( );else{cout<<"第"<<a+1<<"天";show_time( );}hour=h;minute=m;sec=s;}void Time::add_hours()//增加n小时{int n;cout<<"增加 小时。";cout<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b'<<'\b';cin>>n;int a=0;hour+=n;while(hour>=24){hour-=24;++a;}cout<<"增加"<<n<<"小时后,为";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( ); t2.show_time( );t2.add_a_sec();// 增加 1 秒钟t2.add_a_minute();// 增加 1 分钟t2.add_an_hour();// 增加 1 小时t2.add_seconds();//增加n秒钟t2.add_minutes();//增加n分钟t2.add_hours();return 0;}
- 2楼jingshichen2012昨天 10:49
- 本溪,你置啥来?
- Re: xubenxismile昨天 11:20
- 回复jingshichen2012n你过来看看不就知道了。。。。。。
- 1楼sxhelijian昨天 10:41
- 测试没有设计好,前面一部分没有考虑边界,后面一部分,随便给个大数,错了也不知道。