Step.cpp in MyElevator.rar


This is an algorithm to achieve the lift, two elevators, six floors to VC 6.0...Original Link
    Sponsored links

			
#include "stdafx.h"
#include "Step.h"


bool CStep::GetHStop(CStop& stop)
{
	for(int i = 4 ; i >= 0 ; --i)
	{
		if (m_StopVector[i].m_bAlreadyHaveTask) 
		{
			stop = m_StopVector[i];
			return true;
		}
	}
	return false;
}

float CStep::GetPartTime(CStop stop , float fHeight)
{
	CStop stop1 , stop2;
	float ftime = 0.0;
	if (!GetHStop(stop1) || !GetLStop(stop2))
	{
		return 0.0;
	}
	if (stop2.GetFloor() == stop1.GetFloor())
	{
		return 0.0;
	}
	if (UP == m_status)
	{
		for(int i = stop2.GetFloor() ; i < fHeight ; ++i)
		{
			ftime += 2.0;
			if (!m_StopVector[i-1].IsEmpty())
			{
				ftime += 2.0;
			}
			if (stop.GetFloor() >= i)
			{
				break;
			}
		}
		ftime += ((int)fHeight - fHeight + 1 )/ 1.4;
		return ftime;
	}
	if (DOWN == m_status)
	{
		for(int i = stop1.GetFloor() ; i > fHeight ; --i)
		{
			ftime += 2.0;
			if (!m_StopVector[i-1].IsEmpty())
			{
				ftime += 2.0;
			}
			if (stop.GetFloor() <= i)
			{
				break;
			}
		}
		ftime += (fHeight - (int)fHeight)/ 1.4;
		return ftime;
	}
	return 0.0;
}

bool CStep::Empty()
{
	for(int i = 0 ; i < 5 ; ++i)
	{
		if (!m_StopVector[i].IsEmpty()) 
		{
			return false;
		}
	}
	return true;
}

bool CStep::CanLoad(CStop stop1 , CStop stop2)
{
	if (Empty())
	{
		return true;
	}
	else
	{
		if (stop2.GetFloor() > stop1.GetFloor() && UP == m_status)
		{
			CStop stop3;
			GetLStop(stop3);
			if (stop1.GetFloor() >= stop3.GetFloor())
			{
				return true;
			}
		}
		if (stop2.GetFloor() < stop1.GetFloor() && DOWN == m_status) 
		{
			CStop stop3;
			GetHStop(stop3);
			if (stop1.GetFloor() <= stop3.GetFloor())
			{
				return true;
			}
		}
	}
	return false;
}

float CStep::GetAllTime()
{
	float ftime = 0.0;
	CStop stop1 , stop2;
	GetHStop(stop2);
	GetLStop(stop1);
	if (!GetHStop(stop2) || !GetHStop(stop1)) 
	{
		return 0.0;
	}
	for(int i = stop1.GetFloor() ; i < stop2.GetFloor() ; ++i)
	{
		ftime += 2.0;
		if (!m_StopVector[i-1].IsEmpty())
		{
			ft			

			...
			...
			... to be continued.

  This is a preview. To get the complete source file, 
  please click here to download the whole source code package.

			
			


Project Files

    Sponsored links
NameSizeDate
 Elevator.cpp12.49 kB03-08-05 18:43
 Elevator.h790.00 B03-08-05 05:19
 MyElevator.aps35.70 kB30-07-05 08:58
 MyElevator.clw2.27 kB03-08-05 05:51
 MyElevator.cpp2.07 kB20-07-05 23:19
 MyElevator.dsp4.49 kB03-08-05 05:51
 MyElevator.dsw543.00 B20-07-05 23:19
 MyElevator.h1.34 kB20-07-05 23:19
 MyElevator.ncb121.00 kB10-07-06 09:26
 MyElevator.opt213.00 kB10-07-06 09:26
 MyElevator.plg1.81 kB10-07-06 09:24
 MyElevator.positions875.00 B03-08-05 20:28
 MyElevator.rc7.13 kB30-07-05 08:58
 MyElevatorDlg.cpp11.64 kB03-08-05 19:12
 MyElevatorDlg.h2.68 kB30-07-05 10:46
 ReadMe.txt3.57 kB20-07-05 23:19
 MyElevator.ico1.05 kB20-07-05 23:19
 MyElevator.rc2402.00 B20-07-05 23:19
 <res>0.00 B10-07-06 09:23
 Resource.h1.35 kB21-07-05 20:49
 StdAfx.cpp212.00 B20-07-05 23:19
 StdAfx.h1.03 kB20-07-05 23:19
 Step.cpp7.04 kB03-08-05 18:52
 Step.h902.00 B03-08-05 18:43
 Stop.cpp1.12 kB03-08-05 05:03
 Stop.h653.00 B03-08-05 05:15
 Stop.h.bak701.00 B03-08-05 05:02
 <MyElevator>0.00 B10-07-06 09:26
...

Related Items

    Sponsored links