Как правильно извлечь числа из текстового файла в моей программе очереди?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как правильно извлечь числа из текстового файла в моей программе очереди?

Сообщение Anonymous »

Я моделирую автобусную остановку, используя очереди, извлекаемые из текстового файла. Однако мои результаты неверны.
Мое задание:
Написать программу, которая имитирует очередь ожидания на автобусной остановке, используя структуру данных очереди. Каждая входная
запись состоит из трех элементов: кода («B» для прибытия автобуса, «P» для прибытия людей), времени и числа
numPeople, представляющего количество людей в автобусах. Автобусы забирают людей в порядке их прибытия,
каждый автобус отправляется, как только он достигает своей вместимости. Когда запись «B» обработана, выведите: ВРЕМЯ xxx.
АВТОБУС ПРИЕЗЖАЕТ, ЗАБИРАЕТ yyy ЛЮДЕЙ. zzz ОСТАТЬСЯ. Когда обрабатывается запись «P», выведите: TIME xxx. xxx
ЛЮДИ ПРИБЫЛИ, xxx ЛЮДИ СЕЙЧАС В ОЧЕРЕДИ.
Вывод должен быть:
Time 0900. 15 PEOPLE ARRIVE, 15 PEOPLE NOW IN LINE.
Time 0910. 15 PEOPLE ARRIVE, 30 PEOPLE NOW IN LINE.
Time 0915. BUS ARRIVES, PICKS UP 20. 10 REMAIN.
Time 0920. 25 PEOPLE ARRIVE, 35 PEOPLE NOW IN LINE.
Time 0930. BUS ARRIVES, PICKS UP 50. 0 REMAIN.
Time 0945. 20 PEOPLE ARRIVE, 20 PEOPLE NOW IN LINE.
Time 0955. 25 PEOPLE ARRIVE, 45 PEOPLE NOW IN LINE.
Time 1005. BUS ARRIVES, PICKS UP 30. 15 REMAIN.
Time 1015. BUS ARRIVES, PICKS UP 10. 5 REMAIN.
Time 1030. 25 PEOPLE ARRIVE, 30 PEOPLE NOW IN LINE.
Time 1035. BUS ARRIVES, PICKS UP 30. 0 REMAIN.
Bus stop records complete.

Текстовый файл:
P 0900 15
P 0910 15
B 0915 20
P 0920 25
B 0930 50
P 0945 20
P 0955 25
B 1005 30
B 1015 10
P 1030 25
B 1035 30
B 1045 30

Мой код выдает неверный результат. Производит:
TIME 0900. 15 PEOPLE ARRIVE, 15 PEOPLE NOW IN LINE.
TIME 0910. 15 PEOPLE ARRIVE, 15 PEOPLE NOW IN LINE.
TIME 900. BUS ARRIVES, PICKS UP 15. 0 REMAIN.
TIME 910. BUS ARRIVES, PICKS UP 5. 10 REMAIN.
TIME 0920. 25 PEOPLE ARRIVE, 25 PEOPLE NOW IN LINE.
TIME 910. BUS ARRIVES, PICKS UP 10. 0 REMAIN.
TIME 920. BUS ARRIVES, PICKS UP 25. 0 REMAIN.
TIME 0945. 20 PEOPLE ARRIVE, 20 PEOPLE NOW IN LINE.
TIME 0955. 25 PEOPLE ARRIVE, 25 PEOPLE NOW IN LINE.
TIME 945. BUS ARRIVES, PICKS UP 20. 0 REMAIN.
TIME 955. BUS ARRIVES, PICKS UP 10. 15 REMAIN.
TIME 955. BUS ARRIVES, PICKS UP 10. 5 REMAIN.
TIME 1030. 25 PEOPLE ARRIVE, 25 PEOPLE NOW IN LINE.
TIME 955. BUS ARRIVES, PICKS UP 5. 0 REMAIN.
TIME 1030. BUS ARRIVES, PICKS UP 25. 0 REMAIN.
Bus stop records complete.

//Driver.cpp

#include
#include
#include "BusStopQueue.h"

int main() {
ifstream inputFile("input.txt");
if (!inputFile) {
cerr code >> time >> numPeople) {
if (code == 'B') {
dequeue(busQueue, numPeople);
}
else if (code == 'P') {
enqueue(busQueue, code, time, numPeople);
cout

Подробнее здесь: https://stackoverflow.com/questions/782 ... ue-program
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»