(第三周任务三)安要求增加类的功能

本文介绍了一个名为Time的类的设计,该类用于处理时间的设置、显示及增减操作。通过内联函数实现时间的秒、分钟和小时的增加,并提供了增加特定秒数、分钟数和小时数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 u
02. #include <iostream> 
03.using namespace std;  
04.        
05.int sec2,minute2,hour2,sec1,minute1,hour1;   
06.      
07.class Time        
08.{        
09.public:        
10.          
11.    void set_time( );  
12.    void show_time( );   
13.    inline void add_a_sec(); //增加1秒钟    
14.    inline void add_a_minute(); //增加1分钟   
15.    inline void add_an_hour(); //增加1小时   
16.    void add_seconds(int); //增加n秒钟     
17.    void add_minutes(int); //增加n分钟     
18.    void add_hours(int); //增加n小时           
19.          
20.private:         
21.    bool is_time(int, int, int);        
22.    int hour;        
23.    int minute;        
24.    int sec;      
25.};        
26.      
27.      
28.int main( )        
29.{        
30.    Time t1;      
31.    t1.set_time( );           
32.    t1.show_time( );        
33.    t1.add_a_sec();  //增加1秒钟          
34.    cout<<"增加一秒后的时间为:";        
35.    t1.show_time( );        
36.    t1.add_a_minute(); //增加1分钟         
37.    cout<<"增加一分钟后的时间为:";        
38.    t1.show_time( );        
39.    t1.add_an_hour(); //增加1小时        
40.    cout<<"增加一小时后的时间为:";        
41.    t1.show_time( );        
42.    cout<<"您想增加多少秒钟?请输入时间:";         
43.    cin>>sec2;        
44.    t1.add_seconds(sec2); //增加n秒钟         
45.    cout<<"增加"<<sec2<<"秒后的时间为:";        
46.    t1.show_time( );        
47.    cout<<"您想增加多少分钟?请输入时间:";         
48.    cin>>minute2;         
49.    t1.add_minutes(minute2); //增加n分钟        
50.    cout<<"增加"<<minute2<<"分钟后的时间为:";        
51.    t1.show_time( );         
52.    cout<<"您想增加多少小时?请输入时间:";         
53.    cin>>hour2;         
54.    t1.add_hours(hour2); //增加n小时         
55.    cout<<"增加"<<hour2<<"小时后的时间为:";        
56.    t1.show_time( );        
57.    system("PAUSE");        
58.    return 0;        
59.}        
60.      
61.void Time::set_time( )         
62.{        
63.    char c1,c2;        
64.    cout<<"请输入时间(格式hh:mm:ss)";        
65.    while(1)        
66.    {        
67.        cin>>hour>>c1>>minute>>c2>>sec;        
68.        hour1=hour;        
69.        minute1=minute;        
70.        sec1=sec;        
71.        if(c1!=':'||c2!=':')        
72.            cout<<"格式不正确,请重新输入"<<endl;        
73.        else if (!is_time(hour,minute,sec))        
74.            cout<<"时间非法,请重新输入"<<endl;        
75.        else         
76.            break;        
77.    }        
78.}        
79.      
80.void Time::show_time( )              
81.{        
82.    cout<<hour<<":"<<minute<<":"<<sec<<endl;        
83.}        
84.      
85.bool Time::is_time(int h,int m, int s)        
86.{        
87.    if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)        
88.        return false;        
89.    return true;        
90.}        
91.      
92.inline void Time::add_a_sec()  //增加1秒钟           
93.{      
94.  add_seconds(1);  
95.      
96.        return;        
97.}        
98.      
99.inline void Time::add_a_minute() //增加1分钟           
100.{     
101.    add_minutes(1);    
102.        return;        
103.}        
104.      
105.inline void Time::add_an_hour() //增加1小时           
106.{        
107.    add_hours(1);    
108.    return;        
109.}        
110.      
111.void Time::add_seconds(int sec2)//增加n秒钟           
112.{         
113.    sec=sec1;        
114.    minute=minute1;        
115.    hour=hour1;        
116.    sec=sec+sec2;       
117.    if(sec>60)      
118.    {      
119.        sec=sec%60;      
120.        minute=minute+sec/60;      
121.    }      
122.    if(minute>60)      
123.    {       
124.        minute=minute%60;      
125.        hour=hour+minute/60;          
126.    }                               
127.    if(hour>23)      
128.    {      
129.        hour=hour-24;      
130.    }      
131.          
132.    return;        
133.}   
134.void Time::add_minutes(int minute2) //增加n分钟           
135.{       
136.    sec=sec1;        
137.    minute=minute1;        
138.    hour=hour1;        
139.    minute=minute+minute2;        
140.    if(minute>60)      
141.    {    
142.        minute=minute%60;      
143.        hour=hour+minute/60;              
144.    }                                   
145.    if(hour>23)      
146.    {      
147.        hour=hour-24;      
148.    }      
149.    return;        
150.}        
151.      
152.void Time::add_hours(int hour2) //增加n小时           
153.{        
154.    hour=hour1;        
155.    sec=sec1;        
156.    minute=minute1;        
157.    hour=hour+hour2;      
158.    if(hour>23)      
159.    {      
160.        hour=hour-24;      
161.    }      
162.    return;  
163.}

sing namespace std;  
  • class Time  
  • {  
  • public:  
  •     void set_time( );     
  •     void show_time( );    
  • private:   
  •     bool is_time(intintint);  
  •     int hour;  
  •     int minute;  
  •     int sec;  
  • };  
  •   
  • int main( )  
  • {  
  •     Time t1;    
  •     Time &t2=t1;  
  •     t1.set_time( );     
  •     t2.show_time( );  
  •     return 0;  
  • }  
  •   
  • 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<<endl;  
  • }  
  •   
  • bool Time::is_time(int h,int m, int s)  
  • {  
  •     if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)  
  •         return false;  
  •     return true;  
  • }  
  • 要求:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。
  • add_a_sec() //增加1秒钟
  • add_a_minute() //增加1分钟
  • add_an_hour() //增加1小时
  • add_seconds(int) //增加n秒钟
  • add_minutes(int) //增加n分钟
    01.#include <iostream>   
    02.  
    03.using namespace std;  
    04.        
    05.int sec2,minute2,hour2,sec1,minute1,hour1;   
    06.      
    07.class Time        
    08.{        
    09.public:        
    10.          
    11.    void set_time( );  
    12.    void show_time( );   
    13.    inline void add_a_sec(); //增加1秒钟    
    14.    inline void add_a_minute(); //增加1分钟   
    15.    inline void add_an_hour(); //增加1小时   
    16.    void add_seconds(int); //增加n秒钟     
    17.    void add_minutes(int); //增加n分钟     
    18.    void add_hours(int); //增加n小时           
    19.          
    20.private:         
    21.    bool is_time(int, int, int);        
    22.    int hour;        
    23.    int minute;        
    24.    int sec;      
    25.};        
    26.      
    27.      
    28.int main( )        
    29.{        
    30.    Time t1;      
    31.    t1.set_time( );           
    32.    t1.show_time( );        
    33.    t1.add_a_sec();  //增加1秒钟          
    34.    cout<<"增加一秒后的时间为:";        
    35.    t1.show_time( );        
    36.    t1.add_a_minute(); //增加1分钟         
    37.    cout<<"增加一分钟后的时间为:";        
    38.    t1.show_time( );        
    39.    t1.add_an_hour(); //增加1小时        
    40.    cout<<"增加一小时后的时间为:";        
    41.    t1.show_time( );        
    42.    cout<<"您想增加多少秒钟?请输入时间:";         
    43.    cin>>sec2;        
    44.    t1.add_seconds(sec2); //增加n秒钟         
    45.    cout<<"增加"<<sec2<<"秒后的时间为:";        
    46.    t1.show_time( );        
    47.    cout<<"您想增加多少分钟?请输入时间:";         
    48.    cin>>minute2;         
    49.    t1.add_minutes(minute2); //增加n分钟        
    50.    cout<<"增加"<<minute2<<"分钟后的时间为:";        
    51.    t1.show_time( );         
    52.    cout<<"您想增加多少小时?请输入时间:";         
    53.    cin>>hour2;         
    54.    t1.add_hours(hour2); //增加n小时         
    55.    cout<<"增加"<<hour2<<"小时后的时间为:";        
    56.    t1.show_time( );        
    57.    system("PAUSE");        
    58.    return 0;        
    59.}        
    60.      
    61.void Time::set_time( )         
    62.{        
    63.    char c1,c2;        
    64.    cout<<"请输入时间(格式hh:mm:ss)";        
    65.    while(1)        
    66.    {        
    67.        cin>>hour>>c1>>minute>>c2>>sec;        
    68.        hour1=hour;        
    69.        minute1=minute;        
    70.        sec1=sec;        
    71.        if(c1!=':'||c2!=':')        
    72.            cout<<"格式不正确,请重新输入"<<endl;        
    73.        else if (!is_time(hour,minute,sec))        
    74.            cout<<"时间非法,请重新输入"<<endl;        
    75.        else         
    76.            break;        
    77.    }        
    78.}        
    79.      
    80.void Time::show_time( )              
    81.{        
    82.    cout<<hour<<":"<<minute<<":"<<sec<<endl;        
    83.}        
    84.      
    85.bool Time::is_time(int h,int m, int s)        
    86.{        
    87.    if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)        
    88.        return false;        
    89.    return true;        
    90.}        
    91.      
    92.inline void Time::add_a_sec()  //增加1秒钟           
    93.{      
    94.  add_seconds(1);  
    95.      
    96.        return;        
    97.}        
    98.      
    99.inline void Time::add_a_minute() //增加1分钟           
    100.{     
    101.    add_minutes(1);    
    102.        return;        
    103.}        
    104.      
    105.inline void Time::add_an_hour() //增加1小时           
    106.{        
    107.    add_hours(1);    
    108.    return;        
    109.}        
    110.      
    111.void Time::add_seconds(int sec2)//增加n秒钟           
    112.{         
    113.    sec=sec1;        
    114.    minute=minute1;        
    115.    hour=hour1;        
    116.    sec=sec+sec2;       
    117.    if(sec>60)      
    118.    {      
    119.        sec=sec%60;      
    120.        minute=minute+sec/60;      
    121.    }      
    122.    if(minute>60)      
    123.    {       
    124.        minute=minute%60;      
    125.        hour=hour+minute/60;          
    126.    }                               
    127.    if(hour>23)      
    128.    {      
    129.        hour=hour-24;      
    130.    }      
    131.          
    132.    return;        
    133.}   
    134.void Time::add_minutes(int minute2) //增加n分钟           
    135.{       
    136.    sec=sec1;        
    137.    minute=minute1;        
    138.    hour=hour1;        
    139.    minute=minute+minute2;        
    140.    if(minute>60)      
    141.    {    
    142.        minute=minute%60;      
    143.        hour=hour+minute/60;              
    144.    }                                   
    145.    if(hour>23)      
    146.    {      
    147.        hour=hour-24;      
    148.    }      
    149.    return;        
    150.}        
    151.      
    152.void Time::add_hours(int hour2) //增加n小时           
    153.{        
    154.    hour=hour1;        
    155.    sec=sec1;        
    156.    minute=minute1;        
    157.    hour=hour+hour2;      
    158.    if(hour>23)      
    159.    {      
    160.        hour=hour-24;      
    161.    }      
    162.    return;  
    163.}  

  • add_hours(int) //增加n小时提示:要考虑增加后超出取值范围的情形
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值