Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 1
1

Ассоциативный контейнер и шаблонный класс

03.05.2014, 17:40. Показов 1331. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста исправить и дополнить код.
Задание: Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования.

Для каждого поезда указывается:

• Номер поезда
• Станция назначения
• Время отправления

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

• Ввод данных в информационную систему
• Вывод сведений по всем поездам
• Вывод сведений по поезду с запрошенным номером
• Вывод сведений по тем поездам, которые следуют до запрошенной станции назначения.

Хранение данных организовать с применением класса "Коллекция ключ-значение"(с неуникальными ключами), в качестве ключа использовать номер поезда. Предусмотреть сохранение всех данных при выходе в файл и восстановление при повторном запуске программы.

Я знаю, что надо использовать multimap. Я пыталась написать структуру для Номера поезда, станции и времени прибытия. Еще пыталась написать шаблонный класс. У меня вообще ничего не получилось((А про сохранение данных и восстановление я вообще молчу.. С написанием этой рабочей программы мне тоже помогли. Очень надеюсь на помощь. С++ тяжело идет
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <conio.h>
#include <string>
#include <vector>
 
using namespace std;
 
class cTrain{
        int iNumber;
        string sDestination;
        string sDepartureTime;
public:
        cTrain(){
                iNumber = 0;
                sDestination = "";
                sDepartureTime = "";
        }
        cTrain(int iNum, string sDest, string sTime){
                iNumber = iNum;
                sDestination = sDest;
                sDepartureTime = sTime;
        }
        int iGetNumber(){
                return iNumber;
        }
        cTrain(cTrain const &copy):iNumber(copy.iNumber), sDestination(copy.sDestination), sDepartureTime(copy.sDepartureTime){}
        string sGetDestination(){
                return sDestination;
        }
        string sGetTime(){
                return sDepartureTime;
        }
        void operator =(cTrain objRight){
                iNumber = objRight.iNumber;
                sDestination = objRight.sDestination;
                sDepartureTime = objRight.sDepartureTime;
        }
};
 
void _AddTrain(vector <cTrain> &vSource){
        int iTempNumber;
        string sTempDest, sTempTime;
        cout << "Номер поезда: ";
        cin >> iTempNumber;
        cin.ignore();
        cout << "Пункт назначения: ";
        getline(cin, sTempDest, '\n');
        cout << "Время прибытия: ";
        cin >> sTempTime;
        cin.ignore();
        vSource.push_back(cTrain(iTempNumber, sTempDest, sTempTime));
}
 
 
void _PrintList(vector <cTrain> &vSource){
        if (vSource.empty()){
                cout << "Список пуст!";
                return;
        }
        vector <cTrain>::iterator iterSource = vSource.begin();
        while (iterSource != vSource.end()){
                cout << "Номер поезда: " << iterSource->iGetNumber() << endl;
                cout << "Пункт назначения: " << iterSource->sGetDestination() << endl;
                cout << "Время прибытия: " << iterSource->sGetTime() << endl;
                cout << endl;
                iterSource++;
        }
}
 
void _GetTrainInfo(vector <cTrain> &vSource){
        if (vSource.empty()){
                cout << "Список пуст!";
                return;
        }
        vector <cTrain>::iterator iterSource = vSource.begin();
        bool bIsFound = false;
        int iTrainToSearch;
        cout << "ВВедите номер поезда: ";
        cin >> iTrainToSearch;
        cin.ignore();
        while (iterSource != vSource.end()){
                if (iterSource->iGetNumber() == iTrainToSearch){
                        bIsFound = true;
                        cout << "Пункт назначения: " << iterSource->sGetDestination() << "; " << "Время прибытия: " << iterSource->sGetTime();
                        cout << endl;
                }
                iterSource++;
        }
        if (!bIsFound)
                cout << "Такого поезда нет в базе";
 
}
 
void _GetStationInfo(vector <cTrain> &vSource){
        if (vSource.empty()){
                cout << "Список пуст!";
                return;
        }
        vector <cTrain>::iterator iterSource = vSource.begin();
        bool bIsFound = false;
        string sStationToSearch;
        cout << "Введите название станции: ";
        getline(cin, sStationToSearch, '\n');
        while (iterSource != vSource.end()){
                if (iterSource->sGetDestination() == sStationToSearch){
                        bIsFound = true;
                        cout << "Номер поезда: " << iterSource->iGetNumber() << "; " << "Время прибытия: " << iterSource->sGetTime();
                        cout << endl;
                }
                iterSource++;
        }
        if (!bIsFound)
                cout << "Такой станции нет в базе";
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
        setlocale(LC_ALL, "Russian");
        vector <cTrain> vDataBase;
        char cKey;
        do{
                system("cls");
                cout << "1 - Добавить информацию о новом поезде в базу данных\n";
                cout << "2 - Показать базу данных\n";
                cout << "3 - Показать информацию о конкретном поезде\n";
                cout << "4 - Показать информацию о прибытии поезда на станцию\n";
                cout << "5 - Выход\n";
                cKey = _getch();
                system("cls");
                if (cKey == '1'){
                        _AddTrain(vDataBase);
                }
                else if (cKey == '2')
                        _PrintList(vDataBase);
                else if (cKey == '3')
                        _GetTrainInfo(vDataBase);
                else if (cKey == '4')
                        _GetStationInfo(vDataBase);
                else
                        continue;
                _getch();
        } while (cKey !='5');
 
        return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2014, 17:40
Ответы с готовыми решениями:

Создать шаблонный класс - ассоциативный массив, используя std::vector
Задание выглядит так: &quot;Создать шаблонный класс – ассоциативный массив mymap с использованием...

Шаблонный класс - контейнер С++
Объясните пожалуйста что должна делать данная программа: Создать шаблонный класс-контейнер Array,...

Создать шаблонный класс-контейнер Array, который представляет собой массив
Создать шаблонный класс-контейнер Array, который представляет собой массив, позволяющий хранить...

Создать шаблонный класс-контейнер Array, который представляет собой массив, позволяющий хранить объекты заданного типа
Здравствуйте, подскажите пожалуйста, как правильно инициализировать данный класс. Новый год в...

1
48 / 48 / 24
Регистрация: 29.10.2011
Сообщений: 154
03.05.2014, 19:00 2
Вот пример реализации key-value хранилища. https://github.com/zerotier/kissdb
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2014, 19:00

Ассоциативный контейнер типа map
Привет! Помогите пожалуйста найти ошибку. Программа с Ассоциативным контейнером типа map&lt;string,...

Map как не ассоциативный контейнер
Здравствуйте. Я вложил в контейнер map кучу элементов с ключом String и значением - объектом моего...

Ассоциативный контейнер std::map с кириллицей
Всем привет! Никак не могу разобраться каким способом решить интересную проблему. В ассоциативном...

Полиморфизм и шаблонный контейнер.
Как вы знаете, template определяет класс или несколько классов, к которым приводятся ф-и или др....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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