U E D R , A S I H C RSS

Bus Simulation/��

�단 하긴 했는� �게 아닌것 같네요.
특히 앞차가 사람� 태우는 �안 그 다� 버스가 오는 걸
어떻게 구현할 지가 참 막막합니다...
  • 열심히 í• ë�¼ê³  한거 같지만 문제ì�˜ ì�˜ë�„ì—�서 ë²—ì–´ 났ì�Œ. ì�´ 문제는 실제 ê°� ì�´ë²¤íŠ¸ê°€ ì�¼ì–´ë‚˜ë©´ 다른 ì¡°ê±´ì—�ë�„ 긴밀하게 ì˜�í–¥ì�„ 주고 받아야 제대로 ë�Œì•„ 간다. 버스가 ì�´ë�™í• ë•Œì™€ 버스 정류장ì—� ë�„착할때 다른 ë�°ì�´í„°ë“¤ì—�게 어떠한 ì˜�í–¥ì�„ ë�¼ì¹˜ëŠ”ì§€ì—� 대해서 ìƒ�ê°�í•´ 보아야 한다. 즉 ê°�ê°�ì�˜ ë�°ì�´í„°ì—� ì˜�í–¥ì�„ ë�¼ì¹˜ëŠ” ì�´ë²¤íŠ¸ê°€ 어떠한 ìƒ�황ì—� ë°œìƒ�하는가를 ìƒ�ê°�í•´ë³´ê³  ê·¸ ìƒ�황ì—�서 ì˜�í–¥ì�„ ë�¼ì¹˜ëŠ” ë�°ì�´í„°ì—� 어떠한 ë°©ì‹�으로 ê·¸ ì˜�í–¥ì�„ ë°˜ì˜�í•  것ì�¸ê°€ë�„ ìƒ�ê°�í•´ë³¼ 문제- ìƒ�협

~cpp 
#include<iostream.h>
#define road 300 //길� 한바퀴 순회하는� 300킬로미터. 즉 5시간 걸린다.


class Bus//시� 60km/h-->분� 1km/m으로 정함.
{
public:
	int bus_loc;//버스� 위치
	//�정한 ��로 �로위를 지나다님
	//버스정류장�서 사람들� 타는 �안 멈춤 2분 걸림.
	void move(int x_min);	
	//최종 결과를 나타낸다
	void show(int a);
};

void Bus::move(int x_min)
{
	for(;;)
	{
		if(x_min<=30){
			bus_loc=bus_loc+x_min;//분당 1킬로를 가므로 x분 후� 위치는 x킬로 뒤
			x_min=0;//0으로 초기화. 다� 계산� ��한 값� 들어가지 않��.
			break;
		}
		if(x_min>30){
			x_min=x_min-30;
			bus_loc=bus_loc+30;
		}
		if(30<bus_loc&&bus_loc<=60)
			bus_loc=bus_loc-2;
		else if(60<bus_loc&&bus_loc<=90)
			bus_loc=bus_loc-4;
		else if(90<bus_loc&&bus_loc<=120)
			bus_loc=bus_loc-6;
		else if(120<bus_loc&&bus_loc<=150)
			bus_loc=bus_loc-8;
		else if(150<bus_loc&&bus_loc<=180)
			bus_loc=bus_loc-10;
		else if(180<bus_loc&&bus_loc<=210)
			bus_loc=bus_loc-12;
		else if(240<bus_loc&&bus_loc<=270)
			bus_loc=bus_loc-14;
		else if(270<bus_loc&&bus_loc<=300)
			bus_loc=bus_loc-16;

		if(bus_loc>road){//300킬로를 �면 다시 ��으로
			bus_loc=bus_loc-road;
		}
	}
	
}


void Bus::show(int a)
{
	if(bus_loc>0){	
		cout<<a+1<<"번째로 ìœë°œí•œ 버스ì�˜ 위치는 시작ì �으로부터 "<<bus_loc<<"km"<<endl;
	}
	else
		cout<<a+1<<"번째 버스는 ì•„ì§� ìœë°œí•˜ì§€ 않았습니다."<<endl;
}	

void main()
{
	int time=0;
	int i;
	cout<<"===============Bus Simulation=================="<<endl;
	cout<<"몇 분후� 위치를 보시겠습니까?";
	cin>>time;
	Bus bus[10];//버스 10개 �성
	bus[0].bus_loc=0;//10분 간격으로 떠난다
	bus[1].bus_loc=-10;
	bus[2].bus_loc=-20;
	bus[3].bus_loc=-30;
	bus[4].bus_loc=-40;
	bus[5].bus_loc=-50;
	bus[6].bus_loc=-60;
	bus[7].bus_loc=-70;
	bus[8].bus_loc=-80;
	bus[9].bus_loc=-90;
	for(i=0;i<10;i++)
	{
		bus[i].move(time);

	}
	cout<<"____________Result of Bus Simulation___________"<<endl;
	for(i=0;i<10;i++)
		bus[i].show(i);
}

작성�: Yggdrasil


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:39
Processing time 0.0061 sec