第二周 项目三-时间类(二)
来源:互联网 发布:手机淘宝领取淘金币 编辑:程序博客网 时间:2024/06/12 20:31
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:冷基栋 * 完成日期:2015年 3 月 15 日 * 版 本 号:v1.0 * * 问题描述:阅读、运行程序后,按要求扩充类的功能; 功能(2):请在原类基础上,在类内增加下列成员函数(将是内置成员函数) add_seconds(int) //增加n秒钟 add_minutes(int) //增加n分钟 add_hours(int) //增加n小时 * 输入描述: 输入要增加的秒数,分钟,小时; * 程序输出: 输出改变后的时间。 */
代码:
<p>#include <iostream>using namespace std;class Time{public: void set_time( ); void show_time( ); void add_sec(int); void add_minute(int); void add_hour(int);private: bool is_time(int, int, int); //这个成员函数设置为私有的,是合适的,请品味 int hour; int minute; int sec; int n;};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; }}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;}inline void Time::add_sec(int n){ sec+=n; if (sec>59) { minute+=sec/60; sec=n%60; } if (minute>59) { hour+=minute/60; minute=minute%60; } if (hour>23) hour=hour%24;}inline void Time::add_minute(int n){ minute+=n; if (minute>59) { hour+=minute/60; minute=minute%60; } if (hour>23) hour=hour%24;}inline void Time::add_hour(int n){ hour+=n; if (hour>23) hour=hour%24;}void Time::show_time( ){ add_sec(40); add_minute(20); add_hour(3); cout<<hour<<":"<<minute<<":"<<sec<<endl;}</p><p>int main( ){ Time t1; t1.set_time( ); t1.show_time( ); return 0;}</p>运行结果:
知识点总结:
类和对象的应用
学习心得:
好好学习天天向上
0 0
- 第二周 项目三-时间类(二)
- 第二周项目三 时间类
- 第二周项目三:时间类
- 第二周项目三 时间类
- 第二周 项目三 时间类(1)
- 第二周 项目三 时间类
- 第二周项目三 时间类
- 第二周 项目三 时间类(一)
- 第二周 项目三--时间类(最初程序)
- 2015年第二周项目三(2):时间类
- 第二周项目三 时间类(增加时分秒)
- 第二周项目三时间类(1)
- 第二周项目三时间类(2)
- 第二周项目三 时间类(1)
- 第二周项目三——时间类(1)
- 第二周项目三——时间类(2)
- 第二周项目三 时间类(2)
- 第二周项目三——时间类(2)
- 检测图片是否正确加载的js插件-imagesLoaded
- Hadoop2.x 源代码组织结构
- Cocos2d-X的多分辨率支持(1)
- hdoj 1018 Big Number
- EasyHook远程进程注入并hook api的实现
- 第二周 项目三-时间类(二)
- BZOJ-2115-Xor-WC2011
- PHP函数
- 程序猿日常-3
- 构造函数和析构函数概述
- VS2010编译arthurv的C++版OpenTLD
- Cocos2d-X的多分辨率支持(2)
- 模拟银行账户转账系统(简单模拟)
- 【算法证明含证明过程】数组左部分中的最大值减去右部分最大值的绝对值,最大是多少?