Borsa programı; ytd

from tkinter import *
import tkinter as tk

def gir():
    try:
        f1 = float(alisfiyat1.get())                        # fiyat1
        a1 = int(adet1.get())                               # adet1
        sf1 = float(suankifiyat1.get())                     # suankifiyat1
        t1 = (f1 * a1)                                      # tutar1
        yd1 = (sf1 - f1) / f1 * int(100)                    # yuzdelik degisim1
        kz1 = (sf1 - f1) * a1                               # karzarar1
        kntrl1["text"] = "Alış Maliyeti: " + str(round(t1, 2))
        kntrl2["text"] = "Yüzdelik Değişim: % " + str(round(yd1, 2))
        kntrl3["text"] = "Kar/Zarar: " + str(round(kz1, 2))
        ha = str(hisseadi.get())                            #hisseadi


        f2 = float(alisfiyat2.get())                        # fiyat2
        a2 = int(adet2.get())                               # adet2
        sf2 = float(suankifiyat2.get())                     # suankifiyat2
        t2 = (f2 * a2)                                      # tutar2
        yd2 = (sf2 - f2) / f2 * int(100)                    # yuzdelik degisim2
        kz2 = (sf2 - f2) * a2                               # karzarar2
        kntrl4["text"] = "Alış Maliyeti: " + str(round(t2, 2))
        kntrl5["text"] = "Yüzdelik Değişim: % " + str(round(yd2, 2))
        kntrl6["text"] = "Kar/Zarar: " + str(round(kz2, 2))


        of = (t1 + t2) / (a1 + a2)                           # ortalamafiyat yada tt/ta formülü kullanılır
        ta = (a1 + a2)                                       # toplamadet
        tt = (t1 + t2)                                       # toplamtutar
        tkz = (kz1 + kz2)                                    #!!toplamkar/zarar !!!
        oyd = (sf2 - of) / of * int(100)                     # ortalama yuzdelik degisim!!!!
        kntrl7["text"] = "Toplam Maliyet: " + str(round(tt, 3))
        kntrl8["text"] = "Ort Yüzdelik Değişim: % " + str(round(oyd, 2))
        kntrl9["text"] = "Toplam Kar/Zarar: " + str(round(tkz, 3))  # !!!!!
        kntrl10["text"] = "Toplam Adet: " + str(ta)
        kntrl11["text"] = "Ortalama Fiyat: " + str(round(of, 3))

    except ValueError:
        kntrl1["text"] = ("Bir Sayı Giriniz")


p = Tk()
p.title("Borsa")
p.geometry("750x445+600+200")
p.config(bg="black")

l1 = Label(p)
l1.config(text="1.Hisse Alış Fiyatı", bg="black", fg="white",font=("Calibri italic", 12))
l1.grid(row=0,column=0, padx=40)
alisfiyat1 = Entry(p)
alisfiyat1.grid(row=1,column=0, padx=40)

l2 = Label(p)
l2.config(text="Adet", bg="black", fg="white", font=("Calibri italic", 12))
l2.grid(row=2,column=0, padx=40)
adet1 = Entry(p)
adet1.grid(row=3,column=0, padx=40)

l3 = Label(p)
l3.config(text="Şuanki Fiyat", bg="black", fg="white", font=("Calibri italic", 12))
l3.grid(row=4,column=0, padx=40)
suankifiyat1 = Entry(p)
suankifiyat1.grid(row=5,column=0, padx=40)

l4 = Label(p)
l4.config(text="2.Hisse Alış Fiyatı", bg="black", fg="white",font=("Calibri italic", 12))
l4.grid(row=0,column=2, padx=40)
alisfiyat2 = Entry(p)
alisfiyat2.grid(row=1,column=2, padx=40)

l5 = Label(p)
l5.config(text="Adet", bg="black", fg="white", font=("Calibri italic", 12))
l5.grid(row=2,column=2, padx=40)
adet2 = Entry(p)
adet2.grid(row=3,column=2, padx=40)

l6 = Label(p)
l6.config(text="Şuanki Fiyat", bg="black", fg="white", font=("Calibri italic", 12))
l6.grid(row=4,column=2, padx=40)
suankifiyat2 = Entry(p)
suankifiyat2.grid(row=5,column=2, padx=40)

