Untitled

 avatar
unknown
plain_text
2 months ago
4.1 kB
5
Indexable
Свободное место закончилось 14 дней назад … Недостаточно свободного места. Вы не сможете добавлять новые файлы на Диск, сохранять облачные копии в Google Фото и пользоваться Gmail. Получите 100 ГБ в хранилище и пользуйтесь им вместе с участниками семейной группы за 139 ₽ 20 ₽ в течение 3 месяцев.
class ATM:
    def __init__(self, balance=0):
        self.balance = balance

    def check_balance(self):
        #Проверка текущего баланса
        print(f"Ваш баланс: {self.balance} рублей")

    def deposit(self, amount):
        #Пополнение текущего баланса
        if amount > 0:
            self.balance = self.balance + amount
            print(f"Вы внесли {amount} рублей.")
        else:
            print("Сумма должна быть больше нуля.")

    def withdraw(self, amount):
        #Снятие наличных
        if amount>0 and amount <= self.balance:
            self.balance = self.balance - amount
            print(f"Вы сняли {amount} рублей.")
        else:
            print("Недостаточно средств или неправильная сумма.")

class SecureATM(ATM):
    def __init__(self, pin, balance=0):
        super().__init__(balance)
        self.pin = pin
        self.is_authenticated = False

    def authenticate(self, entered_pin):
        #Аутентификация пользователя по PIN-коду
        if entered_pin == self.pin:
            self.is_authenticated = True
            print("Аутентификация успешна.")
        else:
            print("Неверный PIN-код.")

    def withdraw(self, amount):
        #Снятие наличных с проверкой PIN-кода"""
        if self.is_authenticated==True:
            super().withdraw(amount)
        else:
            print("Необходимо пройти аутентификацию.")

    def deposit(self, amount):
        #Внесение денег с проверкой PIN-кода"""
        if self.is_authenticated:
            super().deposit(amount)
        else:
            print("Необходимо пройти аутентификацию.")

def atm_menu(atm):
    while True:
        print("\n--- Меню банкомата ---")
        print("1. Проверить баланс")
        print("2. Внести деньги")
        print("3. Снять деньги")
        print("4. Ввести пин-код")
        print("5. Завершить обслуживание")
        print("6. Выход")

        choice = input("Выберите действие: ")
        
        if choice == '1':
                atm.check_balance()
        elif choice == '2':
            amount = float(input("Введите сумму для внесения: "))
            atm.deposit(amount)
        elif choice == '3':
            amount = float(input("Введите сумму для снятия: "))
            atm.withdraw(amount)
        elif choice == '4':
            entered_pin = int(input("Введите PIN-код для аутентификации: "))
            atm.authenticate(entered_pin)
        elif choice == '5':
            atm.is_authenticated=False
            print("Сессия завершена!")
        elif choice == "6":
            print("Завершить программу")
            break
        else:
            print("Неправильный выбор.")
        

pin = int(input("Установите PIN-код для SecureATM: "))
secure_atm = SecureATM(pin=pin, balance=10000)
    
entered_pin = int(input("Введите PIN-код для аутентификации: "))
secure_atm.authenticate(entered_pin)

atm_menu(secure_atm)
Editor is loading...
Leave a Comment