
Среда программирования: Visual C++ .NET 2019
Название работы: Объектно-ориентированное программирование. ЛР1, ЛР2. ТУСУР. Вариант 17
Вид работы: Лабораторная работа
Тематика работы: Технологии
Объем программы: 3 (по десятибалльной шкале)
Уровень сложности: 3 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: ТУСУР, ФДО, ТУСУР, ООП, лабораторная работа
Функции программы:
Лабораторная работа 1. Вариант 17.
1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1.
2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода).
3. В файле main.h определите с помощью ключевого слова class объект Mobile.
Данные объекта:
марка – char*
номер – int
сумма – float
Пусть данные имеют закрытый уровень доступа (private).
4. Опишите конструктор объекта, аргументы которого будут инициализировать все данные объекта.
5. Опишите конструктор объекта по умолчанию (без аргументов), проинициализировав все данные.
6. Опишите в объекте функцию void Print() с открытым уровнем доступа (public), которая будет выводить данные на экран.
7. Откройте файл main.cpp. С помощью директивы #include включите в файл main.cpp заголовочные файлы <stdlib.h>, <string.h>, <iostream.h>, а также заголовочный файл "main.h".
8. Ниже определите конструктор объекта, инициализирующий все данные объекта значениями аргументов. В теле конструктора используйте функцию strcpy(стр1, стр2) для копирования строки марка.
9. Определите функцию void Mobile::Print(). В теле функции для вывода данных используйте стандартный поток вывода cout.
10. Напишите главную функцию программы int main(). Внутри её создайте объект Mobile, указав все значения данных объекта. Выведите данные объекта на экран, вызвав функцию Print.
11. Затем создайте динамический объект Mobile с помощью обычного конструктора и оператора new. Выведите данные объекта на экран. Удалите динамический объект из памяти с помощью оператора delete.
12. Напишите функцию ввода данных в объект с клавиатуры void Mobile::Input(). В теле функции для ввода данных используйте стандартный поток ввода.
13. В теле функции main создайте объект Mobile с помощью конструктора по умолчанию и введите данные в объект с клавиатуры, вызвав функцию Input. Выведите данные объекта на экран.
Лабораторная работа 2. Вариант 17.
1. В среде программирования на С++ создайте консольный проект с именем LAB2 в каталоге LAB2.
2. Переименуйте файл main.h из предыдущей лабораторной в Mobile.h. Создайте файл Mobile.cpp и включите в проект эти два файла. Переместите конструктор и функции объекта Mobile из main.cpp в файл Mobile.cpp. Таким образом, файл Mobile.h содержит описание объекта Mobile, а файл Mobile.cpp – реализацию объекта Mobile.
3. Включите в проект файл main.cpp и очистите тело функции main().
4. Определите объект Group, который будет содержать динамический массив объектов Mobile. Создайте два файла group.h и group.cpp и включите их в проект.
5. В файле group.h определите с помощью ключевого слова class объект Group.
Данные объекта:
размер массива (целый тип)
указатель на массив (тип Mobile*).
Пусть данные имеют закрытый уровень доступа (private).
6. Опишите конструктор объекта с одним аргументом – размер массива (целый тип) и деструктор объекта.
7. Откройте файл group.cpp. С помощью директивы #include включите необходимые заголовочные файлы.
8. Определите конструктор объекта Group. В теле конструктора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив.
9. В деструкторе объекта освободите память, занимаемую массивом.
10. Определите открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Mobile.
11. Напишите функцию int Group::Size(), которая возвращает размер массива.
12. Напишите функции void PutMobile(int i, const Mobile& mobile); и Mobile& GetMobile(int i);, первая функция заносит объект mobile типа Mobile в i-й элемент массива, вторая функция возвращает объект типа Mobile из i-го элемента массива.
13. Заполните массив данными и затем выведите их на экран. Для этого в теле функции int main() сначала определите массивы марок, номеров и сумм которые будут заносится в объект Mobile. Затем создайте объект с именем group типа Group размером пять записей.
14. Ниже с помощью цикла for заполните массив данными. Для этого в теле цикла создайте объект Mobile, проинициализировав все его данные, и с помощью функции PutMobile занесите объект в массив.
15. Выведите массив на экран.
16. Напишите функцию приведения типа. Пусть функция возвращает сумму сотового.
17. Проверьте функцию преобразования типа. В функции int main() далее определите переменную double и присвойте ей объект Mobile. То есть совершается неявное преобразование из типа Mobile в тип double при обращении к объекту. Выведите значение переменной на экран.
18. Определите в объекте Group две функции с одинаковым именем, например double Sum(); и double Sum(int limit);. Первая функция пусть возвращает среднюю сумму группы сотовых, а вторая функция пусть возвращает среднюю сумму сотовых в группе, сумма которых больше некоторого граничного значения limit.
19. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения средней суммы.
20. Перегрузите оператор индексирования. В объекте Group с помощью ключевого слова operator определите оператор индексирования. В теле оператора напишите код, возвращающий i-ый элемент массива, т.е. объект Mobile.
21. Выведите на экран с помощью оператора индексирования любой один элемент массива group, например третий.
22. Перегрузите бинарный оператор, например оператор сложения (+), для объекта Mobile. Пусть оператор сложения будет возвращать суммарное значение суммы двух сотовых. Опишите в объекте Mobile данный оператор как дружественную функцию с помощью ключевого слова friend. В файле Mobile.cpp определите оператор сложения.
23. Проверим работу оператора.
Описание (отчет):
Есть
на 25 страниц, посмотреть оглавление
Lab2
LAB2
Group
Group
LAB2
LAB2.vcxproj
LAB2.vcxproj
main
Mobile
Mobile
LAB2
LAB2
Lab1
LAB1
LAB1
LAB1.vcxproj
LAB1.vcxproj
main
main
LAB1
LAB1Перед покупкой готовой работы не забудьте проверить её оригинальность. Запросить у администратора проверку текущей оригинальности работы по версии системы Антиплагиат.РУ
Отчет к программе. СодержаниеЗадание на лабораторную работу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Теоретическая часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Результат выполнения лабораторной работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Вывод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Cписок использованных источников . . . . . . . . . . . . . . . . . . . . . . . . .