⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 airport.h

📁 使飞机进离港航班的时间在一时间段内达到最小.
💻 H
字号:
// Airport.h: interface for the Airport class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_AIRPORT_H__A20FD48B_4641_40A2_B0E5_2714383E6201__INCLUDED_)
#define AFX_AIRPORT_H__A20FD48B_4641_40A2_B0E5_2714383E6201__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Flight.h"

class Airport   //定义机场
{
public:
	Airport();
	virtual ~Airport();  
	
	void SetFlightArr(bool f);          //生成到达航班信息

	void SetFlightArr(vector<Flight> f_arr); //根据已知到达航班生成到达航班信息
	Flight GetFlightArr(int n) const    { return flightArr[n]; }

	void SetFlightDep(bool f);          //生成出发航班信息

	void SetFlightDep(vector<Flight> f_dep);  //根据已知出发航班生成出发航班信息
	Flight GetFlightDep(int n) const    { return flightDep[n]; }

	void InitialAirport(bool f);    //随机产生机场在各个时间段的容量
	
    void SetAirport_Arr(int t,int flightCount); //设置机场某时间段的到达容量	   
	int GetAirport_Arr(int t) const { return Airport_Arr[t]; }

	void SetAirport_Dep(int t);         //设置机场某时间段的出发容量
	int GetAirport_Dep(int t) const { return Airport_Dep[t]; }

	void Set_FCFSArrFlight();    //先来先服务算法设置机场在各个时间段的到达航班
	void Set_FCFSDepFlight();    //先来先服务算法设置机场在各个时间段的出发航班

	void SetAirport_ArrFlight();           //设置机场在各个时间段的到达航班
    void GetAirport_ArrFlight(int t);      //获得机场在t时间段的到达航班

	void SetAirport_DepFlight();           //设置机场在各个时间段的出发航班
    void GetAirport_DepFlight(int t);      //获得机场在t时间段的出发航班

	void Reverse_flightArr(int startIndex,int stopIndex);   //改变到达航班容器中航班的位置
	void Reverse_flightDep(int startIndex,int StopIndex);   //改变出发航班容器中航班的位置

	void SetOptDone(bool f)  {  optDone=f; }
	bool isOptDone()  const {  return optDone; }
    void do2Opt();    //优化到达航班,通过换位使航班总的延误时间段减小

    void CountDelay_Arr();  //计算到达延误时间段和航班数
	void CountDelay_Dep();  //计算出发延误时间段和航班数
    void CountDelay();   //计算总的延误时间段数和航班数

	int GetDelayTime_Arr() const { return DelayTime_Arr; }
	int GetDelayTime_Dep() const { return DelayTime_Dep; }	

	void SetDelayTime(int t)  { DelayTime=t; }       //设置总的航班延误时间段
	int GetDelayTime() const { return DelayTime; }   //获得总的航班延误时间段

    //void CountDelayFlight_Arr();  //计算到达延误航班数
	int GetDelayFlight_Arr() const { return DelayFlight_Arr; }
	//void CountDelayFlight_Dep();  //计算出发延误航班数
	int GetDelayFlight_Dep() const { return DelayFlight_Dep; }
	//void CountDelayFlight() { DelayFlight=DelayFlight_Arr+DelayFlight_Dep; }   //计算总的延误航班数
	int GetDelayFlight() const { return DelayFlight; }  //得到总的延误航班数
	
private:
	vector<Flight> flightArr;              //存放到达航班信息
	vector<Flight> flightDep;              //存放出发航班信息
	vector<int> Airport_Arr;               //机场在各个时间段的到达容量	
	vector<int> Airport_Dep;               //机场在各个时间段的出发容量
	int DelayTime_Dep;                     //机场航班总的出发延误时间段数
	int DelayTime_Arr;                     //机场航班总的到达延误时间段数
	int DelayTime;                         //机场航班总的延误时间段数

	int DelayFlight_Dep;                   //机场总的出发延误航班数
	int DelayFlight_Arr;                   //机场总的到达延误航班数
	int DelayFlight;                       //机场总的延误航班数

	vector<Flight> Airport_ArrFlight[T];   //机场在各个时间段的到达航班
	vector<Flight> Airport_DepFlight[T];   //机场在各个时间段的出发航班

	bool optDone;	
};

#endif // !defined(AFX_AIRPORT_H__A20FD48B_4641_40A2_B0E5_2714383E6201__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -