项目4-静态成员应用
2016-04-05 18:40
399 查看
/*
*Copyright (c) 2014,烟台大学计算机学院
*All right reserved.
*文件名称:test.cpp
*作 者:韩双志
*完成日期:2016年4月2日
*版本号:v1.0
*
*问题描述:设计含有静态成员和成员函数的time类。静态成员是类中所有对象共有的数据,在下面的设计中,时钟要采用12小时制,还要使用24小时制,显示时,不足两位的*数字前是否要前导0,都是影响全局的设置
*输入描述:无;
*输出描述:输出24制,和前导,和换一种形式
*/
#include<iostream>
using namespace std;
class Time
{
public:
Time(int=0,int=0,int=0);
void show_time();
void add_seconds(int);
void add_minutes(int);
void add_hours(int);
static void change24();
static void changefrom0();
private:
static bool is_24;
static bool from0;
int hour;
int minute;
int sec;
};
bool Time::is_24=true;
bool Time::from0=false;
void Time::change24()
{
is_24=!is_24;
}
void Time::changefrom0()
{
from0=!from0;
}
Time::Time(int h,int m,int s):hour(h),minute(m),sec(s)
{
/* if(hour>12&&hour<24)
is_24=true;
else
is_24=false;*/
}
void Time::show_time()
{
if(from0==false&&is_24==true)
cout<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour<10&&is_24==true)
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour>10&&is_24==true)
cout<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour>10&&is_24==false)
{
if(from0==true&&hour>12&&is_24==false)
cout<<hour%12<<":"<<minute<<":"<<sec<<"pm"<<endl;
if(from0==true&&hour<12&&is_24==false)
cout<<hour<<":"<<minute<<":"<<sec<<"am"<<endl;
}
if(from0==true&&hour<10&&is_24==false)
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<"am"<<endl;
}
void Time::add_seconds(int n=10)
{
sec=sec+n;
if(sec>60)
{
minute=minute+sec/60;
sec=sec%60;
if(minute>60)
{
hour=hour+minute/60;
minute=minute%60;
if(hour>24)
hour=hour%24;
}
}
}
void Time::add_minutes(int n=0)
{
minute=minute+n;
if(minute>60)
{
hour=hour+minute/60;
minute=minute%60;
if(hour>24)
hour=hour%24;
}
}
void Time::add_hours(int n)
{
hour=hour+n;
if(hour>24)
hour=hour%24;
}
int main()
{
Time a(23,14,25),b(8,45,6);
cout<<"24时制,不前导0:"<<endl;
cout<<"t1是";
a.show_time();
cout<<"t2是";
b.show_time();
cout<<"十小时后,切换是否前导0"<<endl;
Time::changefrom0();
cout<<"t1是";
a.add_hours(10);
a.show_time();
cout<<"t2是";
b.add_hours(10);
b.show_time();
cout<<"换一种形式:"<<endl;
Time::change24();
cout<<"t1是";
a.show_time();
cout<<"t2是";
b.show_time();
}
运行结果:
知识点总结:
静态成员应用
学习心得
学会了静态成员应用
*Copyright (c) 2014,烟台大学计算机学院
*All right reserved.
*文件名称:test.cpp
*作 者:韩双志
*完成日期:2016年4月2日
*版本号:v1.0
*
*问题描述:设计含有静态成员和成员函数的time类。静态成员是类中所有对象共有的数据,在下面的设计中,时钟要采用12小时制,还要使用24小时制,显示时,不足两位的*数字前是否要前导0,都是影响全局的设置
*输入描述:无;
*输出描述:输出24制,和前导,和换一种形式
*/
#include<iostream>
using namespace std;
class Time
{
public:
Time(int=0,int=0,int=0);
void show_time();
void add_seconds(int);
void add_minutes(int);
void add_hours(int);
static void change24();
static void changefrom0();
private:
static bool is_24;
static bool from0;
int hour;
int minute;
int sec;
};
bool Time::is_24=true;
bool Time::from0=false;
void Time::change24()
{
is_24=!is_24;
}
void Time::changefrom0()
{
from0=!from0;
}
Time::Time(int h,int m,int s):hour(h),minute(m),sec(s)
{
/* if(hour>12&&hour<24)
is_24=true;
else
is_24=false;*/
}
void Time::show_time()
{
if(from0==false&&is_24==true)
cout<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour<10&&is_24==true)
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour>10&&is_24==true)
cout<<hour<<":"<<minute<<":"<<sec<<endl;
if(from0==true&&hour>10&&is_24==false)
{
if(from0==true&&hour>12&&is_24==false)
cout<<hour%12<<":"<<minute<<":"<<sec<<"pm"<<endl;
if(from0==true&&hour<12&&is_24==false)
cout<<hour<<":"<<minute<<":"<<sec<<"am"<<endl;
}
if(from0==true&&hour<10&&is_24==false)
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<"am"<<endl;
}
void Time::add_seconds(int n=10)
{
sec=sec+n;
if(sec>60)
{
minute=minute+sec/60;
sec=sec%60;
if(minute>60)
{
hour=hour+minute/60;
minute=minute%60;
if(hour>24)
hour=hour%24;
}
}
}
void Time::add_minutes(int n=0)
{
minute=minute+n;
if(minute>60)
{
hour=hour+minute/60;
minute=minute%60;
if(hour>24)
hour=hour%24;
}
}
void Time::add_hours(int n)
{
hour=hour+n;
if(hour>24)
hour=hour%24;
}
int main()
{
Time a(23,14,25),b(8,45,6);
cout<<"24时制,不前导0:"<<endl;
cout<<"t1是";
a.show_time();
cout<<"t2是";
b.show_time();
cout<<"十小时后,切换是否前导0"<<endl;
Time::changefrom0();
cout<<"t1是";
a.add_hours(10);
a.show_time();
cout<<"t2是";
b.add_hours(10);
b.show_time();
cout<<"换一种形式:"<<endl;
Time::change24();
cout<<"t1是";
a.show_time();
cout<<"t2是";
b.show_time();
}
运行结果:
知识点总结:
静态成员应用
学习心得
学会了静态成员应用
相关文章推荐
- struts2框架之struts框架介绍
- Uva10082 WERTYU -S.B.S.
- 读《构建之法》第四章有感
- C++ 流以及文件操作
- tcp socket阻塞与非阻塞
- 三剑客之awk basic
- android 调用全局的Context
- 第六周第三项目——IP地址
- 反素数
- 第四周 项目5(1)
- leetcode---First Bad Version---二分查找
- 谈Runtime机制和使用的整体化梳理
- wikioi1214-线段覆盖
- ELK Kafka json to elk
- 那些德艺双馨的网站列表-updating
- tomcat配置文件之Server.xml
- js的全局变量和局部变量
- 关于几个优化
- HTML5性能优化与分析
- C语言switch语句必须包含default分支吗