项目4--静态成员应用 时间

来源:互联网 发布:mac重命名文件夹快捷键 编辑:程序博客网 时间:2024/05/04 04:48
/**程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年4月3日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:*问题分析:*算法设计:*我的程序:*/#include <iostream>using namespace std;class Time{public:    Time(int=0,int=0,int=0);    bool is_time1(int,int,int);    void set_time();    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,切换是否前导0private:    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::add_seconds(int a){    sec+=a;    while(sec>=60)    {        sec-=60;        minute+=1;    }    while(minute>=60)    {        minute-=60;        hour+=1;    }    while(hour>=24)    {        hour-=24;    }}void Time::add_minutes(int a){    minute+=a;    while(minute>=60)    {        minute-=60;        hour+=1;    }    while(hour>=24)    {        hour-=24;    }}void Time::add_hours(int a){    hour+=a;    while(hour>=24)    {        hour-=24;    }}void Time::show_time(){    int h;    if(is_24)    {        h=hour;    }    else    {        h=hour%12;    }    if (h<10&&from0) cout<<'0';    cout<<h<<':';    if(minute<10&&from0) cout<<'0';    cout<<minute<<':';    if(sec<10&&from0) cout<<'0';    cout<<sec;    if(!is_24)    {        if (hour>12)            cout<<" pm";        else            cout<<" am";    }    cout<<endl;}void Time::set_time(){    char c1,c2;    cout<<"请输入时间(格式为时:分:秒):"<<endl;    while(1)    {        cin>>hour>>c1>>minute>>c2>>sec;        if(c1!=':'||c2!=':')            cout<<"格式不正确,请重新输入:"<<endl;        else if(!is_time1(hour,minute,sec))            cout<<"时间错误,请重新输入:"<<endl;        else            break;    }}bool Time::is_time1(int h,int m,int s){    if(h<0||h>24||m<0||m>60||s<0||s>60)        return false;    else        return true;}void Time::change24(){    is_24=!is_24;}void Time::changefrom0(){    from0=!from0;}int main( ){    Time t;    int n,a,m;    t.set_time();    cout<<"1 增加秒 2 增加分钟"<<endl;    cout<<"3 增加小时"<<endl;    cout<<"请输入你的选择:";    cin>>n;    switch(n)    {    case 1:        cout<<"请输入你要增加的秒数:";        cin>>a;        t.add_seconds(a);        break;    case 2:        cout<<"请输入你要增加的分钟数:";        cin>>a;        t.add_minutes(a);        break;    case 3:        cout<<"请输入你要增加的小时数:";        cin>>a;        t.add_hours(a);        break;    case 0:        cout<<"欢迎使用:"<<endl;        break;    default:        cout<<"输入有误:"<<endl;        break;    }    Time::changefrom0();    while(1)    {        cout<<"1  24时制, 不前导  2  12时制, 前导"<<endl;        cout<<"3  12时制, 不前导  4  退出"<<endl;        cout<<"请输入你的选择:";        cin>>m;        while(m==4)        {            return 0;        }        switch(m)        {        case 1:            t.changefrom0();            t.show_time();            break;        case 2:            t.changefrom0();            t.change24();            t.show_time();            break;        case 3:            t.changefrom0();            t.show_time();            break;        default:            break;        }    }    return 0;}


结果展示:

心得体会:现在就一个感觉--------晕。

0 0