online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <fstream> #include <sstream> #include <iomanip> #include <string.h> using namespace std; const int MAX_ROWS = 100; const int MAX_COLS = 5; struct Bus { string destination; int number; string arrivalTime; int seats; int price; }; bool compareByNumber(const Bus &a, const Bus &b) { return a.number < b.number; } void addbus(Bus buses[], int &numRows); void deletebus(Bus buses[], int &numRows, int routeNumber); void sortbus(Bus buses[], int numRows); void searchBus(Bus buses[], int numRows, string destination); void printBus(Bus buses[], int numRows); void writeDataToFile(Bus buses[], int numRows, string filename); void readDataFromFile(Bus buses[], int &numRows, string filename); int main() { Bus buses[MAX_ROWS]; int numRows = 0; string filename = "buses.txt"; readDataFromFile(buses, numRows, filename); int voluu; do { cout << "\nАвтовокзал:\n"; cout << "1. Добавить маршрут\n"; cout << "2. Удалить маршрут\n"; cout << "3. Сортировать маршруты\n"; cout << "4. Поиск маршрутов\n"; cout << "5. Отобразить все маршруты\n"; cout << "0. Выход\n"; cout << "Ваш выбор: "; cin >> voluu; switch (voluu) { case 1: addbus(buses, numRows); break; case 2: int busNumber; cout << "Введите номер маршрута для удаления: "; cin >> busNumber; deletebus(buses, numRows, busNumber); break; case 3: sortbus(buses, numRows); break; case 4: { string destination; cout << "Введите пункт назначения для поиска: "; cin.ignore(); getline(cin, destination); searchBus(buses, numRows, destination); break; } case 5: printBus(buses, numRows); break; } } while (voluu != 0); writeDataToFile(buses, numRows, filename); return 0; } void addbus(Bus buses[], int &numRows) { if (numRows >= MAX_ROWS) { cout << "Ошибка: база данных заполнена!\n"; return; } int i=0; cout << "Введите пункт назначения: "; cin.ignore(); getline(cin, buses[i].destination); cout << "Введите номер маршрута: "; cin >> buses[i].number; cout << "Введите время прибытия: "; cin.ignore(); getline(cin, buses[i].arrivalTime); cout << "Введите количество мест: "; cin >> buses[i].seats; cout << "Введите цену билета: "; cin >> buses[i].price; numRows++; cout << "Маршрут добавлен!\n"; } void deletebus(Bus buses[], int &numRows, int busNumber) { bool found = false; for (int i = 0; i < numRows; i++) { if (buses[i].number == busNumber) { found = true; for (int j = i; j < numRows - 1; j++) { buses[j] = buses[j + 1]; } numRows--; cout << "Маршрут удален!" << endl; break; } } if (!found) { cout << "Маршрут с таким номером не найден." << endl; } } void sortbus(Bus buses[], int numRows) { for (int i = 0; i < numRows - 1; i++) { for (int j = 0; j < numRows - i - 1; j++) { if (buses[j].number > buses[j + 1].number) { Bus temp = buses[j]; buses[j] = buses[j + 1]; buses[j + 1] = temp; } } } cout << "Маршруты отсортированы по номеру:\n"; for (int i = 0; i < numRows; i++) { cout << setw(15)<< buses[i].destination << setw(5) << buses[i].number << setw(6) << buses[i].arrivalTime << setw(4) << buses[i].seats << setw(5) << buses[i].price << endl; } } void searchBus(Bus buses[], int numRows, string destination) { bool found = false; cout << "Результаты поиска для пункта назначения '" << destination << "':\n"; for (int i = 1; i < numRows; i++) { if (buses[i].destination == destination) { cout << setw(15) << buses[i].destination << setw(5) << buses[i].number << setw(6) << buses[i].arrivalTime << setw(4) << buses[i].seats << setw(5) << buses[i].price << endl; found = true; } } if (!found) { cout << "Маршруты для пункта назначения '" << destination << "' не найдены.\n"; } } void printBus(Bus buses[], int numRows) { if (numRows == 0) { cout << "Список автобусов пуст.\n"; return; } cout << "\nСписок автобусов:\n"; cout << "---------------------------------------------------------------------------------------------------" << endl; cout << " Пункт назначения | Номер | Время прибытия | Кол-во билетов | Цена " << endl; cout << "---------------------------------------------------------------------------------------------------" << endl; for (int i = 0; i < numRows; i++) { cout << " | " << setw(30) << left << buses[i].destination << " | " << setw(16) << left << buses[i].number << " | " << setw(22) << left << buses[i].arrivalTime << " | " << setw(17) << left << buses[i].seats << " | " << setw(10) << left << buses[i].price << " | " << endl; } } void writeDataToFile(Bus buses[], int numRows, string filename) { ofstream file(filename); if (file.is_open()) { file << " Пункт назначения | Номер | Время прибытия | Кол-во билетов | Цена " << endl; for (int i = 0; i < numRows; i++) { file << " | " << setw(30) << left << buses[i].destination << " | " << setw(16) << left << buses[i].number << " | " << setw(22) << left << buses[i].arrivalTime << " | " << setw(17) << left << buses[i].seats << " | " << setw(10) << left << buses[i].price << endl; } file.close(); cout << "Данные успешно записаны в файл." << endl; } else { cout << "Ошибка при открытии файла для записи." << endl; } } void readDataFromFile(Bus buses[], int &numRows, string filename) { ifstream file(filename); if (file.is_open()) { string line; getline(file, line); int i=0; numRows = 0; while (getline(file, line)) { stringstream ss(line); getline(ss, buses[i].destination); ss >> buses[i].number; getline(ss, buses[i].arrivalTime); ss >> buses[i].seats; ss >> buses[i].price; numRows++; } file.close(); cout << "Данные загружены из файла.\n"; } }
Пункт назначения | Номер | Время прибытия | Кол-во билетов | Цена | Чебоксары | 123 | 21-30 | 12 | 232

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue