Skip to content

Sensation3000/Project_Library_Management_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Задача: Система управления библиотекой

Вам нужно разработать простую систему управления библиотекой, которая позволит управлять книгами и другими медиа-ресурсами (например, журналами). Система должна поддерживать возможность добавления ресурсов, выдачи их пользователям и возврата. Используйте принципы объектно-ориентированного программирования: классы, интерфейсы, наследование и полиморфизм.

Требования к реализации:

Создайте интерфейс LibraryItem, который описывает общие свойства и поведение для всех библиотечных ресурсов. Интерфейс должен содержать:

  • Метод getTitle() — возвращает название ресурса.
  • Метод isAvailable() — возвращает статус доступности (true, если ресурс доступен).
  • Метод borrowItem() — помечает ресурс как занятый.
  • Метод returnItem() — возвращает ресурс в библиотеку, делая его доступным.

Создайте абстрактный класс AbstractLibraryItem, который реализует интерфейс LibraryItem. Этот класс должен: Содержать поля: title (название) и isAvailable (статус доступности). Реализовать методы getTitle() и isAvailable() из интерфейса. Оставить методы borrowItem() и returnItem() абстрактными, так как их реализация зависит от типа ресурса.

Создайте два конкретных класса, наследующихся от AbstractLibraryItem: Book: Представляет книгу. Дополнительно имеет поле author (автор). Magazine: Представляет журнал. Дополнительно имеет поле issueNumber (номер выпуска).

В обоих классах реализуйте методы borrowItem() и returnItem(). Например: Для Book: При выдаче книги выведите сообщение: "Книга 'title' автора author выдана". Для Magazine: При выдаче журнала выведите сообщение: "Журнал 'title' номер issueNumber выдан". Аналогичные сообщения выводите при возврате.

Создайте класс Library, который управляет коллекцией библиотечных ресурсов: Поле: список items (типа List). Методы:

  • addItem(LibraryItem item) — добавляет ресурс в библиотеку.
  • borrowItem(String title) — находит ресурс по названию и вызывает его метод borrowItem(). Если ресурс не найден или занят, выведите сообщение об ошибке.
  • returnItem(String title) — возвращает ресурс по названию, вызывая returnItem().
  • printAvailableItems() — выводит список доступных ресурс.

Создайте класс Main с методом main, в котором: Создайте экземпляр Library. Добавьте несколько книг и журналов. Продемонстрируйте выдачу и возврат ресурсов, а также вывод списка доступных ресурсов. Дополнительные требования: Используйте модификаторы доступа (private, protected, public) корректно. Обработайте случаи, когда ресурс не найден или уже занят/возвращён. Используйте полиморфизм: методы borrowItem и returnItem должны работать через интерфейс LibraryItem.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages