第四周任务二(多文件组织项目)

本文介绍了一个使用C++实现的时间类项目,通过多个文件进行组织,包括主函数文件main.cpp、类定义文件mytime.cpp和头文件mytime.h。项目实现了时间的设置、显示及增减操作。

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

/** (程序头部注释开始) 
* 程序的版权和版本声明部分 
* Copyright (c) 2011, 烟台大学计算机学院学生  
* All rights reserved. 
* 文件名称:   main.cpp mytime.cpp mytime.h                            
* 作    者:    计114-4 冯珍珍  
* 完成日期:    2012 年  3  月  13  日 
* 版 本 号:          V 110
 
* 对任务及求解方法的描述部分 
* 输入描述: 利用多文件组织项目 
* 问题描述: 将不同性质的代码放在几个不同的文件中进行编译 
* 程序输出: 按要求输出 
* mytime.h:将一些函数的声明或是类的定义放在头文件中进行预处理。 
* main.cpp:主函数存放的文件,这样将主函数与其他函数分开,避免了函数的混乱。 
* mytime.cpp:定义函数,将声明的函数在此文件中定义,更具条例性。容易查找。 
* 程序头部的注释结束 
*/  
//main.cpp          

#include <iostream>   
#include "mytime.h"     //头文件包含
using namespace std;  
  
int main( )  
{  
 Time t1;  
 Time &t2=t1;
 t1.set_time( );
 t2.show_time( );
 int s,m,h;
 cout<<"请输入改变秒,分,时:"<<endl;
 cin >> s >> m >> h;
    t1.add_seconds( s); 
    t1.add_minutes( m);
    t1.add_hours( h);
    t2.show_time( );

    return 0;  
}  
  

//mytime.cpp        //对类函数进行定义

#include <iostream>
#include "mytime.h"
using namespace std;
void Time::set_time( ) 
{
 char c1,c2;
 cout<<"请输入时间(格式hh:mm:ss)"<<endl;
 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;
}
void Time::add_seconds(int n) //增加n秒钟
 {
  while(n)
  {
   add_a_sec();
   --n;
  }
 }
void Time::add_minutes(int n) //增加n分钟
{
  while(n)
  {
   add_a_minute();
       --n;
  }
}


void Time::add_hours(int n) //增加n小时
{
  while(n)
  {
    add_an_hour();
    --n;
  }
}

//mytime.h             //对类进行声明,且包括对内置函数的定义

 class Time  
{  
public:  
    void set_time( );  
    void show_time( );  
    inline void add_a_sec(); //增加1 秒钟      
    inline void add_a_minute(); //增加1 分钟   
    inline void add_an_hour(); //增加1 小时   
    void add_seconds(int); //增加n 秒钟   
    void add_minutes(int); //增加n 分钟   
    void add_hours(int); //增加n 小时   
private:  
    bool is_time(int, int, int);  
    int hour;  
    int minute;  
    int sec;  
};  
inline void Time::add_a_sec()  
{  
    ++sec;  
      
    if (!is_time(hour, minute, sec))  
    {  
        sec = 0;  
        add_a_minute();  
    }  
}  
inline void Time::add_a_minute()  
{  
    ++minute;  
  
    if (!is_time(hour, minute, sec))  
    {  
        minute = 0;  
        add_an_hour();  
    }  
}  
inline void Time::add_an_hour()  
{  
    ++hour;  
  
    if (!is_time(hour, minute, sec))  
    {  
        hour = 0;  
    }  
}  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值