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

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

Как заказчик описал требования к работе:
Работа № 1 Тема: Классы. Открытые и закрытые уровни доступа. Конструкторы. Инициализация данных объекта. Определение методов. Создание объекта в памяти. Стандартные потоки ввода-вывода. 1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1. 2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода). 3. В файле main.h определите с помощью ключевого слова class объект Person. Данные объекта: Номер человека (целый тип). ФИО (символьный массив). Пол (логический тип: 0 — муж., 1 — жен.). Возраст (вещественный тип). Пусть данные имеют закрытый уровень доступа (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 дней
Заказчик принял работу без использования гарантии
26 июля 2020
Заказ завершен, заказчик получил финальный файл с работой
5
Заказ выполнил
user1101458
5
скачать
Объектноориентированное программирование .jpg
2020-07-29 06:19
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Отличный автор, выполнил работу раньше срока, присылала промежуточные результаты работы.

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

Оставляя свои контактные данные и нажимая «Создать задание», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.
Хочешь написать работу самостоятельно?
Используй нейросеть
Мы создали собственный искусственный интеллект,
чтобы помочь тебе с учебой за пару минут 👇
Использовать нейросеть
Тебя также могут заинтересовать
Основные характеристики микропроцессоров
Реферат
Программирование
Стоимость:
300 ₽
1 вариант. Методы оптимальных решений (5 задач)
Контрольная работа
Программирование
Стоимость:
300 ₽
Веб приложение для обучения и тестирования пользователей
Выпускная квалификационная работа
Программирование
Экспериментальное знакомство с устройством процессоров через моделирование
Лабораторная работа
Программирование
Стоимость:
300 ₽
АИС Проката автомобилей
Дипломная работа
Программирование
Стоимость:
4000 ₽
C++ Максимальное значение среди элементов вектора OpenMP
Лабораторная работа
Программирование
Стоимость:
300 ₽
Лабораторная по машинному обучению
Лабораторная работа
Программирование
Стоимость:
300 ₽
1С создать систему оценок как аналог реальной картотеке
Лабораторная работа
Программирование
Стоимость:
300 ₽
С# Программа реализации и сравнения двух методов сортировки
Лабораторная работа
Программирование
Стоимость:
300 ₽
Управление программными проектами
Лабораторная работа
Программирование
Стоимость:
300 ₽
Проект по анализу набора данных для решения некоторой задачи
Лабораторная работа
Программирование
Стоимость:
300 ₽
Экспериментальное знакомство с устройством процессоров через моделирование
Лабораторная работа
Программирование
Стоимость:
300 ₽
Приложение по вычислению комплексных и вещественных корней полинома ооп с++
Лабораторная работа
Программирование
Стоимость:
300 ₽
Изучение шифрования данных, методом шифра «Цезаря»
Лабораторная работа
Программирование
Стоимость:
300 ₽
Читай полезные статьи в нашем
Создание приложений на языке VBA для MS Access
Небольшую и несложную базу данных или приложение Access можно создать в СУБД Access без использования языков программирования SQL и Visual Basic. В СУБД Access имеется достаточно средств (различных мастеров и конструкторов) для визуального проектирования таблиц, запросов, форм и отчетов.
Для решения некоторых задач автоматизации приложений Access можно использовать макросы вместо языка программиро...
подробнее
Циклы в Turbo Pfscal V.7.0
В среде программирования Turbo Pascal используют 3 вида циклических операторов:
Для цикла с предусловием характерна проверка условия перед выполнением цикла. Если условие носит истинный характер, то будет выполняться продолжение цикла, иначе - цикл завершится.
Синтаксис оператора:
while < логическое_выражение > do < оператор >;
где < оператор > представляет собой оператор, который может быть простым ...
подробнее
Фреймы в HTML
Слово «frame» обозначает рамку, кадр. С помощью фреймов пространство окна браузера делится на независимые разделы, в которых можно отобразить различную информацию. Удобно использовать фреймы при необходимости отображения на экране данных из различных источников.
Разработчики HTML-документов имеют в своем распоряжении богатый выбор форм представления информации на страницах. Текстовая и графическая ...
подробнее
Структура документа в HTML
Различают 2 типа тегов: контейнеры и одиночные.
Контейнеры представляют собой дескрипторную пару, включающую в себя начальный (открывающий) и конечный (закрывающий) теги. Начальный тег имеет вид < TAG>, где TAG - это имя реального HTML-тега. Конечный тег имеет вид < /TAG>. Суть использования контейнеров заключается в хранении определенной информации (текста или других HTML-тегов). В связи с этим со...
подробнее
Создание приложений на языке VBA для MS Access
Небольшую и несложную базу данных или приложение Access можно создать в СУБД Access без использования языков программирования SQL и Visual Basic. В СУБД Access имеется достаточно средств (различных мастеров и конструкторов) для визуального проектирования таблиц, запросов, форм и отчетов.
Для решения некоторых задач автоматизации приложений Access можно использовать макросы вместо языка программиро...
подробнее
Циклы в Turbo Pfscal V.7.0
В среде программирования Turbo Pascal используют 3 вида циклических операторов:
Для цикла с предусловием характерна проверка условия перед выполнением цикла. Если условие носит истинный характер, то будет выполняться продолжение цикла, иначе - цикл завершится.
Синтаксис оператора:
while < логическое_выражение > do < оператор >;
где < оператор > представляет собой оператор, который может быть простым ...
подробнее
Фреймы в HTML
Слово «frame» обозначает рамку, кадр. С помощью фреймов пространство окна браузера делится на независимые разделы, в которых можно отобразить различную информацию. Удобно использовать фреймы при необходимости отображения на экране данных из различных источников.
Разработчики HTML-документов имеют в своем распоряжении богатый выбор форм представления информации на страницах. Текстовая и графическая ...
подробнее
Структура документа в HTML
Различают 2 типа тегов: контейнеры и одиночные.
Контейнеры представляют собой дескрипторную пару, включающую в себя начальный (открывающий) и конечный (закрывающий) теги. Начальный тег имеет вид < TAG>, где TAG - это имя реального HTML-тега. Конечный тег имеет вид < /TAG>. Суть использования контейнеров заключается в хранении определенной информации (текста или других HTML-тегов). В связи с этим со...
подробнее
Теперь вам доступен полный отрывок из работы
Также на e-mail вы получите информацию о подробном расчете стоимости аналогичной работы