Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
st
0 / 0 / 0
Регистрация: 03.05.2014
Сообщений: 1
#1

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

03.05.2014, 17:40. Просмотров 694. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 17:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ассоциативный контейнер и шаблонный класс (C++):

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

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

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

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

Какой ассоциативный контейнер выбрать? И как реализовать в нем чтение из файла? - C++
Вот сама задание: Текстовый файл содержит следующую информацию: координату точки и угол наклона прямой, проходящей через эту точку....

Класс Matrix: реализовать шаблонный класс для двумерных массивов - C++
Доброго времени суток. У меня вопрос: я создал класс Array со внутренним динамическим массивом и объекты этого типа смог создать и я ими...

1
YouDoItWrong
47 / 47 / 7
Регистрация: 29.10.2011
Сообщений: 154
03.05.2014, 19:00 #2
Вот пример реализации key-value хранилища. https://github.com/zerotier/kissdb
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2014, 19:00
Привет! Вот еще темы с ответами:

Шаблонный класс и класс одномерный массив - C++
Задание: протестировать класс шаблон, с обычными типами данных я понял как делать, а как передать в шаблон свой класс я не понял. ...

Переделать класс в шаблонный класс - C++
Как данный процесс проделать? Я попробовал так по синтаксису из учебника: #include &lt;iostream&gt; #include &lt;fstream&gt; using...

Шаблонный класс - C++
Ребят, прошу Вашей помощи.. Программу я написала.. Она работает. Но теперь мне нужно переделать ее , используя шаблонный класс. Я...

Шаблонный класс - C++
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Vector{ private: int size, capacity; T* data; public: ...


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

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

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