1

Тема: Створити програму для обробки відомостей про студентів

Створити програму для обробки відомостей про студентів, що навчаються в
групі. Інформація про студентів міститься в бінарному файлі, який містить:
прізвище, ім’я, рік народження, середній бал.
Програма повинна виконувати такі дії:
- Додавати відомості про нового студента.
- Виводити дані про всіх студентів у табличному вигляді.
- Знаходити кількість та прізвища студентів 2000 року народження.
- Проаналізувати чи є в групі студент з прізвищем, що було введено додатково.

2

Re: Створити програму для обробки відомостей про студентів

Щойно з'явиться на форумі пан P.Y., одразу допоможе з розв'язанням поставленої задачі.

3

Re: Створити програму для обробки відомостей про студентів

Швидше прийде ведмедик і закриє тему

4

Re: Створити програму для обробки відомостей про студентів

ChatGPT якоїсь там версії написав:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

// Структура, що містить відомості про студента
struct Student {
    string surname;
    string name;
    int birth_year;
    double avg_grade;
};

// Функція для додавання відомостей про нового студента
void add_student(vector<Student>& students) {
    Student new_student;
    cout << "Enter surname: ";
    cin >> new_student.surname;
    cout << "Enter name: ";
    cin >> new_student.name;
    cout << "Enter birth year: ";
    cin >> new_student.birth_year;
    cout << "Enter average grade: ";
    cin >> new_student.avg_grade;
    students.push_back(new_student);
}

// Функція для виведення даних про всіх студентів у табличному вигляді
void print_students(const vector<Student>& students) {
    cout << "Surname\tName\tBirth Year\tAvg Grade\n";
    for (const auto& student : students) {
        cout << student.surname << "\t" << student.name << "\t" << student.birth_year << "\t\t" << student.avg_grade << "\n";
    }
}

// Функція для знаходження кількості та прізвищ студентів 2000 року народження
void find_students_2000(const vector<Student>& students) {
    int count = 0;
    cout << "Students born in 2000:\n";
    for (const auto& student : students) {
        if (student.birth_year == 2000) {
            count++;
            cout << student.surname << "\n";
        }
    }
    cout << "Total: " << count << "\n";
}

// Функція для аналізу того, чи є в групі студент з певним прізвищем
void find_student_by_surname(const vector<Student>& students) {
    string surname;
    cout << "Enter surname to search: ";
    cin >> surname;
    auto found = find_if(students.begin(), students.end(), [&surname](const Student& student) {
        return student.surname == surname;
    });
    if (found != students.end()) {
        cout << "Student found: " << found->name << "\n";
    } else {
        cout << "Student not found\n";
    }
}

int main() {
    vector<Student> students;
    ifstream input_file("students.dat", ios::binary);
    if (input_file.is_open()) {
        // Зчитуємо відомості про студентів з бінарного файлу
        while (!input_file.eof()) {
            Student student;
            input_file.read(reinterpret_cast<char*>(&student), sizeof(student));
            students.push_back(student);
        }
        input_file.close();
    }
    int choice;
    do {
        cout << "Menu:\n";
        cout << "1. Add student\n";
        cout << "2. Print all students\n";
        cout << "3. Find students born in 2000\n";
        cout << "4. Find student by surname\n";
        cout << "0. Exit\n";
        cout << "Enter choice: ";
        cin >> choice;
        switch (choice) {
            case 1:
                add_student(students);
                break;
            case 2:
                print_students(students);
                break;
            case 3:
                find_students_2000(students);
                break;
            case 4:
                find_student_by_surname(students);
                break;
            case 0:
                break;
            default:
                cout << "Invalid choice\n";
                break;
        }
    } while (choice != 0);
    ofstream output_file("students.dat", ios::binary);
    if (output_file.is_open()) {
        // Записуємо відомості про студентів у бінарний файл
        for (const auto& student : students) {
            output_file.write(reinterpret_cast<const char*>(&student), sizeof(student));
        }
        output_file.close();
    }
    return 0;
}

Не дякуйте.

5

Re: Створити програму для обробки відомостей про студентів

халтура

Подякували: Chemist-i1