online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <fstream> #include <cstdlib> #include <string> #include <vector> #include <locale> #include <clocale> using namespace std; // прототипы функции void mainMenu(); struct student { string name; string lastname; bool contract; string group_num; int payment; student* nexts; }; void push_Student(string name, string lastname, bool contract, int payment) { student* pTmp = new student; pTmp->name = name; pTmp->lastname = lastname; pTmp->contract = contract; pTmp->payment = payment; pTmp->nexts = tops; tops = pTmp; } struct group { string name; group* nextg; }; void pushGroup(string name) { group* pTmp = new group; pTmp->name = name; pTmp->nextg = topg; topg = pTmp; } //работа с файлом void savefile() { string path = "student_base.txt"; ofstream fout; fout.open(path); if (!fout.is_open()) { cout << "Ошибка создания файла\n"; } else { cout << "Файл создан, возвращение в главное меню\n\n"; } fout.close(); } void print_student(string group_num) { if (group_num == "") { cout << "Все студенты:\n"; student* pTmp = tops; while (pTmp != 0) { cout << pTmp->name << "\n"; cout << pTmp->lastname << "\n"; cout << pTmp->contract << "\n"; cout << pTmp->payment << "\n\n"; pTmp = pTmp->nexts; } } else { cout << "Список студентов группы '" << group_num << "':\n"; student* pTmp = tops; while (pTmp != 0) { if (group_num == pTmp->group_num) { cout << pTmp->name << "\n"; cout << pTmp->lastname << "\n"; cout << pTmp->contract << "\n"; cout << pTmp->payment << "\n\n"; } pTmp = pTmp->nexts; } } system("pause"); } void read_file(fstream& file) { string count_group; int c_g; string group_num; string count_student; int c_s, c_s_all = 0; string line; int payment; if (file.is_open()) { getline(file, count_group); // Получаем кол-во групп c_g = std::stoi(count_group); // Преобразуем кол-во групп for (int g = 0; g < c_g; g++) { // Идем по кол-ву групп getline(file, group_num); //Получаем название группы. pushGroup(group_num); //Записываем группу в стек. cout << "Группа: " << group_num << " \n"; getline(file, count_student); // Получаем кол-во студентов c_s = std::stoi(count_student); // Преобразуем кол-во студентов c_s_all += c_s; for (int s = 0; s < c_s; s++) { // Идем по кол-ву студентов for (int d = 0; d < 4; d++) { // Идем по каждому студенту student* pTmp = new student; pTmp->group_num = group_num; //Приписываем ему название группы getline(file, line); //Запись имени. pTmp->name = line; getline(file, line); //Запись фамилии. pTmp->lastname = line; getline(file, line); // Запись формы обучения pTmp->contract = line[0]; getline(file, line); // Получаем стипендию payment = std::stoi(line); pTmp->payment = payment; pTmp->nexts = tops; tops = pTmp; break; } } } } } // Работа со студентами void workwithGroup() { int workwithstudents; cin >> workwithstudents; if (workwithstudents == 1) { cout << "Вывести студентов группы\n"; cin >> workwithstudents; } else if (workwithstudents == 2) { string name, lastname, group; bool contract; int payment; cout << "В какую группу добавить студента: "; cin >> group; cout << "Имя: "; cin >> name; cout << "Фамилия: "; cin >> lastname; cout << "Форма обучения: "; cin >> contract; cout << "Стипендия: "; cin >> payment; push_Student(name, lastname, contract, payment); } else if (workwithstudents == 3) { cout << "Изменение данных студента"; } else if (workwithstudents == 4) { cout << "Удалить студента"; } else if (workwithstudents == 5) { cout << "Назад\n"; mainMenu(); cout << "Выберите пункт из меню (1-10)\n" << "1. Файл\n" << "2. Работа с группой\n" << "3. Вывод всех групп\n" << endl << endl << "10. Выход из программы\n"; }; }; // Меню группы void groupMenu() { int menugroup; cin >> menugroup; if (menugroup == 1) { cout << "Вывести список групп"; } else if (menugroup == 2) { cout << "--------Добавление группы--------\n" << "1. Вывести студентов группы\n" << "2. Добавить студента\n" << "3. Изменить данные студента\n" << "4. Удалить студента\n" << "5. Выйти в основное меню\n"; workwithGroup(); } else if (menugroup == 3) { cout << "Удалить группу"; } else if (menugroup == 4) { mainMenu(); } else {} } // Файловое меню void fileMenu() { // Меню файла int menufile = 0; cin >> menufile; if (menufile == 1) { cout << "Загрузка данных запрещена, выход в основное меню\n"; mainMenu(); } else if (menufile == 2) { savefile(); mainMenu(); } else if (menufile == 3) { mainMenu(); } else {} } // Основное меню void mainMenu() { int menu; cout << "--------Вы находитесь в основном меню--------\n"; cout << "Выберите пункт из меню (1-10)\n" << "1. Файл\n" << "2. Работа с группой\n" << "3. Вывод всех групп\n" << endl << endl << "10. Выход из программы\n"; cin >> menu; switch (menu) { case(1): { cout << "--------Файл--------\n" << "1. Загрузить данные\n" << "2.Сохраняем данные в файл\n" << "3.Назад\n" << "Любое другое число, выйти из программы\n"; fileMenu(); break; } case(2): { cout << "--------Группы--------\n" << "1. Вывести список групп\n" << "2. Добавить группу\n" << "3. Удалить группу\n" << "4. Выйти в главное меню\n"; groupMenu(); break; } case(3): { cout << "Вывод всех групп\n"; }; case(10): { }; break; default: cout << "Вы ввели неправильный пункт меню"; ; } } int main() { setlocale(LC_ALL, "Russian"); mainMenu(); return 0; }

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