Контест Junior ООП в C# обновлено
Банковские счета: инкапсуляция и инварианты
Условие
Реализуйте простой банк. Баланс счёта не может стать отрицательным, суммы операций строго положительные.
Команды:
OPEN nameоткрыть счёт с балансом 0 (ERROR exists, если уже есть);DEPOSIT name xпополнить;WITHDRAW name xснять;TRANSFER from to xперевести (перевод самому себе разрешён и баланс не меняет);BALANCE nameвывести баланс.
На каждую команду выведите OK, баланс (для BALANCE) или ошибку. Проверки идут в порядке: ERROR no account (какого-то счёта нет), ERROR amount (x ≤ 0), ERROR insufficient (не хватает денег).
Ввод: n (1 ≤ n ≤ 10⁴), затем n команд. |x| ≤ 10¹², имена из латиницы и цифр.
Пример
6
OPEN anna
DEPOSIT anna 100
WITHDRAW anna 30
WITHDRAW anna 100
BALANCE anna
BALANCE boris
OK
OK
OK
ERROR insufficient
70
ERROR no account
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «ООП в C#»
- Абстрактный класс или интерфейс
- protected internal и private protected
- Методы интерфейса по умолчанию
- Чем new отличается от override
- new и override при вызове через базовый тип
- Порядок инициализации при создании наследника
- Порядок статических и обычных конструкторов
- Статическое поле общее для всех объектов