l7 = Label(p)
l7.config(text="Hisse Adını Yazınız", bg="black", fg="white",font=("Calibri italic", 12))
l7.grid(row=2,column=1)
hisseadi = Entry(p)
hisseadi.grid(row=3,column=1)




b1 = Button(p)
b1.config(text="Hesapla", bg="black", fg="white", activebackground="black",
          activeforeground="lime", font=("Calibri italic", 12), command=gir)
b1.grid(row=6,column=1, padx=90)                                                                                               #pady ve padx yazıyla kutu arasındaki mesafeyi ayarlıyor




kntrl1 = Label (p)
kntrl1.config(bg="black", fg="white", font=("calibri",12))
kntrl1.grid(row=6,column=0)

kntrl2 = Label (p)
kntrl2.config(bg="black", fg="white", font=("calibri",12))
kntrl2.grid(row=7,column=0)

kntrl3 = Label (p)
kntrl3.config(bg="black", fg="white", font=("calibri",12))
kntrl3.grid(row=8,column=0)

kntrl4 = Label (p)
kntrl4.config(bg="black", fg="white", font=("calibri",12))
kntrl4.grid(row=6,column=2)

kntrl5 = Label (p)
kntrl5.config(bg="black", fg="white", font=("calibri",12))
kntrl5.grid(row=7,column=2)

kntrl6 = Label (p)
kntrl6.config(bg="black", fg="white", font=("calibri",12))
kntrl6.grid(row=8,column=2)

kntrl7 = Label (p)
kntrl7.config(bg="black", fg="white", font=("calibri",12))
kntrl7.grid(row=9,column=1,sticky=W)

kntrl8 = Label (p)
kntrl8.config(bg="black", fg="white", font=("calibri",12))
kntrl8.grid(row=10,column=1,sticky=W)

kntrl9 = Label (p)
kntrl9.config(bg="black", fg="white", font=("calibri",12))
kntrl9.grid(row=11,column=1,sticky=W)

kntrl10 = Label (p)
kntrl10.config(bg="black", fg="white", font=("calibri",12))
kntrl10.grid(row=12,column=1,sticky=W)

kntrl11 = Label (p)
kntrl11.config(bg="black", fg="white", font=("calibri",12))
kntrl11.grid(row=13,column=1,sticky=W)                                                                                                                          #sticky=W Labeli sola yaslıyor w west demek



def Kaydet():
    with open("borsakayit.txt", "a") as f:
        f.write((hisseadi.get().capitalize().center(110) + ("\n")))                                                                                              #hisse adının ilk harfini txt e büyük harf olarak yazdırmak için capitalize() kullanılır.center(110) ise yazının ortalanmasını sağlar 20karakter sayısı+boşluk sayısını ifade eder.

        f.write(("1.Hisse Alış Fiyatı : ")   +          (alisfiyat1.get().ljust(45)   + ("2.Hisse Alış Fiyatı : ")   + (alisfiyat2.get()                + ("\n") )))
        f.write(("1.Adet").ljust(24)         + (": ") + (adet1.get().ljust(45)        + ("2.Adet").ljust(24)         + (": ") + (adet2.get()            + ("\n") )))    #.ljust() ve .rjust() yardımı ile yazılar(1.Adet) ve (:) arasındaki boşluk ayarlanmıştır.
        f.write(("1.Şuanki Fiyat").ljust(21) + (": ") + (suankifiyat1.get().ljust(45) + ("2.Şuanki Fiyat").ljust(21) + (": ")     + (suankifiyat2.get() + ("\n") + ("\n") )))

        f.write(kntrl1["text"].ljust(68) + kntrl4["text"] + ("\n"))                                                                                             #f.write(kntrl1["text"])   hesaplama sonuçlarını yazdırma şekli böyledir.
        f.write(kntrl2["text"].ljust(63) + kntrl5["text"] + ("\n"))
        f.write(kntrl3["text"].ljust(69) + kntrl6["text"] + ("\n"*2))


        f.write(kntrl7["text"].rjust(60) + ("\n"))
        f.write(kntrl8["text"].rjust(67) + ("\n"))
        f.write(kntrl9["text"].rjust(61) + ("\n"))
        f.write(kntrl10["text"].rjust(54) + ("\n"))
        f.write(kntrl11["text"].rjust(59) + ("\n"*4))
        f.flush()



