Главная страница
Навигация по странице:

  • 10 Руководство пользователя

  • Курсовая программирование. Пояснительная записка к курсовой работе по дисциплине Программирование 011. 00. 00 Пз


    Скачать 0.66 Mb.
    НазваниеПояснительная записка к курсовой работе по дисциплине Программирование 011. 00. 00 Пз
    Дата28.02.2023
    Размер0.66 Mb.
    Формат файлаdocx
    Имя файлаКурсовая программирование.docx
    ТипПояснительная записка
    #959489
    страница5 из 5
    1   2   3   4   5

    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 курсе по дисциплине “Программирование”. А также дала опыт в разработке больших программ и составлению по ним отчета.

    Список использованных источников

    1. Хохлов Д.Г. Методы программирования на языке С: практикум Ч.2. «Бином. Лаборатория знаний». 2014. – 377 с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/books/element.php ?pl1_id=50555

    2. Иванов В. Б. Прикладное программирование на C/C++: с нуля до мультимедийных и сетевых приложений. М.: «СОЛОН-Пресс». 2008. – 240 с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/books/ element.php&pl1_id=13740

    3. Липман С., Лажойе Ж. Язык программирования С++. Полное руководство. СПб.: Невский диалект, М.: ДМК Пресс. 2006. – 1104с. [Электронный ресурс]. – Режим доступа: http://e.lanbook.com/view/book/ 1216/
    1   2   3   4   5


    написать администратору сайта