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

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

Восстановить пароль Регистрация
 
st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 1
03.05.2014, 17:40     Ассоциативный контейнер и шаблонный класс #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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 17:40     Ассоциативный контейнер и шаблонный класс
Посмотрите здесь:

C++ Создать шаблонный класс-контейнер Array, который представляет собой массив
C++ Ассоциативный контейнер типа map
Полиморфизм и шаблонный контейнер. C++
Переделать класс в шаблонный класс C++
Создать шаблонный класс - ассоциативный массив, используя std::vector C++
Шаблонный класс C++
Шаблонный класс C++
C++ Шаблонный класс

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
03.05.2014, 19:00     Ассоциативный контейнер и шаблонный класс #2
Вот пример реализации key-value хранилища. https://github.com/zerotier/kissdb
Yandex
Объявления
03.05.2014, 19:00     Ассоциативный контейнер и шаблонный класс
Ответ Создать тему
Опции темы

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