ООП. Объектно-ориентированное программирование. ЛР1, ЛР2. Вариант 24. Класс Flower: char* type - указатель на строку типа цветка; int date - дата; float sum - сумма

Лабораторная работа
в среде программирования Visual C++ .NET 2019



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Visual C++ .NET 2019

Название работы: ООП. Объектно-ориентированное программирование. ЛР1, ЛР2. Вариант 24. Класс Flower: char* type - указатель на строку типа цветка; int date - дата; float sum - сумма

Вид работы: Лабораторная работа

Описание: ООП. Объектно-ориентированное программирование. ЛР 1-2. Вариант 24. Класс Flower: char* type - указатель на строку типа цветка; int date - дата; float sum - сумма

Объектно-ориентированное программирование

Лабораторная работа 1

Задание на лабораторную работу:
1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1.
2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода).
3. В файле main.h определите с помощью ключевого слова class объект Flower.
Данные объекта:
Тип (символьный массив)
Дата (целый тип)
Сумма (вещественный тип)
Пусть данные имеют закрытый уровень доступа (private).
4. Опишите конструктор объекта, аргументы которого будут инициализировать все данные объекта.
5. Опишите конструктор объекта по умолчанию (без аргументов), проинициализировав все данные.
6. Опишите в объекте функцию void Print() с открытым уровнем доступа (public), которая будет выводить данные на экран.
7. Откройте файл main.cpp. С помощью директивы #include включите в файл main.cpp заголовочные файлы <stdlib.h>, <string.h>, <iostream.h>, а также ваш заголовочный файл "main.h".
8. Ниже определите конструктор объекта, инициализирующий все данные объекта значениями аргументов.
9. Затем определите функцию void Flower::Print(). В теле функции для вывода данных используйте стандартный поток вывода;
10. Ниже напишите главную функцию программы int main(). Внутри ее создайте объект Flower, указав все значения данных объекта. Выведите данные объекта на экран, вызвав функцию Print.
11. Затем создайте динамический объект Flower с помощью обычного конструктора и оператора new. Выведите данные объекта на экран. Удалите динамический объект из памяти с помощью оператора delete.
12. Напишите функцию ввода данных в объект с клавиатуры void Flower::Input(). В теле функции для ввода данных используйте стандартный поток ввода;
13. Затем в теле функции main создайте объект Flower с помощью конструктора по умолчанию и введите данные в объект с клавиатуры, вызвав функцию Input. Выведите данные объекта на экран.

Вариант 24
Класс Flower:
char* type - указатель на строку типа цветка;
int date - дата;
float sum - сумма

Лабораторная работа 2

Задание на лабораторную работу:
1. В среде программирования на С++ создайте консольный проект с именем LAB2 в каталоге LAB2.
2. Переименуйте файл main.h из предыдущей лабораторной в Flower.h. Создайте файл Flower.cpp и включите в проект эти два файла. Переместите конструктор и функции объекта Flower из main.cpp в файл Flower.cpp. Таким образом, файл Flower.h содержит описание объекта Flower, а файл Flower.cpp – реализацию объекта Flower.
3. Включите в проект файл main.cpp и очистите тело функции main().
4. Определим объект Group, который будет содержать динамический массив объектов Flower. Создайте два файла Group.h и Group.cpp и включите их в проект.
5. В файле Group.h определите с помощью ключевого слова class объект Group. Данные объекта:
• размер массива (целый тип)
• указатель на массив (тип Flower*).
Пусть данные имеют закрытый уровень доступа (private).
6. Опишите конструктор объекта с одним аргументом – размер массива (целый тип) и деструктор объекта.
7. Откройте файл Group.cpp. С помощью директивы #include включите необходимые заголовочные файлы.
8. Определите конструктор объекта Group. В теле конструктора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив.
9. В деструкторе объекта освободите память, занимаемую массивом. Таким образом, мы создали объект Group, который содержит массив объектов Flower.
10. Определим открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Flower.
11. Напишите функцию int Group::Size(), которая возвращает размер массива.
12. Напишите функции void PutFlower(int i, Flower& flower); и Flower& GetFlower(int i);, первая функция заносит объект man типа Flower в i-й элемент массива, вторая функция возвращает объект типа Flower из i-го элемента массива.
13. Заполните массив данными и затем выведите их на экран. Создайте объект с именем group типа Group размером пять записей, т.е. Group group(5);.
14. Ниже с помощью цикла for заполните массив данными. Для этого в теле цикла создайте объект Flower, проинициализировав все его данные, и с помощью функции PutFlower занесите объект в массив.
15. Выведите массив на экран с помощью строки кода: group.Print();.
16. В этой части лабораторной работы изучим первые два типа полиморфизма – это а) принудительное приведение типа; б) перегрузка функций и операторов.
17. Напишите функцию приведения типа. Для этого с помощью ключевого слова operator напишите функцию объекта Flower, которая преобразует тип Flower в double. Пусть функция возвращает сумму цветка.
18. Проверьте функцию преобразования типа. В функции int main() далее определите переменную double и присвойте ей объект Flower. Выведите значение переменной на экран.
19. Перегруженные функции имеют одинаковое название, но разный возвращаемый тип или/и разный список аргументов. Определим в объекте Group две функции с одинаковым именем, например double Sum(); и double Sum(double limit);. Первая функция пусть возвращает среднюю сумму группы цветов, а вторая функция пусть возвращает среднюю сумму цветов в группе, сумма которых больше некоторого граничного значения limit. Функции отличаются списком аргументов.
20. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста.
21. Перегрузите оператор индексирования. Если раньше, чтобы обратиться к элементу массива, нам необходимо было вызывать функцию GetFlower, то, определив оператор индексирования, мы будем использовать только квадратные скобки. Сравните две строки кода:
Flower flower1 = group.GetFlower(2);
Flower flower2 = group[2];
В объекте Group с помощью ключевого слова operator определите оператор индексирования. В теле оператора напишите код, возвращающий
i-ый элемент массива, т.е. объект Flower.
22. Выведите на экран с помощью оператора индексирования любой один элемент массива group, например третий.
23. Перегрузим бинарный оператор, например оператор сложения (+), для объекта Flower. Пусть оператор сложения будет возвращать суммарную сумму двух цветков. Опишем в объекте Flower данный оператор как дружественную функцию с помощью ключевого слова friend.
24. Проверим работу оператора с помощью следующих строк кода:
double sum = group[1] + group[3];
cout << sum << endl;

Вариант 24
Класс Flower:
char* type - указатель на строку типа цветка;
int date - дата;
float sum - сумма

Год: 2023

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2023-м году, в рамках этого заказа была разработана программа в среде программирования Visual C++ .NET 2019. Если у Вас похожее задание на программу, которую нужно написать на Visual C++ .NET 2019, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2023-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com