Упражнения за извънаудиторна заетост

Да се създаде програма за книжарница.

\

Предвидете програмата да продуцира изключение InvalidDataException с подходящо съобщение. Приложете по усмотрение.

Ще ви е небходим интерфейс CoverType с метод isHardCover(), който връща булева стойност.

Абстрактен клас Person:

  • Атрибути: firstName, lastName (определете модификаторите за достъп);
  • Конструктор – според употребата;
  • Акселератори: според модификаторите и употребата;
  • Методи: equals, hashCode, toString.

Клас Author:

  • Наследява Person;
  • Атрибути: country, genre (определете модификаторите за достъп);
  • Конструктор – според употребата;
  • Акселератори: според модификаторите и употребата;
  • Методи: equals, hashCode, toString.

Клас Book:

  • Имплементира интерфейс CoverType;
  • Атрибути: title, author, publishingYear, quantity (по-голямо от 5), price (по-голяма от 9,99) (определете модификаторите за достъп);
  • Конструктор – според употребата;
  • Акселератори: според модификаторите и употребата;
  • Методи: : equals, hashCode, toString;
  • Интерфейсният метод връща истина, ако книгата е издадена преди 2000 година и има цена над 14лв.

Клас BookStore:

  • Атрибути:  име на книжарницата и колекция от уникални книги (определете модификаторите за достъп);
  • Експлицитен конструктор по име на файл, в който се съдържа информация за книгите;

Примерен формат на файла:

„Под игото“ Иван Вазов България класика 1985 12 15,0

„На изток от Рая“ Джон Стайнбек САЩ класика 1998 18 12,58

  • Методи:
  • За добавяне на книга към колекцията;
  • За намиране и връщане на цената на наличните книги;
  • За намиране и връщане на средната цена на книги от зададен жанр;
  • За намиране и връщане на автора с най-много книги;
  • За намиране и връщане на броя уникални автори, публикували книга след зададена година;
  • За връщане на книгите, подредени по националността на автора;
  • За намиране и връщане на броя книги с твърди корици;
  • toString.

Клас Main с главна функция:

  • създайте обект BookStore с име на файл, в който има поне 3 различни автора с минимум една книга;
  • добавете нови книги в книжарницата;
  • запишете в нов файл:
  • цената на всички книги;
  • средната цена на книгите от жанр „Класика“;
  • името на автора с най-много книги;
  • колко са авторите с книги, издадени след 1990 година;
  • книгите, сортирани по националност на автора;
  • броя книги с твърди корици.