Выдача книг
Часть раздела Объектно-ориентированное программирование путешествия по Swift на Coddy. Урок 51 из 57.
Задание
ЛегкоДобавьте команду BORROW. Сохраните работу всех команд из предыдущих шагов в точности как прежде.
BORROW <name> <id>: выполните проверки в этом порядке и выведите ответ с первой обнаруженной проблемой:no member bo,no book 9,Dune is not available,ada has reached the limit(участник может иметь не более 2 книг). В противном случае зафиксируйте выдачу и для книги, и для участника и выведите ответada borrowed Dune.
Предоставленный код передаёт каждую входную строку в library.handle(_:) и выводит каждый возвращённый ответ в отдельной строке. Имена участников состоят из одного слова в нижнем регистре, идентификаторы книг являются целыми числами, а входные данные содержат только описанные на данный момент команды. Для любой другой команды выводится ответ unknown command.
Ваш код должен находиться в файлах Book.swift, Member.swift и Library.swift. Файл main.swift содержит предоставленный код ввода/вывода, и его нельзя редактировать.
Попробуйте сами
// Предоставленный код ввода/вывода: оставьте его как есть
var input: [String] = []
while let line = readLine() { input.append(line) }
let library = Library()
for line in input {
for reply in library.handle(line) { print(reply) }
}
Все уроки раздела Объектно-ориентированное программирование
1Классы и объекты
Работа с файламиОпределение классовМетоды и selfИнициализаторыКлассы — это ссылкиПовторение — читательский билет4Инкапсуляция
Контроль доступаТолько чтение извнеЗащита состоянияИнициализаторы с возможностью сбояПовторение — банковский счёт7Полиморфизм и обобщения
ПолиморфизмПриведение типовОбобщённые функцииОбобщённые типыПовторение — калькулятор фигур10Паттерны проектирования. Часть 2
Паттерн делегированияПаттерн декораторПаттерн строительПаттерн состояния2Структуры и типы-значения
СтруктурыСемантика значенийИзменяющие методыСтруктура или классПовторение — элемент инвентаря5Наследование
ПодклассыПереопределение методовИнициализаторы и superfinal и иерархииПовторение — иерархия сотрудников8Стандартные протоколы
CustomStringConvertibleEquatableComparableHashableПовторение — пользовательская сортировка11Проект: Управление библиотекой
Книги и читателиВыдача книгПотренируйтесь самостоятельно: Песочница Swift