내 숙제는 묻는다 : 설정C++ 사용하여 STL : 스택과 큐
어느 날의 데이터가 퍼스트 클래스에 파일 lot.txt에서 사용할 수 있습니다.
도착/출발 코드 : 문자 (A 또는 D) 라이선스 문자열 (. 예 BOSS) 시간 정수 값 군사 시간
인 Earlybird 630 노동자 700 CEO 730 서기 730 관리자를 나타내는 800 VP 900 D 서기 930 구매자 1,000 D의 CEO 1,000 D의 인 Earlybird 1,030 D WORKER 1,100 청소부 1,100 D의 MANAGER 1,130
차량이 라이센스와 도착 시간을 포함하는 구조체로서 기록되어야한다. 단순화를 위해, 시간은 군대 시간을 나타내는 정수 이 될 것입니다. C++ 문자열 클래스를 포함하십시오.
구조체 Vehicle {string license; // 라이센스 값 int 도착; // 군사 시간 도착 (0 - 2359)};데이터 파일의 라인을 읽고 주차장 내외부에있는 차량 의 움직임을 다시 만듭니다. 차량은 체류 기간 동안 시간당 $ 8.00로 청구됩니다. 부분 시간은 반올림됩니다. 너 은 많은 사람들이 출발하는 자동차의 소유자 만이 도착한다고 가정 할 수 있습니다. . 주말에 많은 차량을 신고하고 요금을 합산합니다. 강의에서 템플릿 스택과 대기열 클래스 인 을 사용하십시오. 당신이보고해야 처리 된 각 도착
: 라이센스 XXXXXX와 XXXX 또는 자동차에 주차 라이센스 XXXXXX 와 자동차가 XXXX에서 외면했다 - 특별 가득! 각각 신고해야 처리 출발: 라이센스 XXXXXX와 자동차가 나는 부분을 차 잎에 문제가있어 $ XX.XX
지불 XXXX에서 왼쪽으로. 나는 스택과 큐에 익숙하지 않지만 스택을 이해하고 스택은 LIFO이고 큐는 FIFO이다. 여기
내가 무엇을 가지고 : 이struct Vehicle
{
char ad; // Arrival departure char
string license; // license value
int arrival; // arrival in military time
};
int main()
{
ifstream fin; // declare input file stream object
fin.open ("lot.txt"); //open data text
stack<string> stack; // STL Stack object
queue<string> q; // STL Queue object
Vehicle v; // Object of struct Vehicle
while(!fin.fail()){
fin >> v.ad >> v.license >> v.arrival;
if (v.ad == 'A' && stack.size() < 5){
stack.push(v.license);
cout << endl << "Car with license " << v.license << " parked at " << v.arrival;
}else if(v.ad == 'A' && stack.size() >= 5){
cout << endl << "Car with license " << v.license << " turned away at " << v.arrival << " - LOT FULL";
}else if(v.ad == 'D'){
string departingcar = v.license;
for(int i=0; i<stack.size(); i++)
//am I on the right track with a for loop?
q.push(v.license);
stack.pop();
q.pop();
if(departingcar != v.license){
stack.push(v.license);
}
}
}
}
return 0;
}
나는 아무 문제의 차량을 읽을 수 있지만, 스택에서 차량을 제거 큐에 넣어, 그리고 다음에 그들을 다시 삽입해야 할 때 스택, 나는 길을 잃는다.
교수님이 정말로 'lol.txt'와 같은 이름을 사용합니까? –
'lot.txt' 여야합니다. – Nick