Facebook
From Nowy, 3 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 249
  1. def glowne_menu():
  2.     print("Wybierz opcje:")
  3.     print("1. Wpłata")
  4.     print("2. Wypłata")
  5.     print("3. Sprawdzenie stanu konta")
  6.     print("4. Zakończ")
  7.  
  8. def pobierz_wybor_klienta():
  9.     return int(input("Twój wybór to: "))
  10.  
  11. def pokaz_stan_konta(saldo):
  12.     print(f"Stan konta wynosi {saldo} złotych")
  13.  
  14. def pobierz_kwote(wiadomosc):
  15.     kwota = int(input(wiadomosc))
  16.     powodzenie = True
  17.     if kwota % 10 != 0:
  18.         powodzenie = False
  19.     elif kwota < 10:
  20.         powodzenie = False
  21.  
  22.     return kwota, powodzenie
  23.  
  24. def wplata(saldo):
  25.     kwota_wplaty, powodzenie = pobierz_kwote("Ile chcesz wpłacić?")
  26.     if powodzenie:
  27.         saldo += kwota_wplaty
  28.         pokaz_stan_konta(saldo)
  29.         return saldo
  30.     else:
  31.         print("Coś poszło nie tak")
  32.         return saldo
  33.  
  34. def wyplata(saldo):
  35.     kwota_wyplaty, powodzenie = pobierz_kwote("Ile chcesz wypłacić?")
  36.     if kwota_wyplaty > saldo:
  37.         print("Nie możesz wypłacić więcej, niż masz")
  38.         return saldo
  39.     elif powodzenie:
  40.         saldo -= kwota_wyplaty
  41.         pokaz_stan_konta(saldo)
  42.         return saldo
  43.     else:
  44.         print("Podałeś/łaś niepoprawną kwotę wypłaty")
  45.         return saldo
  46.    
  47. def pobierz_dane(dana):
  48.     return input(f"Podaj numer {dana}: ")
  49.  
  50. def sprawdz_zgodnosc_danych(baza,karta,pin):
  51.     for klient in baza:
  52.         if klient.karta == karta:
  53.             if klient.pin == pin:
  54.                 return klient
  55.     return False
  56.  
  57. #Obsługa wpłaty:
  58. # Pobranie od użytkownika ilości gotówki
  59. # Sprawdzenie, czy kwota jest wielkrotnością 10
  60. # Sprawdzenie, czy kwota jest dodatnia
  61. # Zwiększenie salda
  62. # Wyświetlenie stanu konta +
  63.  
  64. # Obsługa wypłta
  65. # Pobranie od użytkownika ilości gotówki
  66. # Sprawdzenie, czy kwota jest wielkrotnością 10
  67. # Sprawdzenie, czy kwota jest dodatnia
  68. # Nie da się wypłacić więcej, niż ma
  69. # Zmniejsza salda
  70. # Wyświetlenie stanu konta+
  71.  
  72. #powyżej bedzimy pisać wszystkie funkcje programu
  73. #saldo = 0
  74. KARTA = "0001"
  75. PIN = "1234"
  76. class Klient():
  77.     def __init__(self,imie,karta,pin,saldo):
  78.         self.imie = imie
  79.         self.pin = pin
  80.         self.karta = karta
  81.         self.saldo = saldo
  82.         self.historia = []
  83.  
  84. baza = []
  85. baza.append(Klient("Andrzej","0001","1234",5000))
  86. baza.append(Klient("Wiesław","0002","1234",6000))
  87. baza.append(Klient("Józek","0003","1234",3000))
  88. baza.append(Klient("Józek","0004","1234",2000))
  89.  
  90.  
  91. # poniżej będzie pętla programu
  92.  
  93. def BANKOMAT():
  94.     global baza
  95.     podana_karta = pobierz_dane("karty")
  96.     podany_pin = pobierz_dane("PIN")
  97.     wybor = int()
  98.     klient = sprawdz_zgodnosc_danych(baza,podana_karta,podany_pin)
  99.     if not klient:
  100.         print("Podane błędne dane logowania")
  101.     else:
  102.         print(f"Witaj {klient.imie}!")
  103.     while wybor != 4 and klient:
  104.         glowne_menu()
  105.         wybor = pobierz_wybor_klienta()
  106.         if wybor == 1:
  107.             klient.saldo = wplata(klient.saldo)
  108.         elif wybor == 2:
  109.             klient.saldo = wyplata(klient.saldo)
  110.         elif wybor ==3:
  111.             pokaz_stan_konta(klient.saldo)
  112.         elif wybor == 4:
  113.             print("Żegnam Pana/Pani")
  114.         else:
  115.             print("Niepoprawne dane")
  116.             pass
  117.  
  118. BANKOMAT()