3-2-完整时间类
来源:互联网 发布:淘宝排名规则天猫 编辑:程序博客网 时间:2024/03/29 14:28
01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2011, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称:test.cpp 06.* 作 者:刘芳07.* 完成日期:201 4年03 月23 日 08.* 版 本 号:v1.0 09.* 对任务及求解方法的描述部分: 10.* 输入描述:无 11.* 问题描述: 12.* 程序输出: 13.* 问题分析:略 14.* 算法设计:略 15.*/
#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_a_sec() { if(sec<59) sec++; else if(sec==59&&minute<59) { sec=00; minute++; } else if(sec==59&&minute==59&&hour<23) { sec=00; minute=00; hour++; } else if(sec==59&&minute==59&&hour==23) { sec=00; minute=00; hour=00; } } void add_hours(int); void add_minutes(int); void add_seconds(int);};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_hours(int n){ int m,i; i=hour+n; if(i<=23) hour+=n; else if((i==24)) hour=0; else if(i>24) { m=i%24; hour=m; }}void Time::add_minutes(int a){ int i; i=minute+a; if(i<=59) minute=i; else if(i>59) { add_hours((i/60)); minute=(i%60); }}void Time::add_seconds(int b){ int i; i=sec+b; if(i<=59) sec=i; else if(i>59) { add_minutes(i/60); sec=(i%60); }} int main( ) { int a; Time t1; t1.set_time( ); t1.show_time( ); t1.add_a_sec(); cout<<"增加一秒后:"; t1.show_time( ); cout<<"请输入增加小时数a:"; cin>>a; t1.add_hours(a); t1.show_time( ); cout<<"请输入增加分钟数a:"; cin>>a; t1.add_minutes(a); t1.show_time(); cout<<"请输入增加秒数a:"; cin>>a; t1.add_seconds(a); t1.show_time(); return 0; }
0 0