Курсовая программирование. Пояснительная записка к курсовой работе по дисциплине Программирование 011. 00. 00 Пз
Скачать 0.66 Mb.
|
Functions.cpp #include "Functions.h" int check_save = 0; // Проверка сохранения void file_menu(exams* (&e), student* (&s), int& n) { int point; string file_name; system("cls"); cout << "Выберите действие: " << endl << "(1) Открытие файла." << endl << "(2) Создание нового." << endl << "Ваш выбор: "; point = input_number(1, 2, "Ошибка ввода! Повторите попытку: "); system("cls"); switch (point) { case 1: { cout << "Введите название файла: "; cin >> file_name; system("cls"); ifstream reading(file_name); if (reading) { for (int i = 0; i < 4; i++) { reading >> e[i].number_exams; reading.ignore(); switch (e[i].number_exams) { case 1: getline(reading, e[i].exam_1); break; case 2: getline(reading, e[i].exam_1); getline(reading, e[i].exam_2); break; case 3: getline(reading, e[i].exam_1); getline(reading, e[i].exam_2); getline(reading, e[i].exam_3); break; case 4: getline(reading, e[i].exam_1); getline(reading, e[i].exam_2); getline(reading, e[i].exam_3); getline(reading, e[i].exam_4); break; } } reading >> n; s = new student[n]; for (int i = 0; i < n; i++) { reading >> s[i].surname; reading >> s[i].name; reading >> s[i].patronymic; reading >> s[i].course; reading >> s[i].group; switch (e[s[i].course - 1].number_exams) { case 1: reading >> s[i].assessment_1; cout.precision(3); s[i].average_assessment = (double)s[i].assessment_1; break; case 2: reading >> s[i].assessment_1; reading >> s[i].assessment_2; cout.precision(3); s[i].average_assessment = (double)(s[i].assessment_1 + s[i].assessment_2) / 2; break; case 3: reading >> s[i].assessment_1; reading >> s[i].assessment_2; reading >> s[i].assessment_3; cout.precision(3); s[i].average_assessment = (double)(s[i].assessment_1 + s[i].assessment_2 + s[i].assessment_3) / 3; break; case 4: reading >> s[i].assessment_1; reading >> s[i].assessment_2; reading >> s[i].assessment_3; reading >> s[i].assessment_4; cout.precision(3); s[i].average_assessment = (double)(s[i].assessment_1 + s[i].assessment_2 + s[i].assessment_3 + s[i].assessment_4) / 4; break; } } cout << "Данные считаны! " << endl << endl; check_save = 1; system("pause"); } else { cout << "Ошибка открытия файла! " << endl << endl; system("pause"); file_menu(e, s, n); } break; } case 2: for (int i = 0; i < 4; i++) { cout << "Количество экзаменов " << i + 1 << " курса: "; e[i].number_exams = input_number(1, 4, "Ошибка ввода! Повторите попытку: "); switch (e[i].number_exams) { case 1: cout << "1 предмет: "; cin >> e[i].exam_1; break; case 2: cout << "1 предмет: "; cin >> e[i].exam_1; cout << "2 предмет: "; cin >> e[i].exam_2; break; case 3: cout << "1 предмет: "; cin >> e[i].exam_1; cout << "2 предмет: "; cin >> e[i].exam_2; cout << "3 предмет: "; cin >> e[i].exam_3; break; case 4: cout << "1 предмет: "; cin >> e[i].exam_1; cout << "2 предмет: "; cin >> e[i].exam_2; cout << "3 предмет: "; cin >> e[i].exam_3; cout << "4 предмет: "; cin >> e[i].exam_4; break; } } system("cls"); cout << "Экзамены записаны!" << endl; check_save = 0; system("pause"); break; } } void print_data(exams* e, student* s, int n) { for (int i = 0; i < 4; i++) { cout << "Количество экзаменов " << i + 1 << " курса: " << e[i].number_exams << endl << "Экзамены " << i + 1 << " курса: "; switch (e[i].number_exams) { case 1: cout << e[i].exam_1 << endl << endl; break; case 2: cout << e[i].exam_1 << ", " << e[i].exam_2 << endl << endl; break; case 3: cout << e[i].exam_1 << ", " << e[i].exam_2 << ", " << e[i].exam_3 << endl << endl; break; case 4: cout << e[i].exam_1 << ", " << e[i].exam_2 << ", " << e[i].exam_3 << ", " << e[i].exam_4 << endl << endl; break; } } cout << "-------------------------------------------------------------------------------------------------------------------------" << endl < << "Количество данных: " << n << endl << endl; for (int i = 0; i < n; i++) { cout << "************************************" << endl << "Данные №" << i + 1 << endl << "ФИО: " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << endl << "Курс: " << s[i].course << endl << "Группа: " << s[i].group << endl; switch (e[s[i].course - 1].number_exams) { case 1: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl << endl; break; case 2: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl << endl; break; case 3: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl; cout << e[s[i].course - 1].exam_3 << ": " << s[i].assessment_3 << endl << endl; break; case 4: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl; cout << e[s[i].course - 1].exam_3 << ": " << s[i].assessment_3 << endl; cout << e[s[i].course - 1].exam_4 << ": " << s[i].assessment_4 << endl << endl; break; } } cout << "************************************" << endl << endl; system("pause"); } int input_number(int min_value, int max_value, string error) { int number; while (true) { cin >> number; if (number >= min_value && number <= max_value) { return number; } cout << error; if (cin.fail()) { cin.clear(); cin.ignore(32767, '\n'); } } } void input_student(exams* (&e), student* (&s), int& n) { student* buf = new student[n]; copy_data(buf, s, n); n++; s = new student[n]; copy_data(s, buf, --n); cout << "Введите фамилию: "; cin >> s[n].surname; cout << "Введите имя: "; cin >> s[n].name; cout << "Введите отчество: "; cin >> s[n].patronymic; cout << "Введите курс: "; s[n].course = input_number(1, 4, "Ошибка ввода! Повторите попытку: "); cout << "Введите группу: "; cin >> s[n].group; switch (e[s[n].course - 1].number_exams) { case 1: cout << e[s[n].course - 1].exam_1 << ": "; s[n].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[n].average_assessment = (double)s[n].assessment_1; break; case 2: cout << e[s[n].course - 1].exam_1 << ": "; s[n].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_2 << ": "; s[n].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[n].average_assessment = (double)(s[n].assessment_1 + s[n].assessment_2) / 2; break; case 3: cout << e[s[n].course - 1].exam_1 << ": "; s[n].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_2 << ": "; s[n].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_3 << ": "; s[n].assessment_3 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[n].average_assessment = (double)(s[n].assessment_1 + s[n].assessment_2 + s[n].assessment_3) / 3; break; case 4: cout << e[s[n].course - 1].exam_1 << ": "; s[n].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_2 << ": "; s[n].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_3 << ": "; s[n].assessment_3 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[n].course - 1].exam_4 << ": "; s[n].assessment_4 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[n].average_assessment = (double)(s[n].assessment_1 + s[n].assessment_2 + s[n].assessment_3 + s[n].assessment_4) / 4; break; } system("cls"); delete[] buf; n++; cout << "Данные были добавлены!" << endl << endl; check_save = 0; system("pause"); } void change_student(exams* (&e), student* (&s), int n) { int point; for (int i = 0; i < n; i++) { cout << i + 1 << ". " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].course << " курс | группа: " << s[i].group << endl; } cout << "Какую запись вы хотите изменить: "; point = input_number(1, n, "Ошибка ввода! Повторите попытку: "); point--; system("cls"); cout << "Введите фамилию: "; cin >> s[point].surname; cout << "Введите имя: "; cin >> s[point].name; cout << "Введите отчество: "; cin >> s[point].patronymic; cout << "Введите курс: "; s[point].course = input_number(1, 4, "Ошибка ввода! Повторите попытку: "); cout << "Введите группу: "; cin >> s[point].group; switch (e[s[point].course - 1].number_exams) { case 1: cout << e[s[point].course - 1].exam_1 << ": "; s[point].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[point].average_assessment = (double)s[point].assessment_1; break; case 2: cout << e[s[point].course - 1].exam_1 << ": "; s[point].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_2 << ": "; s[point].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[point].average_assessment = (double)(s[point].assessment_1 + s[point].assessment_2) / 2; break; case 3: cout << e[s[point].course - 1].exam_1 << ": "; s[point].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_2 << ": "; s[point].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_3 << ": "; s[point].assessment_3 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[point].average_assessment = (double)(s[point].assessment_1 + s[point].assessment_2 + s[point].assessment_3) / 3; break; case 4: cout << e[s[point].course - 1].exam_1 << ": "; s[point].assessment_1 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_2 << ": "; s[point].assessment_2 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_3 << ": "; s[point].assessment_3 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout << e[s[point].course - 1].exam_4 << ": "; s[point].assessment_4 = input_number(2, 5, "Ошибка ввода! Повторите попытку: "); cout.precision(3); s[point].average_assessment = (double)(s[point].assessment_1 + s[point].assessment_2 + s[point].assessment_3 + s[point].assessment_4) / 4; break; } system("cls"); cout << "Данные были изменены!" << endl << endl; check_save = 0; system("pause"); } void delete_student(exams* (&e), student* (&s), int& n) { int point, k = 0; for (int i = 0; i < n; i++) { cout << i + 1 << ". " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | курс: " << s[i].course << " | группа: " << s[i].group << endl; } cout << "Какую запись вы хотите удалить: "; point = input_number(1, n, "Ошибка ввода! Повторите попытку: "); system("cls"); --point; student* buf = new student[n]; copy_data(buf, s, n); --n; s = new student[n]; for (int i = 0; i <= n; i++) { if (i != point) { s[k] = buf[i]; ++k; } } delete[] buf; cout << "Данные были удалены!" << endl << endl; check_save = 0; system("pause"); } void list_group(exams* e, student* s, int n) { string group; cout << "Введите название группы: "; cin >> group; system("cls"); int k = 0; for (int i = 0; i < n; i++) { if (s[i].group == group) { k++; } } cout << "Группа: " << group; if (k > 0) { k = 0; for (int i = 0; i < n; i++) { if (s[i].group == group) { if (k == 0) { cout << " (" << s[i].course << " курс)." << endl << endl; } k++; cout << "Данные №" << k << endl; cout << "ФИО: " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << endl; switch (e[s[i].course - 1].number_exams) { case 1: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; break; case 2: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl; break; case 3: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl; cout << e[s[i].course - 1].exam_3 << ": " << s[i].assessment_3 << endl; break; case 4: cout << e[s[i].course - 1].exam_1 << ": " << s[i].assessment_1 << endl; cout << e[s[i].course - 1].exam_2 << ": " << s[i].assessment_2 << endl; cout << e[s[i].course - 1].exam_3 << ": " << s[i].assessment_3 << endl; cout << e[s[i].course - 1].exam_4 << ": " << s[i].assessment_4 << endl; break; } cout << "Средняя оценка: " << s[i].average_assessment << endl; cout << "------------------------------------------------" << endl; } } } cout << endl << "Найдено записей: " << k << "." << endl << endl; system("pause"); } void bill_course(exams* e, student* s, int n) { int course, k = 0, point; cout << "Выберите курс: "; course = input_number(1, 4, "Ошибка ввода! Повторите попытку: "); cout << "(1/0) -> (Повышенная/Обычная): "; point = input_number(0, 1, "Ошибка ввода! Повторите попытку: "); system("cls"); cout << "Студенты " << course << " курса, назначенные на "; if (point == 1) { cout << "повышенную стипендию. " << endl << endl; } else { cout << "обычную стипендию. " << endl << endl; } for (int i = 0; i < n; i++) { if (s[i].course == course) { if (point == 1) { if (s[i].average_assessment == 5) { k++; cout << "Данные №" << k << endl; cout << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].group << endl; cout << "------------------------------------------------" << endl; } } else { switch (e[course - 1].number_exams) { case 1: if (s[i].assessment_1 > 3 && s[i].average_assessment < 5) { k++; cout << "Данные №" << k << endl; cout << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].group << endl; cout << "------------------------------------------------" << endl; } break; case 2: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].average_assessment < 5) { k++; cout << "Данные №" << k << endl; cout << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].group << endl; cout << "------------------------------------------------" << endl; } break; case 3: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3 && s[i].average_assessment < 5) { k++; cout << "Данные №" << k << endl; cout << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].group << endl; cout << "------------------------------------------------" << endl; } break; case 4: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3 && s[i].assessment_4 > 3 && s[i].average_assessment < 5) { k++; cout << "Данные №" << k << endl; cout << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].group << endl; cout << "------------------------------------------------" << endl; } break; } } } } cout << endl << "Найдено записей: " << k << " ." << endl << endl; system("pause"); } void search_student(exams* e, student* s, int n) { string surname; int k = 0, point; cout << "Введите фамилию студента: "; cin >> surname; system("cls"); for (int i = 0; i < n; i++) { if (s[i].surname == surname) { k++; } } if (k == 0) { cout << "Данные не были найдены!" << endl << endl; } else { if (k == 1) { for (int i = 0; i < n; i++) { if (s[i].surname == surname) { cout << "ФИО: " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << endl << "Курс: " << s[i].course << endl << "Группа: " << s[i].group << endl << "Стипендия: "; if (s[i].average_assessment == 5) { cout << "Повышенная" << endl << endl; } else { switch (e[s[i].course - 1].number_exams) { case 1: if (s[i].assessment_1 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; case 2: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет"; } break; case 3: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; case 4: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3 && s[i].assessment_4 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; } } } } } else { cout << "Найдено записей: " << k << endl; k = 0; for (int i = 0; i < n; i++) { if (s[i].surname == surname) { k++; cout << k << ". " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << " | " << s[i].course << " курс | Группа: " << s[i].group << endl; } } cout << "Информация по какой записи вам необходима: "; point = input_number(1, k, "Ошибка ввода! Повторите попытку: "); system("cls"); k = 0; for (int i = 0; i < n; i++) { if (s[i].surname == surname) { k++; if (point == k) { cout << "ФИО: " << s[i].surname << " " << s[i].name << " " << s[i].patronymic << endl << "Курс: " << s[i].course << endl << "Группа: " << s[i].group << endl << "Стипендия: "; if (s[i].average_assessment == 5) { cout << "Повышенная" << endl << endl; } else { switch (e[s[i].course - 1].number_exams) { case 1: if (s[i].assessment_1 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; case 2: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; case 3: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; case 4: if (s[i].assessment_1 > 3 && s[i].assessment_2 > 3 && s[i].assessment_3 > 3 && s[i].assessment_4 > 3) { cout << "Обычная" << endl << endl; } else { cout << "Нет" << endl << endl; } break; } } } } } } } system("pause"); } void sort_students(student* s, int n) { student buf; int point; cout << "1. По фамилии. " << endl << "2. По имени. " << endl << "3. По отчеству. " << endl << "4. По среднему баллу. " << endl << "Выберите способ сортировки: "; point = input_number(1, 4, "Ошибка ввода! Повторите попытку: "); system("cls"); switch (point) { case 1: for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (s[i].surname > s[j].surname) { copy_sort(buf, s[j]); copy_sort(s[j], s[i]); copy_sort(s[i], buf); } } } break; case 2: for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (s[i].name > s[j].name) { copy_sort(buf, s[j]); copy_sort(s[j], s[i]); copy_sort(s[i], buf); } } } break; case 3: for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (s[i].patronymic > s[j].patronymic) { copy_sort(buf, s[j]); copy_sort(s[j], s[i]); copy_sort(s[i], buf); } } } break; case 4: for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (s[i].average_assessment < s[j].average_assessment) { copy_sort(buf, s[j]); copy_sort(s[j], s[i]); copy_sort(s[i], buf); } } } break; } cout << "Сортировка произведена! " << endl << endl; check_save = 0; system("pause"); } void save(exams* e, student* s, int n) { string file_name; int point; cout << "Введите название файла: "; cin >> file_name; system("cls"); ifstream reading(file_name); if (reading) { cout << "Хотите перезаписать файл?" << endl << "(1/0) -> (Да/Нет): "; point = input_number(0, 1, "Ошибка ввода! Повторите попытку: "); system("cls"); if (point == 1) { ofstream record(file_name, ios::out); for (int i = 0; i < 4; i++) { record << e[i].number_exams << endl; switch (e[i].number_exams) { case 1: record << e[i].exam_1 << endl; break; case 2: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; break; case 3: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; record << e[i].exam_3 << endl; break; case 4: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; record << e[i].exam_3 << endl; record << e[i].exam_4 << endl; break; } } record << n << endl; for (int i = 0; i < n; i++) { record << s[i].surname << endl; record << s[i].name << endl; record << s[i].patronymic << endl; record << s[i].course << endl; record << s[i].group << endl; switch (e[s[i].course - 1].number_exams) { case 1: record << s[i].assessment_1 << endl; break; case 2: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; break; case 3: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; record << s[i].assessment_3 << endl; break; case 4: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; record << s[i].assessment_3 << endl; record << s[i].assessment_4 << endl; break; } } record.close(); cout << "Данные были сохранены!" << endl << endl; check_save = 1; } else { cout << "Ошибка создания файла!" << endl << endl; } } else { ofstream record(file_name, ios::out); for (int i = 0; i < 4; i++) { record << e[i].number_exams << endl; switch (e[i].number_exams) { case 1: record << e[i].exam_1 << endl; break; case 2: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; break; case 3: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; record << e[i].exam_3 << endl; break; case 4: record << e[i].exam_1 << endl; record << e[i].exam_2 << endl; record << e[i].exam_3 << endl; record << e[i].exam_4 << endl; break; } } record << n << endl; for (int i = 0; i < n; i++) { record << s[i].surname << endl; record << s[i].name << endl; record << s[i].patronymic << endl; record << s[i].course << endl; record << s[i].group << endl; switch (e[s[i].course - 1].number_exams) { case 1: record << s[i].assessment_1 << endl; break; case 2: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; break; case 3: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; record << s[i].assessment_3 << endl; break; case 4: record << s[i].assessment_1 << endl; record << s[i].assessment_2 << endl; record << s[i].assessment_3 << endl; record << s[i].assessment_4 << endl; break; } } record.close(); cout << "Данные были сохранены!" << endl << endl; check_save = 1; } reading.close(); system("pause"); system("cls"); } void about_prog() { ifstream reading("about.txt"); string s; while (!reading.eof()) { getline(reading, s); cout << s << endl; } reading.close(); system("pause"); } void user_manual() { ifstream reading("manual.txt"); string s; while (!reading.eof()) { getline(reading, s); cout << s << endl; } reading.close(); system("pause"); } void task() { ifstream reading("task.txt"); string s; while (!reading.eof()) { getline(reading, s); cout << s << endl; } reading.close(); system("pause"); } void copy_data(student* (&s_n), student* (&s_o), int n) { for (int i = 0; i < n; i++) { s_n[i] = s_o[i]; } } void copy_sort(student& s_n, student& s_o) { s_n.surname = s_o.surname; s_n.name = s_o.name; s_n.patronymic = s_o.patronymic; s_n.course = s_o.course; s_n.group = s_o.group; s_n.assessment_1 = s_o.assessment_1; s_n.assessment_2 = s_o.assessment_2; s_n.assessment_3 = s_o.assessment_3; s_n.assessment_4 = s_o.assessment_4; s_n.average_assessment = s_o.average_assessment; } void exit(exams* e, student* s, int n) { int point; if (check_save == 0) { cout << "Данные не были сохранены! Желаете произвести сохранение? " << endl << "(1/0) -> (Да/Нет): "; point = input_number(0, 1, "Ошибка ввода! Повторите попытку: "); system("cls"); if (point == 1) { save(e, s, n); } } } 10 Руководство пользователя - Программа способна считывать и сохранять файлы. - В программе предусмотрен ввод, изменение, удаление и сортировка данных. - Программа предназначена для обслуживания базы данных назначения стипендии студентам факультета кибернетики по результатам экзаменационной сессии. - Программа может: 1) выводить список группы, где будет указаны ФИО, оценки за экзамены и средний балл; 2) выводить две ведомости для каждого курса, содержащих фамилии студентов, назначенных на повышенную и обычную стипендию; 3) определить по фамилии студента, назначена ему стипендия или нет. Заключение Программа “Назначение стипендии студентам факультета кибернетики по результатам экзаменационной сессии” выполняет все основные требования, написанные в задании. Эта работа помогла закрепить знания, полученные на 1 курсе по дисциплине “Программирование”. А также дала опыт в разработке больших программ и составлению по ним отчета. Список использованных источников Хохлов Д.Г. Методы программирования на языке С: практикум Ч.2. «Бином. Лаборатория знаний». 2014. – 377 с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/books/element.php ?pl1_id=50555 Иванов В. Б. Прикладное программирование на C/C++: с нуля до мультимедийных и сетевых приложений. М.: «СОЛОН-Пресс». 2008. – 240 с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/books/ element.php&pl1_id=13740 Липман С., Лажойе Ж. Язык программирования С++. Полное руководство. СПб.: Невский диалект, М.: ДМК Пресс. 2006. – 1104с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/view/book/ 1216/ |