Лабораторная работа №2 "Объектно-ориентированное программирование" Вариант №12

Раздел
Программирование
Просмотров
35
Покупок
0
Антиплагиат
Не указан
Размещена
12 Окт в 09:36
ВУЗ
ТУСУР
Курс
3 курс
Стоимость
1 000 ₽
Демо-файлы   
2
png
Безымянный
23.9 Кбайт
png
Безымянный
18.4 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
rar
LABA2
2.4 Мбайт 1 000 ₽
Описание

Лабораторная работа №2 "Объектно-ориентированное программирование" Вариант №12

Тема: Создание динамического массива объектов. Деструктор объекта. Два типа полиморфизма: принудительное приведение типа, перегрузка функций и перегрузка операторов (унарных и бинарных).

1. В среде программирования на С++ создайте консольный проект с именем LAB2 в каталоге LAB2.

2. Переименуйте файл main.h из предыдущей лабораторной в person.h. Создайте файл person.cpp и включите в проект эти два файла. Переместите конструктор и функции объекта Person из main.cpp в файл person.cpp. Таким образом, файл person.h содержит описание объекта Person, а файл person.cpp — реализацию объекта Person.

3. Включите в проект файл main.cpp и очистите тело функции main().

4. Определим объект Group, который будет содержать динамический массив объектов Person. Создайте два файла group.h и group.cpp и включите их в проект.

5. В файле group.h определите с помощью ключевого слова class объект Group.Данные объекта: размер массива (целый тип) указатель на массив (тип Person*). Пусть данные имеют закрытый уровень доступа (private).

6. Опишите конструктор объекта с одним аргументом — размер массива (целый тип) и деструктор объекта.

7. Откройте файл group.cpp. С помощью директивы #include включите необходимые заголовочные файлы.

8. Определите конструктор объекта Group. В теле конструктора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив с помощью строки кода: указатель на массив = new Person[размер массива].

9. В деструкторе объекта освободите память, занимаемую массивом, с помощью строки кода delete [] указатель на массив. Таким образом, мы создали объект Group, который содержит массив объектов Person. 10. Определим открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Person.

11. Напишите функцию int Group::Size(), которая возвращает размер массива.

12. Напишите функции void PutPerson(int i, Person& man); и Person& GetPerson(int i);, первая функция заносит объект man типа Person в i-й элемент массива, вторая функция возвращает объект типа Person из i-го элемента массива.

13. Заполните массив данными и затем выведите их на экран. Для этого в теле функции int main() сначала определите массив имен, которые будут заносится в поле ФИО объекта Person, например, char names[5][25] = {"A", "B", "C", "D", "E"};. Затем создайте объект с именем group типа Group размером пять записей, т.е. Group group(5);.

14. Ниже с помощью цикла for заполните массив данными. Для этого в теле цикла создайте объект Person, проинициализировав все его данные, и с помощью функции PutPerson занесите объект в массив.

15. Выведите массив на экран с помощью строки кода: group.Print();. Получилось? Если да, то вы научились создавать динамический массив объектов, определять функции работы с таким массивом и выводить его на экран.

16. В этой части лабораторной работы изучим первые два типа полиморфизма — это а) принудительное приведение типа; б) перегрузка функций и операторов.

17. Напишите функцию приведения типа. Для этого с помощью ключевого слова operator напишите функцию объекта Person, которая преобразует тип Person в double. Пусть функция возвращает возраст человека, например, Person::operator double() { return this->Age; }. Что означает ключевое слово this?

18. Проверьте функцию преобразования типа. В функции int main() далее определите переменную double и присвойте ей объект Person, например: double age = group.GetPerson(2);. То есть совершается неявное преобразование из типа Person в тип double при обращении к объекту. Выведите значение переменной на экран.

19. Перегруженные функции имеют одинаковое название, но разный возвращаемый тип или/и разный список аргументов. Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);. Первая функция пусть возвращает средний возраст группы людей, а вторая функция пусть возвращает средний возраст людей в группе, возраст которых не больше некоторого граничного значения limit. Функции отличаются списком аргументов.

20. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста.

21-24 пункт не влезли

Оглавление

Введение .3

1.Задание.4

2.Выполнение лабораторной работы .8

ПРИЛОЖЕНИЕ А.13

ПРИЛОЖЕНИЕ Б.15

ПРИЛОЖЕНИЕ В.20

ПРИЛОЖЕНИЕ Г.22

ПРИЛОЖЕНИЕ Д.23

Вам подходит эта работа?
Похожие работы
Другие работы автора
Темы журнала
Показать ещё
Прямой эфир