Объектно-ориентированное программировани - Контрольная - Программирование - готовые работы

Исполнители
Безопасность заказов и сделок
Время на проверку работ
Войти
olga_1309 - автор студенческих работ

VIP! olga_1309  ЧАТ

Рейтинг : 18109
Отзывы: (-0/0/+240)

bushka - автор студенческих работ

VIP! bushka  ЧАТ

Рейтинг : 34025
Отзывы: (-17/14/+1070)

все разделы математики, инженерная механика-быстро
cpcv - автор студенческих работ

VIP! cpcv  ЧАТ

Рейтинг : 3248
Отзывы: (-0/0/+109)

Jagodka-K - автор студенческих работ

VIP! Jagodka-K  ЧАТ

Рейтинг : 8759
Отзывы: (-1/0/+109)

Экономические дисциплины, работы с уникальностью
c264 - автор студенческих работ

VIP! c264  ЧАТ

Рейтинг : 3005
Отзывы: (-0/0/+40)

Только Word
lesi555 - автор студенческих работ

VIP! lesi555  ЧАТ

Рейтинг : 17500
Отзывы: (-0/7/+515)

Помощь по экономическим и гуманитарным дисциплинам
Студентам в помощь
VIP Исполнители
ВЫПОЛНИМ
Лента заказов

  • Заказать Работу
  • Готовые работы
    Заметки
    Библиотека
    Файлообменник
    Как сделать заказ
    Исполнители
    Магазин
    Новости
    Видео, ТВ и Радио
    Дисциплины
    Статьи, Опросы
    Форум
    Контакты
    Исполнители
  • Математические
  • Физика-Химия
  • Технические
  • Программирование
  • Гуманитарные
  • Экономические
  • Юридические
  • Иностранные языки
  • Другое, Разное
  • Статьи, Копирайтинг
  • Создание сайтов
  • Раскрутка сайтов
  • Дизайн, Графика
  • Аудио/Видео
  • Сообщения форума
    Помочь с самоваром.
    Как вы относитесь к help-s.ru ?
    Устал быть автором
    Посмотрим, посмеёмся! ;)
    С наступающим Новым Годом !
    Electronics Workbench 5.12
    Поздравим всех!
    WebMoney или YAndex
    Объявления и Уведомления
    Крик души
    День рождения
  • Cегодня (3): zhash , kapitan82 , zakaz_na_5
  •  

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

    Работа № 2
    Вариант 25
    СТУЛ: число ножек - int, число спинок - int, сумма - float

    Порядок выполнения
    В среде программирования на С++ создайте консольный проект с именем LAB2 в каталоге LAB2.

    Переименуйте файл main.h из предыдущей лабораторной в person.h.

    Создайте файл person.cpp и включите в проект эти два файла.
    Переместите конструктор и функции объекта Person из main.cpp в файл person.cpp.
    Таким образом, файл person.h содержит описание объекта Person, а файл person.cpp — реализацию объекта Person.
    Включите в проект файл main.cpp и очистите тело функции main().

    Определим объект Group, который будет содержать динамический массив объектов Person.

    Создайте два файла group.h и group.cpp и включите их в проект.

    В файле group.h определите с помощью ключевого слова class объект Group.

    Данные объекта:

    размер массива (целый тип)
    указатель на массив (тип Person*).
    Пусть данные имеют закрытый уровень доступа (private).

    Опишите конструктор объекта с одним аргументом — размер массива (целый тип) и деструктор объекта.

    Откройте файл group.cpp. С помощью директивы #include включите необходимые заголовочные файлы.

    Определите конструктор объекта Group. В теле конструктора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив с помощью строки кода:

    указатель на массив = new Person[размер массива].
    В деструкторе объекта освободите память, занимаемую массивом, с помощью строки кода

    delete [] указатель на массив.
    Таким образом, мы создали объект Group, который содержит массив объектов Person.

    Определим открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Person.

    Напишите функцию int Group::Size(), которая возвращает размер массива.

    Напишите функции void PutPerson(int i, Person& man); и Person& GetPerson(int i);, первая функция заносит объект man типа Person в i-й элемент массива, вторая функция возвращает объект типа Person из i-го элемента массива.

    Заполните массив данными и затем выведите их на экран. Для этого в теле функции int main() сначала определите массив имен, которые будут заносится в поле ФИО объекта Person, например,

    char names[5][25] = {"A", "B", "C", "D", "E"};.
    Затем создайте объект с именем group типа Group размером пять записей, т.е. Group group(5);.

    Ниже с помощью цикла for заполните массив данными. Для этого в теле цикла создайте объект Person, проинициализировав все его данные, и с помощью функции PutPerson занесите объект в массив.

    Выведите массив на экран с помощью строки кода:

    group.Print();
    Получилось? Если да, то вы научились создавать динамический массив объектов, определять функции работы с таким массивом и выводить его на экран.

    В этой части лабораторной работы изучим первые два типа полиморфизма — это:

    принудительное приведение типа;
    перегрузка функций и операторов.
    Напишите функцию приведения типа. Для этого с помощью ключевого слова operator напишите функцию объекта Person, которая преобразует тип Person в double.

    Пусть функция возвращает возраст человека, например,

    Person::operator double() { return this->Age; }.
    Что означает ключевое слово this?

    Проверьте функцию преобразования типа.

    В функции int main() далее определите переменную double и присвойте ей объект Person, например:

    double age = group.GetPerson(2);.
    То есть совершается неявное преобразование из типа Person в тип double при обращении к объекту.

    Выведите значение переменной на экран.

    Перегруженные функции имеют одинаковое название, но разный возвращаемый тип или/и разный список аргументов. Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);. Первая функция пусть возвращает средний возраст группы людей, а вторая функция пусть возвращает средний возраст людей в группе, возраст которых не больше некоторого граничного значения limit.r Функции отличаются списком аргументов.

    Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста.

    Перегрузите оператор индексирования. Если раньше, чтобы обратиться к элементу массива, нам необходимо было вызывать функцию GetPerson, то, определив оператор индексирования, мы будем использовать только квадратные скобки.r

    Сравните две строки кода:

    Person man = group.GetPerson(2);
    Person man = group[2];
    В объекте Group с помощью ключевого слова operator определите оператор индексирования, например:

    Person& Group::operator[](int i).
    В теле оператора напишите код, возвращающий i-ый элемент массива, т.е. объект Person.

    Выведите на экран с помощью оператора индексирования любой один элемент массива group, например третий.

    Перегрузим бинарный оператор, например оператор сложения (+), для объекта Person.

    Пусть оператор сложения будет возвращать суммарный возраст двух человек. Опишем в объекте Person данный оператор как дружественную функцию с помощью ключевого слова friend, например:

    friend double operator+(Person& p1, Person& p2);
    Эта строка кода означает, что оператор сложения не принадлежит объекту, но ему доступны все закрытые данные и методы объекта.

    В файле person.cpp определите оператор сложения, например:

    double operator + (Person& p1, Person& p2)
    { return (p1.Age + p2.Age); }
    Здесь мы напрямую обращаемся к закрытому полю Age объекта Person.

    Проверим работу оператора с помощью следующих строк кода:

    double sum = group[1] + group[3];
    cout << sum << endl;
    для покупки работы нужно авторизоваться
    Для продолжения нажмите Войти, Регистрация


     
    Горящие заказы
    Сделать презентацию
    рерайт етхт метод обнаружения рерайта
    Теория игр в Экселе 5845
    Химия 040212
    Онлайн завтра 4.12.2021 1525 Москвы
    Исполнителям
    coolsolver Спасибо за качественные работы, выполненные раньше срока!  
    e-wolfy Хочу сказать огромное СПАСИБО за выполненные заказы. Выполнение быстрое, оформление не к чему придраться!
    Всегда на связи, общение легкое и приятное!
    Замечательный исполнитель!
    А еще СПАСИБО, СПАСИБО, СПАСИБО за безвозмездную помощь в решении задач!  
    vikand Ответственный и вежливый заказчик, который всегда войдет в положение! Очень рада сотрудничеству с ним и всем РЕКОМЕНДУЮ!!!  
    Thumbelina Замечательный исполнитель! Великолепный человек! Всегда качество и ответственность за результат! Оперативная работа в условиях форс-мажора! Работаю с данным автором уже более 5 лет и ни разу не пожалел!!!!!! Низкий поклон!!!!  
    coolsolver Сергей, большое спасибо за хорошую работу. :)  
    Jagodka-K Спасибо Вам Большое за выполненные практические задачи. Рад нашему сотрудничеству.  
    tango Спасибо Вам Большое за выполненную работу по БЖД. Рад нашему сотрудничеству.  
    coolsolver Спасибо за качественные работы!  
    klen Спасибо за сотрудничество!  
    klen Большое спасибо! Оперативно и весьма бюджетно!  
    Новые отзывы
    Программистам Дизайнерам Сайты Сервис Копирайтерам Файлообменики Заработок Социальная сеть Статистика
  • Советы и статьи
  • Основы программирования
  • Веб-программирование
  • Soft, программы
  • Статьи, Советы
  • Форум дизайнеров
  • Soft дизайнеров
  • С чего начать?
  • Создание сайтов
  • Раскрутка сайтов
  • CMS системы, магазины
  • Домены, Хостинг
  • Soft, программы
  • Безопасные сделки
  • Менеджеры
  • Личные авторы
  • Личные исполнители
  • CМС Уведомления
  • Email Уведомления
  • СМС пользователям
  • Емэйл и СМС Рассылки
  • Объявления Уведомления
  • Публикация картинок
  • Сокращение ссылок
  • Статьи и Советы
  • Seo
  • Soft, программы
  • Файлообменник бесплатный
  • Обзор файлообменников
  • Заработок на
    файлообменниках
  • Статьи и Советы
  • Облачные хранилища
  • Сайт помощи студентам
  • 2х уровневая реферальная
    программа
  • Удаленное создание заказов
  • Форум о Заработке
  • Статьи, советы
  • Фотогалерея
  • Видеогалерея
  • Лучшие
  • Пользователей: 310018
  • Исполнителей: 7634
  • Заказано работ: 359403
  • Выполнено на заказ: 128592
  • Готовых работ: 171831
  • В библиотеке:2439
  • Полная Статистика
  • контрольная по маркетингу ждет вас.
      Доклад   Диплом  Диссертация  Курсовая  Отчеты по практике  Контрольная  Реферат  Решение задач  Лабораторная  Презентация  Бизнес-планы  Эссе  Отзывы и рецензии   Монография   Чертежи   Перевод   Набор текста, формул   Онлайн