练习写C++代码(100)--实现简单的时钟类4

经过更改之后的代码文件如下,基本没有改动,只是分开几个文件,以及写了一个makefile。

这样只要在当前目录下输入指令 make就可以编译了。


///clock.h

#ifndef _CLOCK_H
#define _CLOCK_H

#include
    
    
     
     
using namespace std;

///define class Clock
class Clock
{
public:
	Clock();
	Clock(int, int);
	~Clock();
	
	///test valid
	bool test();
        bool test(int h, int m);
	///show the time
	void showTime();
	
	friend class People;
	///overload operator
	friend Clock operator-(const Clock& c1, const Clock& c2);
	friend ostream& operator<<(ostream& os, const Clock& c);

private:
	int hour;
	int minutes;	
};

class People
{
public:
	///ctor
	People();
	People(int, int);
	~People();

	///look the current time
	void lookTime();
	///set a time for meetting
	void setMeetingTime(int h, int m);
	///ask how long to meeting
	Clock howLong();

private:
	///current time
	Clock time;
	///meeting time
	Clock timing;
};

#endif
///clock.cpp

#include "clock.h"
#include
     
     
      
      
using namespace std;
///ctor
Clock::Clock()
{

}

Clock::Clock(int h, int m)
{
	hour = h;
	minutes = m;
}

Clock::~Clock()
{

}
///test valid
bool Clock::test()
{
	if (hour > 23 || hour < 0 || minutes > 59 || minutes < 0)
		return false;

	return true;
}

bool test(int h, int m)
{
	if (h > 23 || h < 0 || m > 59 || m < 0)
		return false;

	return true;
}
///show time
void Clock::showTime()
{
	cout<<"The time is:"<
      
      
       
       <<"h"<
       
       
        
        <<"m"<
        
        
          = t2) temp = t1 - t2; else temp = t1 + 24 * 60 -t2; return Clock(temp / 60, temp % 60); } ostream& operator<<(ostream& os, const Clock& c) { os< 
         
           <<"h"< 
          
            <<"m"; return os; } People::People() { time.hour = time.minutes = timing.hour = timing.minutes = 0; } People::People(int h, int m) { time.hour = h; time.minutes = m; timing.hour = timing.minutes = 0; } People::~People() { } ///look the current time void People::lookTime() { time.showTime(); } ///set a time for meetting void People::setMeetingTime(int h, int m) { timing.hour = h; timing.minutes = m; } ///ask how long to meeting Clock People::howLong() { return (timing - time); } ///main.cpp #include 
           
             #include 
            
              #include 
             
               #include"clock.h" using namespace std; int main() { ///create a random srand((int)time(0)); int num = rand() % (24 * 60); People people(num / 60, num % 60); people.lookTime(); cout<<"Please enter your meeting time(two integers):"; int h, m; cin>>h>>m; people.setMeetingTime(h, m); Clock c = people.howLong(); cout<<"There are "< 
              
                <<" to meeting."< 
                
               
              
             
            
           
          
        
       
       
      
      
     
     
    
    



下一次学习用C++进行普通文件的读写。试着学习读写压缩文件 *.zip。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值