第二周 项目3-时间类(2)
来源:互联网 发布:三菱plc模拟量编程 编辑:程序博客网 时间:2024/05/22 14:22
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:呼亚萍 * 完成日期:2015年 3月 18日 * 版 本 号:v1.0 * * 问题描述:阅读、运行程序后,按要求扩充类的功能 * 程序输入:相应的程序 * 程序输出:在原类基础上,在类内增加成员函数 */#include <iostream>using namespace std;class Time{public: void set_time(); void show_time(); void add_a_sec(); void add_a_minute(); void add_a_hour(); void add_seconds(int); void add_minutes(int); void add_hours(int);private: bool is_time(int,int,int); int hour; int minute; int sec;};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;}bool Time::is_time(int h,int m,int s){ if(h<0||h>24||m>60||m<0||s>60||s<0) return false; else return true;}inline void Time::add_a_sec(){ sec++; if(sec>59) { sec=0; add_a_minute(); }}inline void Time::add_a_minute(){ minute++; if(minute>59) { minute=0; add_a_hour(); }}inline void Time::add_a_hour(){ hour++; if(hour>23) { hour=0; }}void Time::add_seconds(int n){ sec+=n; if(sec>59) { add_minutes(sec/60);//位置不能与后一句调换,因为如果调换后,sec将取值取余后的sec sec=sec%60; }}void Time::add_minutes(int n){ minute+=n; if(minute>59) { add_hours(minute/60);//位置不能与后一句调换,因为如果调换后,minute将取值取余后的minute minute=minute%60; }}void Time::add_hours(int n){ hour+=n; if(hour>23) { hour=hour%24; }}int main(){ Time t1; t1.set_time(); cout<<"增加一秒后时间为:"<<endl; t1.add_a_sec(); t1.show_time(); cout<<endl; cout<<"增加一分钟后时间为:"<<endl; t1.add_a_minute(); t1.show_time(); cout<<endl; cout<<"增加一小时后时间为:"<<endl; t1.add_a_hour(); t1.show_time(); cout<<endl; cout<<"增加127秒后时间为:"<<endl; t1.add_seconds(127); t1.show_time(); cout<<endl; cout<<"增加18分钟后时间为:"<<endl; t1.add_minutes(18); t1.show_time(); cout<<endl; cout<<"增加25小时后时间为:"<<endl; t1.add_hours(25); t1.show_time(); cout<<endl; return 0;}
运算结果:
知识点总结:
定义函数,类的应用于理解
学习心得:
多加练习,发现新问题!
0 0
- 第二周项目:时间类(2)
- 第二周 项目3-时间类(2)
- 第二周项目3-时间类
- 第二周项目3—时间类
- 第二周项目3-时间类
- 第二周项目3时间类
- 第二周上机项目3 时间类
- 第二周【项目3—时间类】
- 第二周项目3-时间类
- C++第二周项目3 时间类
- 第二周项目3-时间类
- 第二周项目:时间类(1)
- 大一第二学期第2周【项目3:时间类】
- 第二周 项目3-时间类(1)
- 第二周项目3——时间类(+1)
- 第二周项目3——时间类(+n)
- 2015年第二周项目三(2):时间类
- 第二周项目三时间类(2)
- .net学习第十四天
- 2015-第二周-旱冰场造价
- JAVA进阶学习-java String类
- Mycat 水平分表,垂直分表实践(2)
- Unity UGUI——Image(基本属性)
- 第二周 项目3-时间类(2)
- .net学习第十五天
- ReportNG 手把手教你弄测试报告
- 第一周项目二
- 121.Best Time to Buy and Sell Stock
- android-测试so动态库(九)
- Mac OS X 下开发 Android 程序时使用 USB 连真机调试
- 找出最长回文子串
- 第二周项目3-时间类