def Sil():
    with open("borsakayit.txt", "w") as f:                                                                                                                      #w eskiyi silip yeniyi kaydeder a eski kaydı tutar yeni kaydıda altına yazmaya devam eder.w+ veya a+ yaparsak hem yazma hem okuma yapar.
        f.write("")
        f.flush()
        f.close()


def Temizle():
    alisfiyat1.delete(0,END)
    adet1.delete(0,END)
    suankifiyat1.delete(0, END)
    alisfiyat2.delete(0, END)
    adet2.delete(0, END)
    suankifiyat2.delete(0, END)
    hisseadi.delete(0, END)


def portfoyum():  # 2.bir ana pencere açtık portfoy adında
    p1 = tk.Tk()
    p1.title("Portföyüm")
    p1.geometry("750x470+600+200")
    p1.config(bg="black")


    frame = tk.Frame(master=p1)
    frame.pack(fill="both", expand=True)

    y_scroll = tk.Scrollbar(master=frame)
    y_scroll.pack(side="right", fill="y")

    x_scroll = tk.Scrollbar(master=frame)
    x_scroll.pack(side="bottom", fill="x")

    text = tk.Text(master=frame, wrap="none", undo=True,cursor="plus")
    text.pack(fill="both", expand=True)

    y_scroll.configure(orient="vertical", command=text.yview)
    x_scroll.configure(orient="horizontal", command=text.xview)
    text.configure(yscrollcommand=y_scroll.set, xscrollcommand=x_scroll.set, bg="#0d0d0d", fg="#39e600",  font=("Calibri italic", 12, "bold"))


    with open("borsakayit.txt", "r") as f:  # txti portfoy sayfasına yazdırma kodu
        metin = f.readlines()
        for i in metin:
            text.insert("insert", i)



menubar = tk.Menu(master=p)                                                                                                                   #seçenekler menü barın kodları
filemenu = Menu(menubar, tearoff = 0)
filemenu.add_command(label="Portföyüm", command=portfoyum)
filemenu.add_command(label = "Kaydet", command = Kaydet)
filemenu.add_command(label = "Sil", command = Sil)
filemenu.add_separator()                                                                                                            #seçeneklerdeki sil ve temizle yazıları arasındaki cizgi kodu
filemenu.add_command(label = "Temizle", command = Temizle)
menubar.add_cascade(label = "Seçenekler", menu = filemenu)
p.config(menu=menubar)

mainloop()




#               Fiyat(f)                   Adet(a)                              Tutar(t)           Şuanki Fiyat(sf)                      % Değişim(yd)                                             K/Z(kz)
#
#Alış1           3.60(f1)                   280(a1)                              1008(t1)               3.65(sf1)                             none                                                   none
#                                                                         (fiyat1*Adet1 = Tutar1)                        (Şuanki Fiyat1 - Fiyat1)/Fiyat1 * 100=% Değişim1         (Şuanki Fiyat1 - Fiyat1) * (Adet1)=K/Z1
#                                                                             (f1)*(a1) = t1                                           (sf1-f1)/f1*100 = yd1                                     (sf1-f1)*a1 = kz1
#
#
#
#
#
#Alış2           3.80(f2)                   200(a2)                               760(t2)               3.90(sf2)                             none                                                   none
#                                                                        (fiyat2*Adet2 = Tutar2)                        (Şuanki Fiyat2 - Fiyat2)/Fiyat2 * 100=% Değişim2        (Şuanki Fiyat2 - Fiyat2) * (Adet2)=KZ/2
#                                                                             (f2)*(a2) = t2                                           (sf2-f2)/f2*100 = yd2                                     (sf2-f2)*a2 = kz1
#
#Ortalama(ort)     (of)                      (ta)                                   (tt)
#^
#^                                 (Adet1+Adet2 = ToplamAdet)            (Tutar1+Tutar2 = ToplamTutar)
#^                                        (a1+a2 = ta)                             (t1+t2 = tt)
#^
#(Tutar1+Tutar2)/(Adet1+Adet2) = OrtalamaFiyat
#(t1+t2)/(a1+a2)=of

Emeği gecenler;
@dildeolupbiten
@ismailarilik
@hasser

Yardımlarınız için çok teşekkür ediyorum…
exe;
https://www.dosyaupload.com/dy0s

2 Beğeni