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

Стэк из автобусов - C++

Восстановить пароль Регистрация
 
rhcpist
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 4
03.05.2014, 11:51     Стэк из автобусов #1
Здравствуйте форумчане, я тут человек новый, уповаю на помощь знающих людей, так как обратится больше не к кому. Изучая язык С++ дошел до темы Стэки, Линейные списки и решил сделать следующую задачку для практики: создать структуру, в которую входит: номер маршрута автобуса, имя видителя, номер рейса, ввести их с клавиатуры, а далее построить стэк из структур с помощью указателей (P.S. до Классов еще не дошел). Построить стэк, где в структуре данные чисел я смог, но вот со структурой где несколько типов данных да еще и вводимых с клавиатуры у меня проблема. Прошу помощи, подскажите последовательность действий, или кодом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 11:51     Стэк из автобусов
Посмотрите здесь:

C++ Инвертировать стэк
Стэк.. C++
C++ СТЭК
C++ Реализация класса стэк
Стэк и связные списки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.05.2014, 11:56     Стэк из автобусов #2
Цитата Сообщение от rhcpist Посмотреть сообщение
Построить стэк, где в структуре данные чисел я смог, но вот со структурой где несколько типов данных да еще и вводимых с клавиатуры у меня проблема.
А в чём проблема то? Это разные поля, на друг друга они не влияют.
rhcpist
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 4
03.05.2014, 12:08  [ТС]     Стэк из автобусов #3
Да проблема в том что при формировании первого элемента стэка, необходимо заносить какие-то аргументы в функцию на примере из книги Павловской это выглядит так
C++
1
Node *first(int d)
а у меня же проблема с тем какие аргументы будут занесены в мою функцию, а так как данные вводятся с клавиатуры как на них сослатся. Проще говоря необходимо сделать все так же как и здесь только с моей структурой данных, которые вводятся с клавиатуры
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.05.2014, 12:41     Стэк из автобусов #4
Цитата Сообщение от rhcpist Посмотреть сообщение
а у меня же проблема с тем какие аргументы будут занесены в мою функцию, а так как данные вводятся с клавиатуры
И что? Какая разница, откуда взялось значение переменной? Параметр то - она сама. Для того, чтоб это действительно было проблемой, надо клонировать триллон Эйншейнов, наделить их одновременно бессмертием и садизмом и отдать им компилятор на пару квадриллионов лет. Да и то не факт, что справятся.
rhcpist
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 4
03.05.2014, 12:46  [ТС]     Стэк из автобусов #5
буду благодарен если подскажите последовательность действий необходимых для реализации программы.
rhcpist
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 4
04.05.2014, 18:12  [ТС]     Стэк из автобусов #6
Решил задачу сам, может кому пригодится:
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
#include <iostream>
#include <conio.h>
using namespace std;
 
struct Bus
{
        int bus_num;
        int route;
        char fio[20];
        Bus *p;
};
 
int size_bus;
Bus *first(int d);
void push(Bus **top, int d);
int pop (Bus **top);
 
int main()
{
        cout << "VVedite kolichestvo avtobusov: ";
        cin >> size_bus;
        system("cls");
        Bus *top = first(0);
        system("cls");
        for (int i = 1; i < size_bus; i++)
        {
                push(&top, i);
        }
 
        system ("cls");
 
        cout << "----------Buses---------" << endl;
        while (top)
        {
            cout << top->fio << endl;
            cout << top->route << endl;
            cout << pop(&top) << endl;
        }
        cout << "------------------------" << endl;
 
 
        _getch();
        return 0;
}
 
Bus *first(int d)
{
        Bus *pv = new Bus;
        cout << "VVedite nomer 1-go avtobusa: ";
        cin >> pv->bus_num;
        cout << "Vvedite nomer marshrute 1-go avtobusa: ";
        cin >> pv->route;
        cout << "Vvedite imya voditelya 1-go avtobusa: ";
        cin >> pv->fio;
        pv->p = 0;
        return pv;
}
 
void push(Bus **top, int d)
{
        Bus *pv = new Bus;
        cout << "VVedite nomer "<< d+1 << "-go avtobusa: " << endl;
        cin >> pv->bus_num;
        cout << "Vvedite nomer marshruta " << d+1 << "-go avtobusa: " << endl;
        cin >> pv->route;
        cout << "Vvedite imya voditelya " << d+1 << "-go avtobusa: " << endl;
        cin >> pv->fio;
        pv->p = (*top);
        *top = pv;
        system("cls");
}
 
int pop (Bus **top)
{
    int temp = (*top)->bus_num;
    Bus *pv = *top;
    (*top) = (*top)->p;
    delete pv;
    return temp;
}
Yandex
Объявления
04.05.2014, 18:12     Стэк из автобусов
Ответ Создать тему
Опции темы

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