Задание
Составить программу, формирующую сведения о студентах.
Каждый студент описывается с помощью класса, содержащего следующие поля:
– номер зачетки (ключ);
– ФИО студента;
– группа;
– курс.
Класс должен быть сохранен в двух файлах – заголовочном (.h) с описанием класса, и файлом (.cpp) с реализациями конструкторов и методов класса.
Данные хранятся в виде вектора.
Программа должна реализовывать следующие операции в виде отдельных функций или методов класса:
– формирование меню для выбора действия пользователем;
– ввод данных в вектор;
– вывод данных из вектора в виде таблицы;
– поиск элемента в векторе по ФИО студента (предусмотреть ввод части ФИО для поиска);
– редактирование элемента в векторе по указанному номеру зачетки;
– удаление элемента из вектора по заданному ключу;
– сортировка элементов в векторе по заданному полю.
Текст файла Students.H
//Файл Student.h содержит описание класса Student
#pragma once
#include<string>
#include <iostream>
class Student //Класс, описывающий студента
{
private:
std::string num_zach; //Номер зачетки
std::string fio; //ФИО студента
std::string gruppa; //Группа
int kurs; //Курс
public:
//Конструкторы класса
Student();
Student(const Student& obj);
Student(const std::string& _num_zach, const std::string& _fio, const std::string& _gruppa, int _kurs);
//Методы получения доступа к значениям полей класса
std::string get_num_zach() const;
std::string get_fio() const;
std::string get_gruppa() const;
int get_kurs() const;
//Методы для задания значений полей класса
void set_num_zach(std::string new_num_zach);
void set_fio(std::string new_fio);
void set_gruppa(std::string new_gruppa);
void set_kurs(int new_kurs);
//Метод для вывода содержимого полей класса на экран
void show() const;
};
Текст файла Students.Cpp
//Файл Student.cpp - содержит реализацию методов класса Student
#include "Student.h"
using namespace std;
//Реализация конструкторов
Student::Student() : kurs(0) {}
Student::Student(const Student& obj) : num_zach(obj.num_zach), fio(obj.fio), gruppa(obj.gruppa), kurs(obj.kurs) {}
Student::Student(const string& _num_zach, const string& _fio, const string& _gruppa, int _kurs) : num_zach(_num_zach), fio(_fio), gruppa(_gruppa), kurs(_kurs) {}
//Реализация методов получения доступа к значениям полей класса
string Student::get_num_zach() const { return num_zach; }
string Student::get_fio() const { return fio; };
string Student::get_gruppa() const { return gruppa; };
int Student::get_kurs() const { return kurs; };
//Реализация методов для задания значений полей класса
void Student::set_num_zach(string new_num_zach) { num_zach = new_num_zach; }
void Student::set_fio(string new_fio) { fio = new_fio; };
void Student::set_gruppa(string new_gruppa) { gruppa = new_gruppa; };
void Student::set_kurs(int new_kurs) { kurs = new_kurs; };
//Реализация метода для вывода содержимого полей класса на экран
void Student::show() const {
cout << "Номер зачетки : " << num_zach << endl;
cout << "ФИО : " << fio << endl;
cout << "Группа : " << gruppa << endl;
cout << "Курс : " << kurs << endl << endl;
}