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

Раздел
Программирование
Просмотров
4
Покупок
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

Вам подходит эта работа?
Похожие работы
ООП - Объектно-ориентированное программирование
Лабораторная работа Лабораторная
12 Окт в 09:25
4 +4
0 покупок
ООП - Объектно-ориентированное программирование
Тест Тест
19 Сен в 08:59
35
0 покупок
ООП - Объектно-ориентированное программирование
Тест Тест
21 Июл в 13:46
58 +1
0 покупок
ООП - Объектно-ориентированное программирование
Курсовая работа Курсовая
26 Июн в 12:06
55 +2
0 покупок
Другие работы автора
Базы данных
Лабораторная работа Лабораторная
12 Окт в 13:15
5 +5
0 покупок
Базы данных
Лабораторная работа Лабораторная
12 Окт в 12:57
5 +5
0 покупок
Базы данных
Лабораторная работа Лабораторная
12 Окт в 12:46
5 +5
0 покупок
Основы программирования
Лабораторная работа Лабораторная
12 Окт в 12:34
5 +5
0 покупок
Дискретная математика
Лабораторная работа Лабораторная
12 Окт в 12:18
5 +5
0 покупок
Математическая логика
Контрольная работа Контрольная
12 Окт в 12:11
6 +6
0 покупок
Дискретная математика
Лабораторная работа Лабораторная
12 Окт в 12:03
5 +5
0 покупок
Искусственный интеллект
Контрольная работа Контрольная
12 Окт в 11:55
6 +6
0 покупок
Искусственный интеллект
Контрольная работа Контрольная
12 Окт в 11:51
5 +5
0 покупок
Моделирование систем
Курсовая работа Курсовая
12 Окт в 11:43
4 +4
0 покупок
Моделирование систем
Лабораторная работа Лабораторная
12 Окт в 11:36
4 +4
0 покупок
Моделирование систем
Лабораторная работа Лабораторная
12 Окт в 11:33
4 +4
0 покупок
Микропроцессорная техника
Лабораторная работа Лабораторная
12 Окт в 11:24
4 +4
0 покупок
Микропроцессорная техника
Лабораторная работа Лабораторная
12 Окт в 11:19
4 +4
0 покупок
Базы данных
Курсовая работа Курсовая
12 Окт в 11:10
5 +5
0 покупок
Методы защиты информации
Лабораторная работа Лабораторная
12 Окт в 11:01
4 +4
0 покупок
Методы защиты информации
Лабораторная работа Лабораторная
12 Окт в 10:58
4 +4
0 покупок
Темы журнала
Показать ещё
Прямой эфир