Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <fstream>
- using namespace std;
- struct Train
- {
- int number;
- string point;
- string time;
- string travel_time;
- int place;
- };
- ostream& operator << (ostream& os, Train& i)
- {
- os << i.number << ' ';
- os << i.point << ' ';
- os << i.time << ' ';
- os << i.travel_time << ' ';
- os << i.place << ' ';
- return os;
- }
- ostream& operator << (ostream& os, vector<Train> v)
- {
- for (auto i : v)
- cout << i;
- }
- istream& operator >> (istream& is, Train& i)
- {
- is >> i.number;
- is >> i.point;
- is >> i.time;
- is >> i.travel_time;
- is >> i.place;
- return is;
- }
- int update (vector<Train>& train)
- {
- train.clear();
- Train objectStruct;
- ifstream file("out.txt");
- while(!file.eof())
- {
- file >> objectStruct;
- train.push_back(objectStruct);
- }
- train.erase(train.end());
- file.close();
- return train.size();
- }
- void WriteInFile (vector<Train>& train, int size)
- {
- ofstream file("out.txt");
- for (int i = 0; i < size; i++)
- file << train[i] << endl;
- file.close();
- }
- void NewStruct(int n)
- {
- ofstream file("out.txt");
- Train objectStruct;
- for (int i = 0; i < n; ++i)
- {
- cin >> objectStruct;
- file << objectStruct << endl;
- }
- file.close();
- }
- int main(int argc, char const *argv[])
- {
- vector<Train> train;
- Train objectStruct;
- int answer;
- int size = update(train);
- bool state = true;
- cout << "Курсовая работа\n№ 15. ТЕМА: Разработка ПО для создания и обработки сведений по расписанию на железной дороге";
- while (state)
- {
- cout << "\n\n\nMenu:";
- cout << "\n#1) Создать файл с заданной структурой записи";
- cout << "\n#2) Выдать на экран содержимое файла.";
- cout << "\n#3) Выдать на экран для заданного пункта назначения список всех поездов в виде: — № поезда;\n — время отправления.";
- cout << "\n#4) Сформировать файл, содержащий № поезда и количество свободных мест.";
- cout << "\n#5) Вновь сформированный файл распечатать";
- cout << "\n#6) Добавить запись в исходный файл";
- cout << "\n#7) Удалить все записи с указанными № поездов.";
- cout << "\n#8) По № поезда изменить количество свободных мест.";
- cout << "\n#9) Выход";
- int choice;
- cout << "\n\nВаш вариант - ";
- cin >> choice;
- switch(choice)
- {
- case 1:
- {
- cout << "Количество новых записей: ";
- cin >> answer;
- NewStruct(answer);
- break;
- }
- case 2:
- {
- update(train);
- cout << "Содержимое файла >\n";
- for (auto i : train)
- cout << i << endl;
- break;
- }
- case 3:
- {
- string searchPoint;
- cout << "\nПункта назначения = ";
- cin >> searchPoint;
- for(auto i : train)
- {
- if (i.point == searchPoint)
- {
- cout << "Номер поезда - " << i.number;
- cout << " Время отправления - " << i.time << endl;
- }
- }
- break;
- }
- case 4:
- {
- ofstream file("out2.txt");
- for (auto i : train)
- {
- file << i.number << ' ';
- file << i.place << endl;
- }
- file.close();
- cout << "Готово. Откройте файл out2.txt";
- break;
- }
- case 5:
- {
- cout << "Содержимое файла >\n";
- ifstream file("out2.txt");
- for (int i = 0; i < train.size(); i++)
- {
- file >> objectStruct.number;
- file >> objectStruct.place;
- cout << objectStruct.number << " " << objectStruct.place << endl;
- }
- file.close();
- break;
- }
- case 6:
- {
- cin >> objectStruct;
- ofstream file("out.txt", ios_base::app);
- file << objectStruct << endl;
- file.close();
- break;
- }
- case 7:
- {
- cout << "Номер вагона = ";
- cin >> answer;
- size = update(train);
- cout << size << endl;
- for (int i = 0; i < size; ++i)
- {
- if (answer == train[i].number)
- {
- train.erase(train.begin() + i);
- size = train.size();
- }
- }
- cout << train.size() << endl;
- WriteInFile(train, train.size());
- break;
- }
- case 8:
- {
- cout << "Номер поезда = ";
- cin >> answer;
- int seat;
- cout << "Количество мест = ";
- cin >> seat;
- size = update(train);
- for (int i = 0; i < size; ++i)
- {
- if (train[i].number == answer)
- train[i].place = seat;
- }
- WriteInFile(train, size);
- break;
- }
- case 9:
- {
- state = false;
- cout << "Выходим.\n";
- break;
- }
- default:
- {
- cout << "Ошибка" << endl;
- state = false;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement