Объектно-ориентированное программирование. ЛР1 + ЛР2. Вариант 24. ЦВЕТОК, тип — char, дата — int, сумма — float
Лабораторная работа
в среде программирования С++ Visual Studio
Среда программирования: С++ Visual Studio
Название работы: Объектно-ориентированное программирование. ЛР1 + ЛР2. Вариант 24. ЦВЕТОК, тип — char, дата — int, сумма — float
Вид работы: Лабораторная работа
Описание: Объектно-ориентированное программирование - две лабораторные работы.
Лабораторная работа 1.
Классы. Открытые и закрытые уровни доступа. Конструкторы. Инициализация данных объекта. Определение методов. Создание объекта в памяти. Стандартные потоки ввода-вывода.
Вариант 24.
ПОСТАНОВКА ЗАДАЧИ
Вариант № 24
ЦВЕТОК
тип — char
дата — int
сумма — float
ХОД ВЫПОЛНЕНИЯ РАБОТЫ
1. Создать проект с именем LAB1
2. Создать заголовочный файл и файл исходного кода main.h и main.cpp
3. Описать структуру класса Flower
4. Описать конструкторы с параметрами и по умолчанию.
5. Описать функцию заполнения данными объекта с клавиатуры
6. Описать деструктор
7. Реализовать функцию конструкторов в файле main.cpp
8. Реализовать функцию вывода на экран в файле main.cpp
9. Реализовать функцию ввода данных с клавиатуры для заполнения полей объекта в файле main.cpp
10. Реализовать функционал деструктора в файле main.cpp
Лабораторная работа 2.
Создание динамического массива объектов. Деструктор объекта. Два типа полиморфизма: принудительное приведение типа, перегрузка функций и перегрузка операторов (унарных и бинарных).
Вариант 24.
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. Опишите конструктор объекта с одним аргументом — размер массива (целый тип) и деструктор объекта.
9. Определите конструктор объекта Group. В теле конструктора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив с помощью строки кода:
указатель на массив = new Person[размер массива].
10. В деструкторе объекта освободите память, занимаемую массивом, с помощью строки кода
delete [] указатель на массив.
11. Определим открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Person.
12. Напишите функцию int Group::Size(), которая возвращает размер массива.
13. Напишите функции void PutPerson(int i, Person& man); и Person& GetPerson(int i);, первая функция заносит объект man типа Person в i-й элемент массива, вторая функция возвращает объект типа Person из i-го элемента массива.
14. Заполните массив данными и затем выведите их на экран. Для этого в теле функции int main() сначала определите массив имен, которые будут заносится в поле ФИО объекта Person, например, char names[5][25] = {"A", "B", "C", "D", "E"};.
Затем создайте объект с именем group типа Group размером пять записей, т.е. Group group(5);.
15. Ниже с помощью цикла for заполните массив данными. Для этого в теле цикла создайте объект Person, проинициализировав все его данные, и с помощью функции PutPerson занесите объект в массив.
16. Выведите массив на экран с помощью строки кода: group.Print();.
17. В этой части лабораторной работы изучим первые два типа полиморфизма — это а) принудительное приведение типа; б) перегрузка функций и операторов.
18. Напишите функцию приведения типа. Для этого с помощью ключевого слова operator напишите функцию объекта Person, которая преобразует тип Person в double. Пусть функция возвращает возраст человека, например, Person::operator double() { return this->Age; }.
19. Проверьте функцию преобразования типа. В функции int main() далее определите переменную double и присвойте ей объект Person, например: double age = group.GetPerson(2);.
То есть совершается неявное преобразование из типа Person в тип double при обращении к объекту. Выведите значение переменной на экран.
20. Перегруженные функции имеют одинаковое название, но разный возвращаемый тип или/и разный список аргументов. Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);. Первая функция пусть возвращает средний возраст группы людей, а вторая функция пусть возвращает средний возраст людей в группе, возраст которых не больше некоторого граничного значения limit. Функции отличаются списком аргументов.
21. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста.
22. Перегрузите оператор индексирования.
В объекте Group с помощью ключевого слова operator определите оператор индексирования, например: Person& Group::operator[](int i).
В теле оператора напишите код, возвращающий i-ый элемент массива, т.е. объект Person.
23. Выведите на экран с помощью оператора индексирования любой один элемент массива group, например третий.
24. Перегрузим бинарный оператор, например оператор сложения (+), для объекта Person. Пусть оператор сложения будет возвращать суммарный возраст двух человек. Опишем в объекте Person данный оператор как дружественную функцию с помощью ключевого слова friend, например: friend double operator+(Person& p1, Person& p2);
В файле person.cpp определите оператор сложения, например:
double operator + (Person& p1, Person& p2)
25. Проверим работу оператора с помощью следующих строк кода:
double sum = group[1] + group[3];
cout << sum << endl;
Год: 2022
Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2022-м году, в рамках этого заказа была разработана программа в среде программирования С++ Visual Studio. Если у Вас похожее задание на программу, которую нужно написать на С++ Visual Studio, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2022-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Viber: ![]() Telegram: ![]() ВКонтакте: ![]() ![]() E-mail: ![]() |