Необходимо разработать систему учета книг для библиотеки. Публичный доступ к данным всех классов должен осуществляться с помощью свойств или автоматических свойств
1. Разработать открытый класс User, описывающий пользователя библиотеки. Класс содержит следующие данные: идентификатор, фамилия, имя, отчество, контактный телефон. Идентификатор должен быть открыт для чтения, но закрыт для записи. Остальные данные – открыты для чтения и записи. Создать конструктор с одним параметром – идентификатором
2. Разработать открытый класс Author, описывающий автора книги. Класс содержит следующие данные: идентификатор, фамилия, имя, отчество. Идентификатор должен быть открыт для чтения, но закрыт для записи. Остальные данные – открыты для чтения и записи. Создать конструктор с одним параметром – идентификатором
3. Разработать открытый класс Book, описывающий одну книгу. Класс содержит следующие данные: идентификатор, название, авторы (список объектов класса Author, см. класс List), год издания, экземпляры (список объектов класса StoredBook). Идентификатор должен быть открыт для чтения, но закрыт для записи. Остальные данные – открыты для чтения и записи. Создать конструктор с одним параметром – идентификатором
4. Разработать открытый класс StoredBook, описывающий хранимый экземпляр книги. Например, одна книга «Д. Кнут Искусство программирования. Том 1» может присутствовать в библиотеке в пяти экземплярах, каждый из которых имеет свое расположение и учитывается отдельно. В этом случае будет один объект класса Book и пять объектов класса StoredBook. Класс содержит следующие данные: идентификатор, инвентарный номер, книга (объект класса Book), номер стеллажа, номер полки в стеллаже, номер книги на полке, признак наличия книги IsAvailable (в библиотеке книга или выдана на руки). Идентификатор должен быть открыт для чтения, но закрыт для записи. Остальные данные – открыты для чтения и записи. Создать конструктор с одним параметром – идентификатором
5. Разработать открытый класс StoredBookUsage, описывающий выдачу хранимой книги пользователю. Класс содержит следующие данные: идентификатор выдачи, хранимая книга (StoredBook), пользователь (объект класса User), дата выдачи, максимальная дата возврата, фактическая дата возврата. Идентификатор должен быть открыт для чтения, но закрыт для записи. Остальные данные – открыты для чтения и записи. Создать конструктор с одним параметром – идентификатором
6. Реализовать открытые методы
• Выдать книгу пользовател
• Принять книгу обратн
• Показать список всех экземпляров кни
• Показать журнал выдачи кни
7. Реализовать меню с возможностью выполнить указанные выше методы, либо выйти из приложения
8. Для хранения данных рекомендуется создать вспомогательный класс ApplicationContext: