Найди эксперта для помощи в учебе
Найти эксперта
+2
Пример заказа на Автор24
Студенческая работа на тему:
Объектноориентированное программирование
Создан заказ №5398135
29 августа 2020

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

Как заказчик описал требования к работе:
Работа № 1 Тема: Классы. Открытые и закрытые уровни доступа. Конструкторы. Инициализация данных объекта. Определение методов. Создание объекта в памяти. Стандартные потоки ввода-вывода. 1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1. 2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода). 3. В файле main.h определите с помощью ключевого слова class объект Person. Данные объекта: КАРТА тип - char масштаб - int полушарие char. Пусть данные имеют закрытый уровень доступа (private). 4. Опишите конструктор объекта, аргументы которого будут инициализировать все данные объекта. 5. Опишите конструктор объекта по умолчанию (без аргу- ментов), проинициализировав все данные. 6. Опишите в объекте функцию void Print() с открытым уров- нем доступа (public), которая будет выводить данные на экран. 7. Откройте файл main.cpp. С помощью директивы #include включите в файл main.cpp заголовочные файлы , , , а также ваш заголовочный файл "Main.h". 8. Ниже определите конструктор объекта, инициализирую- щий все данные объекта значениями аргументов. В теле конст- руктора используйте функцию strcpy(стр1, стр2) для копирования строки имени человека (ФИО). 9. Затем определите функцию void Person::Print(). В теле функции для вывода данных используйте стандартный поток вы- вода cout значение2 >> …; 13. Затем в теле функции main создайте объект Person с по- мощью конструктора по умолчанию и введите данные в объект с клавиатуры, вызвав функцию Input. Выведите данные объекта на экран. Работа № 2 Тема: Создание динамического массива объектов. Дест- руктор объекта. Два типа полиморфизма: принудительное при- ведение типа, перегрузка функций и перегрузка операторов (унарных и бинарных). 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. 49 Данные объекта: размер массива (целый тип) указатель на массив (тип 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, например, 50 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);. Первая функция пусть возвращает средний возраст группы людей, а вторая функ- 51 ция пусть возвращает средний возраст людей в группе, возраст которых не больше некоторого граничного значения limit. Функ- ции отличаются списком аргументов. 20. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста. 21. Перегрузите оператор индексирования. Если раньше, чтобы обратиться к элементу массива, нам необходимо было вы- зывать функцию GetPerson, то, определив оператор индексирова- ния, мы будем использовать только квадратные скобки. Сравните две строки кода: Person man = group.GetPerson(2); Person man = group[2]; В объекте Group с помощью ключевого слова operator опре- делите оператор индексирования, например: Person& Group::operator[](int i). В теле оператора напишите код, возвращающий i-ый эле- мент массива, т.е. объект Person. 22. Выведите на экран с помощью оператора индексирова- ния любой один элемент массива group, например третий. 23. Перегрузим бинарный оператор, например оператор сложения (+), для объекта Person. Пусть оператор сложения бу- дет возвращать суммарный возраст двух человек. Опишем в объ- екте Person данный оператор как дружественную функцию с по- мощью ключевого слова friend, например: friend double operator+(Person& p1, Person& p2); Эта строка кода означает, что оператор сложения не при- надлежит объекту, но ему доступны все закрытые данные и мето- ды объекта. В файле person.cpp определите оператор сложения, например: double operator + (Person& p1, Person& p2) { return (p1.Age + p2.Age); } 52 Здесь мы напрямую обращаемся к закрытому полю Age объ- екта Person. 24. Проверим работу оператора с помощью следующих строк кода: double sum = group[1] + group[3]; cout код имеется нужно его исправить по замечания
подробнее
Заказчик
заплатил
200 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
20 дней
Заказчик принял работу без использования гарантии
30 августа 2020
Заказ завершен, заказчик получил финальный файл с работой
5
Заказ выполнил
IG1968
5
скачать
Объектноориентированное программирование.jpg
2020-09-02 06:19
Последний отзыв студента о бирже Автор24
Общая оценка
4
Положительно
Спасибо огромное автору! Работа выполнена раньше срока, очень качественно. Программа отличная. Супер! Автор очень выручил. Настоящий профессионал. Самый лучший автор.

Хочешь такую же работу?

Оставляя свои контактные данные и нажимая «Создать задание», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.
Хочешь написать работу самостоятельно?
Используй нейросеть
Мы создали собственный искусственный интеллект,
чтобы помочь тебе с учебой за пару минут 👇
Использовать нейросеть
Тебя также могут заинтересовать
Программирование критических сервисов
Лабораторная работа
Программирование
Стоимость:
300 ₽
Разработка веб-приложений с использованием технологии ASP.NET Core
Решение задач
Программирование
Стоимость:
150 ₽
Вправа 1. Запишіть подані дієслова у три стовпчики за способами дієслі
Контрольная работа
Программирование
Стоимость:
300 ₽
Искусственные нейронные сети в распознавании образов
Дипломная работа
Программирование
Стоимость:
4000 ₽
Создание ссылочных типов в языке программирования Паскаль
Курсовая работа
Программирование
Стоимость:
700 ₽
Проверить лабораторную работу по программированию (модель Изинга)
Лабораторная работа
Программирование
Стоимость:
300 ₽
Интернет - магазин (курсовая работа)
Курсовая работа
Программирование
Стоимость:
700 ₽
Обработка дигитальных сигналов (высоко и низкочастотные фильтры)
Лабораторная работа
Программирование
Стоимость:
300 ₽
Разработка пользовательского интерфейса в Figma
Лабораторная работа
Программирование
Стоимость:
300 ₽
Классы и объекты в С++
Лабораторная работа
Программирование
Стоимость:
300 ₽
Сделать лабораторные работы по ооп на языке c#
Лабораторная работа
Программирование
Стоимость:
300 ₽
лабораторные в CPN Tools - Киндякова
Лабораторная работа
Программирование
Стоимость:
300 ₽
C++ Написать приложение показывающее возможность создания gif-файлов.
Лабораторная работа
Программирование
Стоимость:
300 ₽
Проектирование и архитектура программных систем
Лабораторная работа
Программирование
Стоимость:
300 ₽
Разработка приложений с использованием файлового ввода/вывода С++
Лабораторная работа
Программирование
Стоимость:
300 ₽
Новое задание по программированию
Лабораторная работа
Программирование
Стоимость:
300 ₽
Читай полезные статьи в нашем
Встроенные функции в VBA
Практически весь программный код модулей VBA содержится в процедурах двух типов Sub (подпрограммы) и Function (функции). Основная задача процедуры-функции Function - это вычисление некоторого значения и возвращение его в точку вызова процедуры-функции.
Синтаксис процедуры-функции Function:
Function Имя_Функции(аргументы As < mun >) As < mun >
< блок операторов >
Имя_Функции = Возвращаемое_Значение
End...
подробнее
Структура документа в HTML
Различают 2 типа тегов: контейнеры и одиночные.
Контейнеры представляют собой дескрипторную пару, включающую в себя начальный (открывающий) и конечный (закрывающий) теги. Начальный тег имеет вид < TAG>, где TAG - это имя реального HTML-тега. Конечный тег имеет вид < /TAG>. Суть использования контейнеров заключается в хранении определенной информации (текста или других HTML-тегов). В связи с этим со...
подробнее
Работа с таблицами на веб-страницах
При необходимости размещения на ограниченном пространстве веб-страницы множества цифровых (и не только) данных лучшим средством является таблица. При необходимости создания красивого списка снова может помочь таблица. И при необходимости точного позиционирования текста и графики относительно друг друга опять же поможет таблица. Таблицы используются повсеместно в веб-документах. И это немудрено: пр...
подробнее
Какой язык программирования лучше изучать первым
При выборе языка программирования (ЯП) необходимо учитывать порог вхождения - количество времени и усилий, которые начинающий специалист должен в среднем затратить перед тем, как начнет писать работоспособные программы достаточного для решения практических задач качества. Порог вхождения зависит от таких факторов, как:
Как правило, более молодые люди способны быстрее освоить программирование, хотя ...
подробнее
Встроенные функции в VBA
Практически весь программный код модулей VBA содержится в процедурах двух типов Sub (подпрограммы) и Function (функции). Основная задача процедуры-функции Function - это вычисление некоторого значения и возвращение его в точку вызова процедуры-функции.
Синтаксис процедуры-функции Function:
Function Имя_Функции(аргументы As < mun >) As < mun >
< блок операторов >
Имя_Функции = Возвращаемое_Значение
End...
подробнее
Структура документа в HTML
Различают 2 типа тегов: контейнеры и одиночные.
Контейнеры представляют собой дескрипторную пару, включающую в себя начальный (открывающий) и конечный (закрывающий) теги. Начальный тег имеет вид < TAG>, где TAG - это имя реального HTML-тега. Конечный тег имеет вид < /TAG>. Суть использования контейнеров заключается в хранении определенной информации (текста или других HTML-тегов). В связи с этим со...
подробнее
Работа с таблицами на веб-страницах
При необходимости размещения на ограниченном пространстве веб-страницы множества цифровых (и не только) данных лучшим средством является таблица. При необходимости создания красивого списка снова может помочь таблица. И при необходимости точного позиционирования текста и графики относительно друг друга опять же поможет таблица. Таблицы используются повсеместно в веб-документах. И это немудрено: пр...
подробнее
Какой язык программирования лучше изучать первым
При выборе языка программирования (ЯП) необходимо учитывать порог вхождения - количество времени и усилий, которые начинающий специалист должен в среднем затратить перед тем, как начнет писать работоспособные программы достаточного для решения практических задач качества. Порог вхождения зависит от таких факторов, как:
Как правило, более молодые люди способны быстрее освоить программирование, хотя ...
подробнее
Теперь вам доступен полный отрывок из работы
Также на e-mail вы получите информацию о подробном расчете стоимости аналогичной работы