Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Проект 21: Библиотека (композиция) 📚

Консольное приложение для управления библиотекой.
Демонстрирует принцип композиции — объект Library содержит объекты Book и User.

🎯 Что закрепляет

  • Композиция (объект внутри другого объекта)
  • Работа со списками объектов
  • Поиск элементов в списке (next)
  • Интерактивное меню с валидацией
  • Валидация пользовательского ввода

📋 Функционал

Класс Book

  • атрибуты: title, author, year
  • метод __str__ — красивое представление

Класс User

  • атрибуты: name, borrowed (список книг)
  • методы: borrow(book), __str__

Класс Library

  • атрибуты: books (список книг), users (список читателей)
  • методы:
    • add_book(book) — добавить книгу
    • add_user(user) — добавить читателя
    • borrow_book(title, user_name) — выдать книгу
    • return_book(title, user_name) — вернуть книгу
    • show_books() — показать все книги
    • show_users() — показать всех читателей
    • show_loans() — показать текущие выдачи

Интерактивное меню

  • Добавление книги
  • Добавление читателя
  • Выдача книги
  • Возврат книги
  • Просмотр книг
  • Просмотр читателей
  • Просмотр выдач
  • Выход

🛡️ Валидация ввода

  • Функция valid() для защиты от:
    • пустого ввода
    • букв вместо чисел
    • некорректных значений

📝 Пример работы

1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 1
Введите название книги: Война и мир
Введите автора: Лев Толстой
Введите год: 1868
✅ Книга добавлена

1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 2
Введите свое имя: Гриша
✅ Читатель добавлен

1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 3
Имя читателя: Гриша
Название книги: Война и мир
Книга выдана пользователю: Гриша

1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 4
Имя читателя: Гриша
Название книги: Война и мир
Книга сдана

1. Добавить книгу
2. Добавить читателя
3. Выдать книгу
4. Вернуть книгу
5. Показать книги
6. Показать читателей
7. Показать выдачи
8. Выход
Выберите действие: 5
Книги:
Война и мир (Лев Толстой), год: 1868

🧠 Чему научился

  • Реализовывать композицию (один объект содержит другие)
  • Искать элементы в списке через next
  • Строить интерактивное меню с валидацией
  • Разделять ответственность между классами
  • Обрабатывать ошибки ввода

📁 Структура проекта

21_composition_library/
├── main.py       # код программы
└── README.md     # документация

🚀 Как запустить

python main.py

📊 Статус

✅ Проект готов