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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
{qwerty
1 / 1 / 0
Регистрация: 04.10.2010
Сообщений: 3
29.11.2010, 18:59     Гаражная стоянка #1
Условие задачи:
Гаражная стоянка имеет одну стояночную полосу, причем единственный въезд и единственный выезд находятся в одном конце полосы. Если владелец автомашины приходит забрать свой автомобиль, который не является ближайшим к выходу, то все автомашины, загораживающие проезд, удаляются, машина данного владельца выводится со стоянки, а другие машины возвращаются на стоянку в исходном порядке. Написать программу, которая моделирует процесс прибытия и отъезда машин. Прибытие или отъезд задается командной строкой, которая содержит признак прибытия или отъезда и номер машины. При выезде автомашины со стоянки сообщение должно содержать число случаев, когда машина удалялась со стоянки для обеспечения выезда других автомобилей.

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

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 Транспорт на автостоянке: добавить интерфейс и класс "Стоянка"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru