-
Notifications
You must be signed in to change notification settings - Fork 0
/
basit-banka-uygulamasi.py
101 lines (85 loc) · 3.76 KB
/
basit-banka-uygulamasi.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# BankaHesabı sınıfı
class BankaHesabı:
# Kurucu fonksiyon
def __init__(self, bakiye=500):
self.bakiye = bakiye # Başlangıç bakiyesi
self.para_birimi = "euro" # Varsayılan para birimi
self.kur = {"dolar": 1.12, "euro": 1, "sterlin": 0.86} # Para birimleri arası kur
# Para birimi seçme fonksiyonu
def para_birimi_sec(self, secim):
if secim == 1:
self.para_birimi = "dolar"
elif secim == 2:
self.para_birimi = "euro"
elif secim == 3:
self.para_birimi = "sterlin"
else:
print("Geçersiz seçim. Euro olarak devam edilecek.")
print(f"Para biriminiz {self.para_birimi} olarak ayarlandı.")
# Para yatırma fonksiyonu
def para_yatir(self, miktar):
self.bakiye += miktar / self.kur[self.para_birimi] # Bakiyeyi euro cinsinden güncelle
print(f"{miktar} {self.para_birimi} yatırdınız. Güncel bakiyeniz: {self.bakiye * self.kur[self.para_birimi]:.2f} {self.para_birimi}")
# Para çekme fonksiyonu
def para_cek(self, miktar):
if miktar <= self.bakiye * self.kur[self.para_birimi]: # Bakiye yeterli mi kontrol et
self.bakiye -= miktar / self.kur[self.para_birimi] # Bakiyeyi euro cinsinden güncelle
print(f"{miktar} {self.para_birimi} çektiniz. Güncel bakiyeniz: {self.bakiye * self.kur[self.para_birimi]:.2f} {self.para_birimi}")
else:
print("Yetersiz bakiye. İşlem gerçekleştirilemedi.")
# Bakiye gösterme fonksiyonu
def bakiye_goster(self):
print(f"Güncel bakiyeniz: {self.bakiye * self.kur[self.para_birimi]:.2f} {self.para_birimi}")
# Tkinter kütüphanesini içe aktar
import tkinter as tk
# BankaHesabı nesnesi oluştur
hesap = BankaHesabı()
# Tkinter penceresi oluştur ve başlığını ayarla
window = tk.Tk()
window.title('Banka Uygulaması')
# Pencereye arayüz elemanları ekle
# Bir metin etiketi
label = tk.Label(window, text='Hoşgeldiniz')
label.pack()
# Bir metin kutusu
entry = tk.Entry(window)
entry.pack()
# Bir çerçeve
frame2 = tk.Frame(window)
frame2.pack()
# Çerçevenin başlığı
label2 = tk.Label(frame2, text='Lütfen para birimi seçiniz:')
label2.pack()
# Çerçevenin içine seçim listesi
listbox = tk.Listbox(frame2)
listbox.insert(1, 'Dolar')
listbox.insert(2, 'Euro')
listbox.insert(3, 'Sterlin')
listbox.pack()
# Bir buton grubu
frame = tk.Frame(window)
frame.pack()
button1 = tk.Button(frame, text='Para yatır', command=lambda: hesap.para_yatir(float(entry.get())))
button1.pack(side=tk.LEFT)
button2 = tk.Button(frame, text='Para çek', command=lambda: hesap.para_cek(float(entry.get())))
button2.pack(side=tk.LEFT)
button3 = tk.Button(frame, text='Bakiye göster', command=hesap.bakiye_goster)
button3.pack(side=tk.LEFT)
button4 = tk.Button(frame, text='Çıkış', command=window.destroy)
button4.pack(side=tk.LEFT)
# Bir durum çubuğu
status = tk.Label(window, text='Lütfen para birimi seçiniz', bd=1, relief=tk.SUNKEN, anchor=tk.W)
status.pack(side=tk.BOTTOM, fill=tk.X)
# Bir metin etiketi daha
bakiye_label = tk.Label(window, text=f'Güncel bakiyeniz: {hesap.bakiye * hesap.kur[hesap.para_birimi]:.2f} {hesap.para_birimi}')
bakiye_label.pack()
# Seçim listesinin seçim değiştiğinde çalışacak fonksiyonu
def onselect(event):
secim = listbox.curselection()[0] + 1 # Seçilen indeksi al
hesap.para_birimi_sec(secim) # Para birimini seç
status.config(text=f'Para biriminiz {hesap.para_birimi} olarak ayarlandı') # Durum çubuğunu güncelle
bakiye_label.config(text=f'Güncel bakiyeniz: {hesap.bakiye * hesap.kur[hesap.para_birimi]:.2f} {hesap.para_birimi}') # Bakiye etiketini güncelle
# Seçim listesine olay bağla
listbox.bind('<<ListboxSelect>>', onselect)
# Pencereyi göster
window.mainloop()