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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
{qwerty
1 / 1 / 0
Регистрация: 04.10.2010
Сообщений: 3
#1

Гаражная стоянка - C++

29.11.2010, 18:59. Просмотров 1652. Ответов 0
Метки нет (Все метки)

Условие задачи:
Гаражная стоянка имеет одну стояночную полосу, причем единственный въезд и единственный выезд находятся в одном конце полосы. Если владелец автомашины приходит забрать свой автомобиль, который не является ближайшим к выходу, то все автомашины, загораживающие проезд, удаляются, машина данного владельца выводится со стоянки, а другие машины возвращаются на стоянку в исходном порядке. Написать программу, которая моделирует процесс прибытия и отъезда машин. Прибытие или отъезд задается командной строкой, которая содержит признак прибытия или отъезда и номер машины. При выезде автомашины со стоянки сообщение должно содержать число случаев, когда машина удалялась со стоянки для обеспечения выезда других автомобилей.

Помогите, пожалуйста, реализовать вывод числа случаев, когда машина покидала стоянку.
Вот мой код:

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
96
#include "stdafx.h"
#include "conio.h"
#include <iostream>
using namespace std;
struct garage
{
    int d;
    garage *prev;   
};
garage * first(int d);
int push(garage **t, int d);
int pop(garage **t);
 
 
 
// Начальное формирование стека
garage* first(int d)
{
    garage *pv = (garage*)calloc(1,sizeof(garage));
    pv->d = d;
    pv->prev = 0;
    return pv;
}
 
// Занесение в стек
int push(garage **t, int i)
{
    garage *pv = (garage*)calloc(1,sizeof(garage));
    pv->d = i;
    pv->prev = *t;
    *t = pv;
    return 0;
}
 
 
// Выборка из стека
int pop (garage **t)
{
    int number = (*t)->d;
    garage *pv = *t;
    *t = (*t)->prev;
    free(pv);
    return number;
}
void function(garage **t, int number)
{
    garage *pv=*t,*t2=(garage*)calloc(1,sizeof(garage)),*p;
    int k=0;
    while(pv->d!=number)
    {
        cout<<"номер выезжающей машины "<<pv->d<<endl;
        push(&t2,pv->d);
        pv=pv->prev;
        
    }
    cout<<"номер нужной машины "<<pv->d<<endl;
    pv=p=t2;
    while(pv->prev!=0)
    {
        cout<<"номер прибывающей машины "<<pv->d<<endl;
        p=pv->prev;
        free(pv);
        pv=p;
    }
    free(pv);
}
int main()
{
    setlocale(LC_ALL,"Russian");
    int n,priznak,number,i,menu=0;
    garage* t = first(1);
    cout<<"введите количество машин:"<<endl;
    cin>>n;
    do{
        cout<<"В гараже "<<n<<" машин"<<endl;
        cout<<"Номер машины, которая покидает гараж: ";
        cin>>number;
        if(number>=n)
            cout<<"Такой машины в гараже нет!"<< endl;
        else if(n==1)
                cout<<"в гараже одна машина"<<endl;
                else 
                {
                    for (int i = 2; i<=n; i++)
                    push(&t, i);
                    function(&t,number);
                    n--;
                } 
             
            cout<<"Хотите повторить? ДА - 1"<<endl;
            cin>>menu;
        }while(menu == 1 && number != 0);
    
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2010, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Гаражная стоянка (C++):

.NET 4.x Транспорт на автостоянке: добавить интерфейс и класс "Стоянка" - C#
Всем привет.Делаю простенькую програмку с патерном билдер на предметную область транспорт на автостоянке.(Она выводит якобы информацию об...

Олимпиадная задача "Стоянка" - PHP
стоянка

.NET 4.x Транспорт на автостоянке: добавить интерфейс и класс "Стоянка" - C#
Всем привет.Делаю простенькую програмку с патерном билдер на предметную область транспорт на автостоянке.(Она выводит якобы информацию об...

Олимпиадная задача "Стоянка" - PHP
стоянка


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru