Главная страница
Навигация по странице:

  • Принцип единственной ответственности

  • 1. Что такое ООП 2. Что такое объект 3. Что такое класс

  • 5. Что такое абстракция 6. Что такое инкапсуляция 7. Что такое наследование 8. Что такое полиморфизм

  • 12. Что такое конструктор 13. Чем различаются конструктор по умолчанию, конструктор без параметров и конструктор с параметрами

  • 214302 ЛР №1 Иерархия классов. Задание к лабораторной работе 1


    Скачать 19.71 Kb.
    НазваниеЗадание к лабораторной работе 1
    АнкорCartier
    Дата17.03.2023
    Размер19.71 Kb.
    Формат файлаdocx
    Имя файла214302 ЛР №1 Иерархия классов.docx
    ТипДокументы
    #997008

    Задание к лабораторной работе №1

    Создать консольное приложение, удовлетворяющее следующим требованиям:

    • Использовать возможности ООП: классы, наследование, полиморфизм, инкапсуляция.

    • Определить иерархию классов (абстрактных классов, интерфейсов) соответствующую вашей предметной области (от 5 классов/интерфейсов).

    • Каждый класс должен иметь отражающее смысл название и информативный состав.

    • Определить конструкторы и методы setТип(), getТип(), toString(), equals(), hashcode().

    • Наследование должно применяться только тогда, когда это имеет смысл.

    Рекомендации при проектировании классов

    При создании класса следует придерживаться некоторых правил. Принцип единственной ответственности. Каждый класс должен иметь простое назначение. Решать в идеале единственную задачу. Классу следует давать такое имя, чтобы его пользователю была понятна роль класса в пакете или приложении.

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

    Класс должен быть разработан так, чтобы внесение в него изменений было относительно простой задачей.

    Код конструктора должен заниматься только инициализацией объекта.

    Следует избегать вызовов из конструктора других методов, за исключением final, static, private. Иначе такой метод может быть переопределен в подкласс и исказить процесс инициализации объекта.

    Использовать инкапсуляцию нестатических и неконстантных полей.

    Классы-сущности должны применять для доступа к полям классов, хранящих информацию, корректные методы типа get, set, is, а также желательно реализовать методы equals(), hashCode(), clone(), toString() и имплементировать интерфейсы Comparable и Serializable при необходимости.

    Если разрабатываемый класс кажется сложным, следует разбить его на несколько простых.

    Варианты заданий

    1. Аквариум. Определить иерархию аквариумных рыбок. Составить список рыбок для аквариума. Подсчитать цену за всех рыбок. Провести сортировку рыбок на основе их продолжительности жизни. Найти рыбок, соответствующих заданному диапазону размеров.

    2. Туристические путевки. Сформировать набор предложений клиенту по выбору туристической путевки различного типа (отдых, экскурсии, лечение, шопинг, круиз и т. Д.) Для оптимального выбора. Учитывать возможность выбора транспорта, питания и числа дней. Реализовать выбор и сортировку путевок.

    3. Система склад. Создать склад со определенным объёмом. Клиенты заполняют заявку на добавление предмета на склад, указывая длину, ширину и высоту предмета, система вычисляет объём предмета и если предмет помещается на склад, то заявка будет одобрена, а клиенту выдаётся чек с присвоенным его предмету идентификационным номером. Клиент может добавлять несколько предметов на склад, а также просматривать одобренные и отклоненные заявки. Также клиент может забрать предмет, указав идентификационный номер.

    4. Кредиты. Сформировать набор предложений клиенту по целевым кредитам различных банков для оптимального выбора. Учитывать возможность досрочного погашения кредита и/или увеличения кредитной линии. Реализовать выбор и поиск кредита.

    5. Новогодний подарок. Определить иерархию конфет и прочих сладостей. Создать несколько объектов-конфет. Собрать детский подарок с определением его веса. Провести сортировку конфет в подарке на основе одного из параметров. Найти конфету в подарке, соответствующую заданному диапазону содержания сахара.

    6. Система библиотека. Читатель оформляет заказ на книгу. Система осуществляет поиск в каталоге. Библиотекарь выдает читателю книгу на абонемент или в читальный зал. При невозвращении книги читателем он может быть занесен администратором в «черный список».

    7. Биржа криптовалют. Клиент может иметь несколько криптовалют в кошельке. Реализовать возможность покупки/продажи криптовалюты. Администратор может блокировать/разблокировать клиентов. Реализовать сортировку криптовалют. Вычисление общей суммы кошелька.

    8. Авиакомпания. Определить иерархию самолетов. Создать авиакомпанию. Посчитать общую вместимость и грузоподъемность. Провести сортировку самолетов компании по дальности полета. Найти самолет в компании, соответствующий заданному диапазону параметров потребления горючего.

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

    10. Камни. Определить иерархию драгоценных и полудрагоценных камней. Отобрать камни для ожерелья. Подсчитать общий вес (в каратах) и стоимость. Провести сортировку камней ожерелья на основе ценности. Найти камни в ожерелье, соответствующие заданному диапазону параметров прозрачности.

    11. Система железнодорожная касса. Пассажир делает заявку на станцию назначения, время и дату поездки. Система регистрирует заявку и осуществляет поиск подходящего поезда. Пассажир делает выбор поезда и получает счет на оплату. Администратор вводит номера поездов, промежуточные и конечные станции, цены.

    12. Пиццерия. Клиент делает заказ на доставку определенной пиццы, указывая время и дату. Система регистрирует заказ и осуществляет поиск подходящего курьера. Клиент выбирает курьера и получает счет на оплату и номер телефона курьера. Администратор вводит контакты курьера, добавляет пиццы.

    13. Аптека. Определить иерархию лекарств. Создать несколько объектов-лекарств. В зависимости от формы и вида стоимость изменяется. Покупатель добавляет нужные ему лекарства в корзину. Провести сортировку лекарств по цене. Найти лекарство в аптеке, соответствующее заданной форме и виду.

    14. Магазин ювелирных изделий. Определить иерархию ювелирных изделий. Создать несколько объектов-ювелирных изделий. Собрать комплект определенной серии, состоящей из трех разных украшений одной серии, с определением его стоимости. Провести сортировку украшений в комплекте на основе веса. Найти украшение в комплекте, соответствующее заданному диапазону цены.

    15. Фургон кофе. Загрузить фургон определенного объема грузом на определенную сумму из различных сортов кофе, находящихся, к тому же, в разных физических состояниях (зерно, молотый, растворимый в банках и пакетиках). Учитывать объем кофе вместе с упаковкой. Провести сортировку товаров на основе соотношения цены и веса. Найти в фургоне товар, соответствующий заданному диапазону параметров качества.

    16. Цветочница. Определить иерархию цветов. Создать несколько объектов-цветов. Собрать букет (используя аксессуары) с определением его стоимости. Провести сортировку цветов в букете на основе уровня свежести. Найти цветок в букете, соответствующий заданному диапазону длин стеблей.

    17. СТО. Реализовать две роли мастер и клиент, у различных мастеров свой набор услуг и клиентов. Реализовать для клиента возможность выбора нескольких услуг, выбор материалов (дорогие или дешевые), сроков выполнения. В зависимости от материалов и сроков выполнения стоимость изменяется. Вычислить общую стоимость услуг.

    18. Система периодические издания. Читатель может сделать заявку, предварительно выбрав периодические издания из списка. Система подсчитывает сумму для оплаты. Читатель оплачивает заявку. Администратор добавляет заявку в «черный список», если клиент не оплачивает её в определённый срок.

    19. Мотоциклист. Определить иерархию амуниции. Экипировать мотоциклиста. Подсчитать стоимость. Провести сортировку амуниции на основе веса. Найти элементы амуниции, соответствующие заданному диапазону параметров цены.

    20. Система больница. Пациенту назначается лечащий врач. Врач может сделать назначение пациенту (процедуры, лекарства, операции). Медсестра или другой врач выполняют назначение. Пациент может быть выписан из больницы по окончании лечения, при нарушении режима или при иных обстоятельствах.

    21. Система парикмахерская. Клиент делает заявку на определенную прическу, время и дату посещения. Система регистрирует заявку и осуществляет поиск подходящего парикмахера. Клиент делает выбор парикмахера и получает счет на оплату. Администратор вводит контакты парикмахера, дополнительные услуги и цены.

    22. Лесхоз. Определить иерархию деревьев. Создать несколько объектов-деревьев. Составить список на вырубку из различных видов, подсчитать выручку. Провести сортировку деревьев в вырубке на основе их высоты. Найти дерево в вырубке, соответствующий заданному диапазону лет.

    23. Система зоопарк. Клиент делает заявку на посещение определенной секции, время и дату посещения. Система регистрирует заявку и осуществляет поиск подходящего зоолога. Клиент делает выбор зоолога и получает счет на оплату. Администратор вводит контакты зоолога, дополнительные услуги, маршрутный лист и цены.

    24. Система одежда на прокат. Клиент выбирает одежду из списка доступных, заполняет форму заказа, указывая свои параметры, срок аренды. Администратор может отклонить заявку, указав причины отказа. При подтверждении заявки клиент оплачивает заказ. В случае повреждения одежды клиентом администратор вносит соответствующие пометки.

    25. Система жилищно-коммунальные услуги. Квартиросъемщик отправляет заявку, в которой указывает род работ, масштаб и желаемое время выполнения. Диспетчер формирует соответствующую бригаду и регистрирует её в плане работ. Диспетчер может отклонить заявку в случае занятости всех бригад.

    26. Студия керамики. Определить иерархию керамических изделий. Создать несколько объектов-изделий. Собрать подарочный комплект с определением его стоимости. Провести сортировку изделий в комплекте на основе времени его изготовления. Найти изделие в комплекте, соответствующий заданному диапазону хрупкости (шкала от 1 до 10).

    Вопросы


    1. Что такое ООП?


    2. Что такое объект?


    3. Что такое класс?

    4. Назовите основные принципы объектно-ориентированного программирования.


    5. Что такое абстракция?


    6. Что такое инкапсуляция?


    7. Что такое наследование?


    8. Что такое полиморфизм?


    9. Что такое поле/атрибут/переменная-член класса?


    10. Как правильно организовать доступ к полям класса?


    11. Что такое модификаторы уровня доступа?


    12. Что такое конструктор?


    13. Чем различаются конструктор по умолчанию, конструктор без параметров и конструктор с параметрами?


    14. Что означает ключевые слова this и super и как их можно использовать?

    15. Что такое геттеры? Что такое сеттеры?


    написать администратору сайта