第五周项目四 -静态成员应用 由老师版本的完善版
来源:互联网 发布:网络平台推广好做吗 编辑:程序博客网 时间:2024/06/05 01:18
【项目4-静态成员应用】
设计含有静态数据成员和成员函数的Time类。静态数据成员是类中所有的对象共有的数据,在下面的设计中,时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是“影响全局”的设置,适合作为类中的静态数据成员。
[参考解答]
#include <iostream>using namespace std;class Time{public: Time(int=0,int=0,int=0); void show_time( ); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm void add_seconds(int); //增加n秒钟 void add_minutes(int); //增加n分钟 void add_hours(int); //增加n小时 void change(); void work(); void add_time();private: static bool is_24; //为true时,24小时制,如20:23:5;为flase,12小时制,显示为8:23:5 pm static bool from0; //为true时,前导0,8:23:5显示为08:23:05 int hour; int minute; int sec;};//下面写出静态成员的初始化及各成员函数的定义……bool Time::is_24=true; //这个作为全局变量,bool Time::from0=false;Time::Time(int h,int m,int s): hour(h), minute(m), sec(s) {}void Time::show_time( ) //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm{ change(); int h=(is_24)?hour:hour%12; cout<<h<<":"; if(minute<10&&from0)cout<<"0"; cout<<minute<<":"; if(sec<10&&from0)cout<<"0"; cout<<sec; if(!is_24) cout<<((hour>12)? " pm":" am"); cout<<endl; work();}//这一部分值得我们好好学习一下这样的写法。void Time::add_seconds(int n) //增加n秒钟{ sec+=n; if (sec>59) { add_minutes(sec/60); sec%=60; }}void Time::add_minutes(int n) //增加n分钟{ minute+=n; if (minute>59) { add_hours(minute/60); minute%=60; }}void Time::add_hours(int n) //增加n小时{ hour+=n; if (hour>23) hour%=24;}void Time::change(){ cout<<"请选择你要输出的格式。"<<endl; cout<<"是否为24小时制(Y/N):"; char ch; cin>>ch; is_24=(ch=='Y'?true:false); cout<<"是否为前导‘0’(Y/N):"; char n; cin>>n; from0=(n=='Y'?true:false);}void Time::add_time(){ cout<<"秒钟增加的时间:"; int s; cin>>s; add_seconds(s); cout<<"分钟增加的时间:"; int m; cin>>m; add_minutes(m); cout<<"时钟增加的时间:"; int h; cin>>h; add_hours(h); work();}void Time::work(){ cout<<"有以下功能供您选择:"<<endl; cout<<"1. 增加时间 2. 输出时间 "<<endl; int x; while(cin>>x) { switch(x) { case 1: add_time(); break; case 2: show_time(); break; } }}int main(){ int h,m,s; cin>>h>>m>>s; Time t1(h,m,s); t1.show_time(); t1.work(); return 0;}
在这个程序中实现了人与程序的交流。
0 0
- 第五周项目四 -静态成员应用 由老师版本的完善版
- 第五周项目四:静态成员应用
- 第五周项目四:静态成员应用
- 第五周 项目四-静态成员应用
- 第五周项目四静态成员应用
- 第五周项目四 静态成员应用
- 第五周项目四---静态成员应用
- 第五周项目四静态成员应用
- 第五周 项目四 静态成员应用
- 第五周项目四 静态成员应用
- 第五周 项目四--静态成员应用
- 第五周项目四静态成员应用
- 第五周 项目四 静态成员应用
- 第五周项目四 静态成员应用
- 第五周 项目四 静态成员应用
- 第五周项目四—静态成员的应用
- 第五周项目四——静态成员的应用
- 15第五周项目四——静态成员应用
- UINavigationController的使用
- Leetcode---Unique Binary Search Trees
- [推荐]ORACLE SQL:经典查询练手第二篇(不懂装懂,永世饭桶!)
- Android Handler机制
- Spark知识系统化整理分享
- 第五周项目四 -静态成员应用 由老师版本的完善版
- 【J2EE】快速搭建 Spring MVC 开发框架(一)
- [LeetCode][Database]Duplicate Emails
- java,web学习之MVC模式的搭建。
- UVA - 11389(贪心)
- 数据库笔记--三层模型
- 常用的 DOCTYPE 声明有哪些?
- presentModalViewController的使用
- Leetcode---Unique Binary Search Trees II