Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №10_условие.docx
Скачиваний:
5
Добавлен:
12.07.2022
Размер:
62.81 Кб
Скачать

Задание

Составить программу, формирующую сведения о студентах.

Каждый студент описывается с помощью класса, содержащего следующие поля:

– номер зачетки (ключ);

– ФИО студента;

– группа;

– курс.

Класс должен быть сохранен в двух файлах – заголовочном (.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;

}