Форум программистов, компьютерный форум CyberForum.ru

Ошибка в программе, где создается шаблон класса "стек" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, является ли периодической последовательностью строка символов http://www.cyberforum.ru/cpp-beginners/thread293561.html
Определить, является ли периодической последовательностью строка символов A1 A2 ... AN, т.е. имеет ли она вид d d ... d, где d - некоторая подпоследовательность символов.
C++ Среди 13 монет есть одна отличающаяся по весу, за 3 взвешивания на чашечных весах найти ее Известно, что среди 13 монет есть одна отличающаяся по весу (фальшивая - тяжелее она или легче – неизвестно). За 3 взвешивания на чашечных весах найти эту монету http://www.cyberforum.ru/cpp-beginners/thread293559.html
C++ соединение двух массивов
здравствуйте! есть задача: даны два неубывающих массива x и y. найти их соединение, то есть неубывающий массив z, содержащий их общие элементы, причем каждый элемент должен входить в массив z столько раз, сколько он входит в общей сложности в массивах x и y. написал код, вроде бы все правильно, но не работает :(: #include <stdio.h> #include <conio.h> #include <iostream.h> using namespace...
C++ Исключения:: вопрос
Прошу консультации по теоретическому вопросу. Фрагмент кода #include <cstdlib> #include <iostream> #include <math.h> #include <time.h> using namespace std; #include <windows.h>
C++ шестнадцатеричной системы в двоичную и наоборот. http://www.cyberforum.ru/cpp-beginners/thread293540.html
Разработка программы перевода чисел из шестнадцатеричной системы в двоичную и наоборот.
C++ С++ проверка аргументов Подскажите код для проверки аргументов командной строки на входе программы. подробнее

Показать сообщение отдельно
systemofadown
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 16
13.05.2011, 14:56     Ошибка в программе, где создается шаблон класса "стек"
Задача:Гаражная стоянка имеет одну стояночную полосу, причем единственный въезд и единственный выезд находятся в одном конце полосы. Если владелец автомашины приходит забрать свой автомобиль, который не является ближайшим к выходу, то все автомашины, загораживающие проезд, удаляются, машина данного владельца выводится со стоянки, а другие машины возвращаются на стоянку в исходном порядке.

Написать программу, которая моделирует процесс прибытия и отъезда машин. Прибытие или отъезд автомашины задается командной строкой, которая содержит признак прибытия или отъезда и номер машины. Программа должна выводить сообщение при прибытии или выезде любой машины. При выезде автомашины со стоянки сообщение должно содержать число случаев, когда машина удалялась со стоянки для обеспечения выезда других автомобилей.
Ошибка при удалении машины либо при выводе стека после удаления машины. Номера машин могут содержать и цифры и буквы(английские).
Помогите,пожалуйста.
код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
#include <stack>
using namespace std;
// Меню
void menu()
{setlocale(LC_ALL,"Russian");
cout<<"0: Выгрузить стек на дисплей"<<endl;
cout<<"1: Добавить машину в стек"<<endl;
cout<<"2: Удалить машину из стека"<<endl;
cout<<"3: Выход (Exit)"<<endl;
cout<<"Сделайте выбор: ";}
int main()
{setlocale(LC_ALL,"Russian");
int n=0,i,k,kol;
string num, numdel;
stack<string> mystack;// Номер машины
stack<string> temp;// Дополнительный стек (выгружаем номера)
stack<int> mystack2;// Кол-во раз, которое машины удалялась со стоянки
stack<int> temp2;// Дополнительный стек (выгружаем кол-во раз)
while (n<=0)
{cout<<"Введите кол-во автомобилей на стоянке: "; cin>>n;}
for(i=0;i<n;i++)
{
cout<<"Номер "<<i+1<<"-го автомобиля:";
cin>>num; mystack.push(num);
kol=0; mystack2.push(kol);
}
step_menu:
cout<<"-------------------------------------"<<endl;
menu();
cin>>k;
cout<<"-------------------------------------"<<endl;
switch (k)
{case 0: {while (!mystack.empty())
{
num = mystack.top();
mystack.pop();
kol = mystack2.top();
mystack2.pop();
cout<<num<<"\t"<<kol<<endl;
}
goto step_menu;
}
case 1:{
cout<<"Введите номер добавляемого автомобиля:";
cin>>num;
mystack.push(num);
kol=0;
mystack2.push(kol);
goto step_menu;
}
case 2:{
cout<<"Введите номер удаляемого автомобиля:";
cin>>numdel;
step2:
num = mystack.top();
kol = mystack2.top();
if ( (numdel.compare(num)!=0)&&(mystack.empty()) )
{ cout<<"Такого автомобиля нет в гараже. Удаление невозможно."<<endl; goto step_menu; }
if(numdel.compare(num)==0)
{ mystack.pop();
mystack2.pop();
cout<<"Автомобиль удален со стоянки."<<endl;
cout<<"Автомобиль удалялся "<<kol<<"-раз для обеспечения выезда других автомобилей."<<endl;
goto go_while; }
/* Заносим элементы из гаража
в вспомогательный стек */
temp.push(num);
temp2.push(kol+1);
mystack.pop();
mystack2.pop();
goto step2;
go_while:
/* Выгружаем элементы из вспо-
могательного стека в гараж */
while (!temp.empty())
{num = temp.top();
kol = temp2.top();
mystack.push(num);
mystack2.push(kol);
temp.pop();
temp2.pop();
}
goto step_menu;
}
case 3: exit(0);
default:
cout<<"<<<Ошибка меню! Сделайте правильный выбор>>>"<<endl;
goto step_menu;
}
return 0;
}
Добавлено через 20 часов 58 минут
Ребят, тут же много умников, помогите,пожалуйста
 Комментарий модератора 
У Вас CapsLock заело? Тема переименована.


Добавлено через 18 часов 12 минут
Кто-нибудь,хоть подсказку дайте, исправления сделаю самостоятельно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru