# Projekt: Symulator bankomatu w języku Python ## Cel zadania Napisz program w języku Python symulujący działanie bankomatu. Program powinien umożliwiać logowanie użytkownika za pomocą numeru karty i numeru PIN, a następnie wykonywanie podstawowych operacji bankowych. ## Wymagania funkcjonalne ### 1. Logowanie użytkownika * Program przechowuje dane klientów w liście. * Każdy klient posiada: * numer karty, * PIN, * saldo konta, * historię operacji. * Użytkownik podaje numer karty oraz PIN. * Program sprawdza poprawność danych logowania. * W przypadku błędnych danych wyświetla komunikat: „Błąd logowania”. ### 2. Menu główne Po poprawnym zalogowaniu program wyświetla menu: 1. Wpłata 2. Wypłata 3. Sprawdzenie stanu konta 4. Zakończ 5. Wyświetlenie historii operacji Użytkownik wybiera jedną z opcji. ### 3. Wpłata środków * Program pobiera od użytkownika kwotę wpłaty. * Dodaje ją do aktualnego salda. * Wyświetla nowy stan konta. * Zapisuje operację w historii klienta. ### 4. Wypłata środków * Program pobiera kwotę wypłaty. * Sprawdza, czy na koncie znajdują się wystarczające środki. * Jeżeli środków jest za mało: * wyświetla komunikat o nieudanej operacji, * saldo pozostaje bez zmian. * Jeżeli środków jest wystarczająco: * odejmuje kwotę od salda, * wyświetla informację o wypłacie. * Operacja zostaje zapisana w historii klienta. ### 5. Sprawdzenie salda * Program wyświetla aktualny stan konta. * Operacja zostaje zapisana w historii klienta. ### 6. Historia operacji * Program wyświetla wszystkie wykonane przez użytkownika operacje. * Operacje powinny być numerowane. Przykład: 1. Wpłata 2. Wypłata 3. Wyświetlenie salda ### 7. Zakończenie działania programu * Po wybraniu opcji „4” program kończy działanie i wyświetla komunikat: „Wyłączanie bankomatu”. ## Wymagania techniczne Program powinien być podzielony na funkcje: * wyświetlanie menu, * pobieranie wyboru użytkownika, * pobieranie kwoty, * wyświetlanie stanu konta, * realizacja wpłaty, * realizacja wypłaty, * pobieranie danych logowania, * sprawdzanie poprawności logowania, * pobieranie salda klienta, * aktualizacja historii operacji, * wyświetlanie historii operacji. ## Dane testowe Przygotuj co najmniej trzech klientów: | Numer karty | PIN | Saldo | | ----------- | ---- | ------- | | 0001 | 1234 | 0 | | 0002 | 1111 | 120 | | 0003 | 3232 | 1223.33 | ## Zadania dodatkowe (dla chętnych) 1. Zapisywanie w historii kwoty wpłaty i wypłaty. 2. Wyświetlanie daty i godziny każdej operacji. 3. Możliwość zmiany numeru PIN. 4. Ograniczenie liczby błędnych prób logowania do 3. 5. Aktualizacja salda bezpośrednio w bazie klientów. 6. Formatowanie kwot do dwóch miejsc po przecinku.