您的位置:首页 > 其它

7.1 含有静态数据成员和成员函数的Time类

2012-04-04 12:45 435 查看
* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:     第七周 任务一                        

* 作    者:          杨森                   

* 完成日期:    2012     年    4  月   3     日

* 版 本 号:   V1.0

 

源程序:

#include <iostream>

#include<iomanip>

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小时

static void change24();  //改变静态成员is_24,在12和24时制之间转换

static void changefrom0();   //改变静态成员from0,切换是否前导0

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( )
{
if(is_24 == true)
{
if(from0 == true)
{
cout << setfill('0') << setw(2) << hour << ":" << setfill('0') << setw(2) << minute << ":" << setfill('0') << setw(2) << sec << endl;
}

else
{
cout << hour << ":" << minute << ":" << sec << endl;
}
}
else
{

char c = 'a';

if(hour > 12)
{
c = 'p';

hour = hour - 12;
}
if(from0 == true)
{
cout << setfill('0') << setw(2) << hour << ":" << setfill('0') << setw(2) << minute << ":" << setfill('0') << setw(2) << sec << "  " << c << "m" << endl;
}

else
{
cout << hour << ":" << minute << ":" << sec << endl;
}
}

}
void Time::add_seconds(int n)
{
minute = minute + ((sec + n) / 60);

sec = (sec + n) / 60;
}
void Time::add_minutes(int n)
{
hour = hour + (( minute + n) / 60);

minute = (minute + n) / 60;
}
void Time::add_hours(int n)
{
if((hour + n) < 24)
{
hour = hour + n;
}
else
{
hour = hour + n - 24;
}
}
void Time::change24()
{
if(Time::is_24 == true)
{
Time::is_24 = false;
}
}
void Time::changefrom0()
{
if(Time::from0 == false)
{
Time::from0 = true;
}
}

int main( )
{
Time t1(23,14,25),t2(8,45,6);

cout << "24时制, 不前导0:" <<endl;

cout<<"t1是:";

t1.show_time();

cout << "t2是:";

t2.show_time();

t1.add_hours(10);

t2.add_hours(10);

Time::changefrom0(); //注意此处调用静态成员

cout << "10小时后, 切换是否前导0:" <<endl;

cout<< "t1是:";

t1.show_time();

cout << "t2是:";

t2.show_time();

t1.change24();

cout << "换一种制式:" <<endl;

cout << "t1是:";

t1.show_time();

cout << "t2是:";

t2.show_time();

//system("pause");

return 0;
}


运行结果:



 

小感:就是 show_time() 函数不好搞啊···
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class 任务 c
相关文章推荐