Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Новые возможности PascalABC.net и ООП в С++

  1. В начало
  2. Курсы
  3. Дополнительное образование
  4. Новые возможности Р
  5. 10 мая - 16 мая
  6. Задание 6 - дата 15 мая

Задание 6 - дата 15 мая

Требуемые условия завершения
Открыто с: понедельник, 15 мая 2017, 17:00
Срок сдачи: вторник, 23 мая 2017, 00:00

Часть 1. Скидочные книги [40 баллов] (реализация - если возникли проблемы )

  1. Создайте (или возьмите из предыдущего занятия) класс книги (Book), которая определяется своим названием, автором и стоимостью (это поля класса и аргументы конструктора).
  2. Поместите в класс книги две функции-члена:
    • защищённая (protected) невиртуальная функция real_price() — возвращает значение поля цены;
    • открытая виртуальная функция bulk_price(int amount), которая возвращает цену за amount книг и использует в своей реализации real_price.
  3. Создайте открытого (public) наследника класса книги: DiscountBook, скидочную книгу, которая задаётся кроме всех параметров книги Book ещё и размером скидки и количеством экземпляров, с которого данная скидка начинает действовать (discount_threshold). В конструкторе необходимо инициализировать базовый класс в списке инициализации (по другому вы не договоритесь с компилятором).
  4. Переопределите функцию real_price в классе скидочной книги: она должна возвращать значение цены (Book::real_price()), умноженной на величину скидки.
  5. Переопределите (не забыть ключевое слово override) функцию bulk_price в классе скидочной книги: в зависимости от количества книг используется базовый расчёт цены (Book::real_price()) или скидочный (то есть просто real_price()) — если книг больше, чем discount_threshold.
  6. Создайте свободную (внешнюю, т.е. вне классов ) функцию print_total_price, которая принимает ссылку на Book и количество экземпляров (amount), которое собирается приобрести покупатель. Функция печатает название и автора книги (потребуется добавить открытые геттеры для соответствующих полей), а также цену за amount экземпляров, используя bulk_price.

В основной программе вызовите функцию для одной обычной и одной скидочной книги.

Часть 2. Иерархия: Многоугольник — Прямоугольник [50 баллов]

Реализуйте приведённую ниже диаграмму классов и продемонстрируйте использование соответствующих классов, иллюстрируя основные идеи наследования:

  • вызов метода, определённого в предке (display),
  • вызов виртуальной функции (вызов display и perimeter в main),
  • полиморфное присваивание (в main).

Помните один из важных принципов составления UML-диаграмм: «свойства» классов (то, что перечисляется сразу под именем) могут быть как полями, так и настоящими свойствами, то есть, в случае C++, функциями-членами.

Звёздочка на UML-диаграмме всегда означает «нуль или больше», но никак не указатель C/C++.


Написать демонстрацию и возможные тесты (10 баллов)
◄ Задание 5 - дата 11 мая
Задание 7 - 19 мая в 15 часов ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Дополнительное образование

        • матем-10 (онлайн)

        • Информатика НК

        • Информатика 0 курс

        • ДиПВеб

        • Новые возможности Р

          • Общее

          • 1 февраля - 7 февраля

          • 8 февраля - 14 февраля

          • 15 февраля - 21 февраля

          • 22 февраля - 28 февраля

          • 1 марта - 7 марта

          • 8 марта - 14 марта

          • 15 марта - 21 марта

          • 22 марта - 28 марта

          • 29 марта - 4 апреля

          • 5 апреля - 11 апреля

          • 12 апреля - 18 апреля

          • 19 апреля - 25 апреля

          • 26 апреля - 2 мая

          • 3 мая - 9 мая

          • 10 мая - 16 мая

            • ЗаданиеЗадание 6 - дата 15 мая

            • ЗаданиеЗадание 7 - 19 мая в 15 часов

          • 17 мая - 23 мая

        • СоврМОИ

        • Педагогическое образование: технологии реализации ...

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Новые возможности Р
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика