Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Разработка класса для работы с динамической памятью

Автор:   •  Июнь 2, 2023  •  Лабораторная работа  •  2,579 Слов (11 Страниц)  •  135 Просмотры

Страница 1 из 11

Программирование. ООП. Лабораторная работа №3

Разработка класса для работы с динамической памятью

Разработать класс "Динамический массив объектов" для операций с объектами класса, разработанного в лабораторной работе №2. Класс должен включать указатель на динамический массив, текущее количество объектов в массиве, конструкторы и деструктор, методы set(…), get(…), add(…), del(…), show(…). Определить другие необходимые методы. В конструкторах и деструкторе реализовать выделение и освобождение динамической памяти под массив объектов.

Для выполнения задания прикрепить архив файлов проекта MS Visual C++.

Замечание 1. Для выполнения задания необходимо использовать результаты предыдущей лабораторной работы №2 "Разработка простого класса".

Замечание 2. В примере не учитывается, что вводимые символьные данные могут иметь пробелы (пробел распознается как конец строки).  Для реализации строк с пробелами необходимо использовать специальные функции ввода строк или методы класса string. Например: 

fflush(stdin); // очистка потока
cout << "Введите ФИО студента: ";
gets_s(name,sizeof(name));

Пример

#include <iostream>

#include <conio.h>

#include <string.h>

using namespace std;

struct date                                        // дата

{

        int day, month, year;        // день, месяц, год

};

class Student

{

        char name[30];        // ФИО студента

        date d;                        // дата рождения

        char adr[30], fac[20];        // домашний адрес и факультет

        int kurs;                // курс

public:

        Student();                                // конструктор, инициализация объекта

        void input();                        // метод ввода данных студента

        void set(Student s);        // метод для занесения данных студента из объекта типа Student

        Student get();                        // метод для считывания данных студента

        char *getFac();                        // метод для обращения к факультету студента

        int getKurs();                        // метод для считывания курса студента

        void show();                        // метод вывода данных студента

};

Student::Student()

{

        input();        // вызов метода для текущего объекта, то же, что this->input();

}

void Student::input()

{

        cout << "==========" << endl;

        cout << "Введите ФИО студента: ";

        cin >> name;

        cout << "Введите дату рождения\n";

        cout << "день: ";

        cin >> d.day;

        cout << "месяц: ";

        cin >> d.month;

        cout << "год: ";

        cin >> d.year;

        cout << "Введите адрес: ";

        cin >> adr;

        cout << "Введите факультет: ";

        cin >> fac;

        cout << "Введите курс: ";

        cin >> kurs;

}

void Student::set(Student s)

{

        strcpy(name,s.name);

        d=s.d;        // d.day=s.d.day; d.month=s.d.month; d.year=s.d.year;

        strcpy(adr,s.adr);

        strcpy(fac,s.fac);

        kurs=s.kurs;

}

void Student::show()

{

        cout << "ФИО: " << name << endl;

        cout << "Дата рождения: " << d.day << '.' << d.month << '.' << d.year << endl;

...

Скачать:   txt (11.8 Kb)   pdf (110 Kb)   docx (12.7 Kb)  
Продолжить читать еще 10 страниц(ы) »
Доступно только на Essays.club