第四周实验报告(任务2)

  【题目】 针对第3周任务3 ,利用多文件组织项目。其中,项目包括3个文件:
主文件: main.cpp,用于定义main()函数
头文件: mytime.h,头文件
类定义文件: mytime.cpp,用于定义类Time
要求:
(1)如果原任务的设计存在问题,要改正过来;
(2)在报告中逐个文件进行说明,在报告最后要就多文档组织提出个人的观点。

【题目说明】

在软件工程中,一般采用多个文件组成一个项目,其中的好处多多(参考有关资料,深入领会)。所以需要掌握“一个项目,多个文件”的组织形式。要点是:

(1)类声明放在一个.h文件中;

(2)类中的成员函数的实现放在一个.cpp文件中,需要#include“xxx.h”

(3)对类的调用放在另外的.cpp文件中

time.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;
};
void Time::add_a_sec()
{
    ++sec;

	if(sec > 59)

		add_a_minute();

}
void Time::add_a_minute()
{
    ++minute;

	if(minute > 59)

		add_an_hour();

}

void Time::add_an_hour()
{
    ++hour;

	if(hour > 23)

		hour = 0;         //到第二天
}


main.cpp部分

#include<iostream>

#include"time.h"

using namespace std;

int main()
{
	Time t1;

	Time &t2 = t1;

	t1.set_time();

	cout << "现在时间:";

	t2.show_time();

	t1.add_a_sec();

	cout << "增加1秒后:";

	t2.show_time();

	t1.add_a_minute();

	cout << "增加1分后:";

	t2.show_time();

	t1.add_an_hour();

	cout << "增加一小时后:";

	t2.show_time();

	t1.add_seconds(125);

	cout << "增加125秒后:" ;

	t2.show_time();

	t1.add_minutes(75);

	cout << "增加75分后:";

	t2.show_time();

	t1.add_hours(32);

	cout << "增加32小时后:";

	t2.show_time();

	return 0;
}

time.cpp部分

 

#include<iostream>

#include"time.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)
{
	sec+=n;  
	
    if (sec>59)         
    {  
        add_minutes(sec/60);  
		
        sec = sec % 60;                 
    }  
}  
  
void Time::add_minutes(int n)   
{  
    minute+=n;  

    if (minute>59)      
    { 
		add_hours(minute/60);

		minute = minute % 60;
    }  
}  
  
void Time::add_hours(int n)   
{  
    hour+=n;  

    if (hour>23)  

        hour = hour % 24;          
}  


运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值