From 0d5f54065f7d34a417d0a67e650dcb35bf1e28d5 Mon Sep 17 00:00:00 2001 From: MahmutEngin <155198520+MahmutEngin@users.noreply.github.com> Date: Fri, 9 May 2025 23:50:47 +0200 Subject: [PATCH 1/2] Week4 --- Emre_team4_member.py | 191 ++++++++++++++++++++ Mahmut_Engin_TL_week4.py | 155 ++++++++++++++++ __pycache__/kitap_islemleri.cpython-313.pyc | Bin 0 -> 177 bytes __pycache__/zaman.cpython-313.pyc | Bin 0 -> 167 bytes adnan_team4_member_week4_zaman.py | 23 +++ main.py | 89 +++++++++ uye.json | 14 ++ 7 files changed, 472 insertions(+) create mode 100644 Emre_team4_member.py create mode 100644 Mahmut_Engin_TL_week4.py create mode 100644 __pycache__/kitap_islemleri.cpython-313.pyc create mode 100644 __pycache__/zaman.cpython-313.pyc create mode 100644 adnan_team4_member_week4_zaman.py create mode 100644 main.py create mode 100644 uye.json diff --git a/Emre_team4_member.py b/Emre_team4_member.py new file mode 100644 index 0000000..76d4d03 --- /dev/null +++ b/Emre_team4_member.py @@ -0,0 +1,191 @@ +import random +# bust_in_silhouette: Kişi 2: Kitap_Transactions.py — Kitap İşlemleri +# Yeni kitap ekleme +# Kitap silme +# Kitap kontrolü + # Kitap verilerini kitap.json dosyasinda yönetme + +kutuphane=[] +def kitap_ekleme(): + while True: + cikis = input("Programdan çikmak için Y/y, devam için 'Enter' : ").lower() + if cikis == "y": + break + + barkod_no=random.randint(10**12, 10**13 - 1) # 13 basamakli aralik + if barkod_no not in [kitap["Barkod"] for kitap in kutuphane]: + # barkodlar = [] + # for kitap in kutuphane: + # barkodlar.append(kitap["Barkod"]) + # if barkod_no not in barkodlar: + # # Kitap eklenebilir + yazar_adiSoyadi=input("yazar ismi giriniz....") + kitap_adi=input("Lutfen kitap ismi giriniz...") + yayin_evi=input("Lutfen yayin evini giriniz") + dil=input("Lutfen 'Dil' seciniz...") + try: + fiyat=float(input("Fiyat giriniz..")) + except ValueError: + print("Gecerli bir fiyat giriniz...") + continue + kitap={ + "Barkod":barkod_no, + "Yazar" : yazar_adiSoyadi, + "Kitap_Adi": kitap_adi, + "Yayin_evi" : yayin_evi, + "Dil" : dil, + "Fiyat": fiyat + } + kutuphane.append(kitap) + print("Kitap basari ile yuklenmistir") + else: + print("Ayni barkod numarasi tekrar üretildi, yeniden deneniyor...") + +def kitap_silme(): + while True: + print("\n" + "="*30) + print("Kitap Silme Menüsü") + print("="*30) + + secim = input("""Lütfen silme için kategori seçiniz: +1- Barkod no +2- Yazar adi +3- Kitap adi +4- Yayin evi +5- Dil +6- Fiyat +7- Çikiş +Seçiminiz: """).strip() + + if secim == "7": + print("Silme işlemi sona erdi.") + break + + # Silinecek değeri al + silinecek = input("Silmek istediğiniz değeri giriniz: ").strip() + + # Hangi alandan silineceğini belirle + if secim == "1": + alan = "Barkod" + try: + silinecek = int(silinecek) + except ValueError: + print("Geçerli bir barkod numarasi giriniz.") + continue + + elif secim == "2": + alan = "Yazar" + + elif secim == "3": + alan = "Kitap_Adi" + + elif secim == "4": + alan = "Yayin_evi" + + elif secim == "5": + alan = "Dil" + + elif secim == "6": + alan = "Fiyat" + try: + silinecek = float(silinecek) + except ValueError: + print("Geçerli bir fiyat giriniz.") + continue + + else: + print("Geçersiz seçim yaptiniz. Lütfen 1-7 arasinda bir değer girin.") + continue + + # Silme işlemi + silindi = False + for kitap in kutuphane[:]: # Listeyi güvenli şekilde dolaş + if kitap[alan] == silinecek: + kutuphane.remove(kitap) + print("Silinen kitap:", kitap) + silindi = True + + if not silindi: + print("Bu bilgiye sahip bir kitap bulunamadi.") + +def kitap_kontrolu(): + while True: + print("\n" + "="*30) + print("Kitap Arama Menüsü") + print("="*30) + secim = input("""Lütfen arama için kategori seçiniz: + 1- Barkod no + 2- Yazar adi + 3- Kitap adi + 4- Yayin evi + 5- Dil + 6- Fiyat + 7- Çikiş + Seçiminiz: """).strip() + if secim == "7": + print("Arama işlemi sona erdi.") + break + + # Aranacak değeri al + aranacak = input("Aramak istediğiniz değeri giriniz: ").strip() + + # Hangi alandan aranacagini belirle + if secim == "1": + alan = "Barkod" + try: + aranacak = int(aranacak) + except ValueError: + print("Geçerli bir barkod numarasi giriniz.") + continue + + elif secim == "2": + alan = "Yazar" + + elif secim == "3": + alan = "Kitap_Adi" + + elif secim == "4": + alan = "Yayin_evi" + + elif secim == "5": + alan = "Dil" + + elif secim == "6": + alan = "Fiyat" + try: + aranacak= float(aranacak) + except ValueError: + print("Geçerli bir fiyat giriniz.") + continue + + else: + print("Geçersiz seçim yaptiniz. Lütfen 1-7 arasinda bir değer girin.") + continue + + # Arama işlemi + bulundu = False + for kitap in kutuphane[:]: # Listeyi güvenli şekilde dolaş + if secim in ["2", "3", "4", "5"]: # Yazar, Kitap Adi, Yayin Evi, Dil için tam eşleşme + if aranacak.lower() == kitap[alan].lower(): + print("Aranan kitap:", kitap) + bulundu = True + elif secim == "1": # Barkod için tam eşleşme + if aranacak == kitap[alan]: + print("Aranan kitap:", kitap) + bulundu = True + elif secim == "6": # Fiyat için tam eşleşme + if aranacak == kitap[alan]: + print("Aranan kitap:", kitap) + bulundu = True + + if not bulundu: + print("Bu bilgiye sahip bir kitap bulunamadi.") + +kitap_ekleme() +kitap_silme() +kitap_kontrolu() + +# Kitaplar ekledikten sonra ekrana yazdirilir +print("\nKütüphane Verileri:") +for kitap in kutuphane: + print(kitap) \ No newline at end of file diff --git a/Mahmut_Engin_TL_week4.py b/Mahmut_Engin_TL_week4.py new file mode 100644 index 0000000..885b256 --- /dev/null +++ b/Mahmut_Engin_TL_week4.py @@ -0,0 +1,155 @@ +import json +import os +import kitap_islemleri +import zaman + +# uye.json dosyasina yazma olusturma +def uye_ekle(): # Üye ekleme fonksiyonu + dosya_adi = "uye.json" + mevcut_veri = [] + id_sayaci = 0 + + if os.path.exists(dosya_adi): + with open(dosya_adi, 'r', encoding='utf-8') as json_dosyasi: + try: + mevcut_veri = json.load(json_dosyasi) + if isinstance(mevcut_veri, list) and mevcut_veri: + # Mevcut en büyük ID'yi bul ve sayaç olarak ayarla + id_sayaci = max([int(uye["Id"]) for uye in mevcut_veri if "Id" in uye]) + except json.JSONDecodeError: + mevcut_veri = [] + # Kullanıcıdan veri al + uye_adi=input("İsim gir: ") + Tel=input("Telefon numarası gir: ") + adres=input("Adres gir: ") + id_sayaci += 1 + yeni_uye = { + "Id": id_sayaci, + "Uye adi": uye_adi, + "Telefon": Tel, + "Adres": adres + } + # Yeni veriyi ekle ve Dosyaya yaz + mevcut_veri.append(yeni_uye) + with open(dosya_adi, 'w', encoding='utf-8') as json_dosyasi: + json.dump(mevcut_veri, json_dosyasi, ensure_ascii=False, indent=4) + + print(f"{dosya_adi} dosyasına veri kaydedildi.") + + + # uye.json dosyasina yazma olusturma +def uye_kontrol(): + aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() + with open("uye.json", "r", encoding="utf-8") as dosya: + uyeler =json.load(dosya) + sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] + if not os.path.exists("uye.json"): + print("Üye dosyası bulunamadı.") + return + if sonuclar: + print("Bulunan üyeler:") + for uye in sonuclar: + print(uye) + else: + print("Hiçbir üye bulunamadı.") +def uye_guncelle(): # uye guncelle + + if not os.path.exists("uye.json"): + print("Üye dosyası bulunamadı.") + return + aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() + with open("uye.json", "r", encoding="utf-8") as dosya: + uyeler =json.load(dosya) + sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] + + if sonuclar: + print("Bulunan üyeler:") + for i, uye in enumerate(sonuclar, start=1): + print(f"{i}. {uye}") + + secim = int(input("Güncellemek istediğiniz üyenin numarasını girin: ")) - 1 + secilen_uye = sonuclar[secim] + guncelle=input("Ne guncellemek istiyorsunuz \n Ad Soyad guncellemek icin 1'e basin \n Telefon numarasi guncellemek icin 2'e basin \n Adres guncellemek icin 3'e basin") + if guncelle=="1": + yeni_ad = input("Yeni ismi girin: ") + secilen_uye["Uye adi"] = yeni_ad + elif guncelle=="2": + yeni_tel = input("Yeni telefon girin: ") + secilen_uye["Telefon"] = yeni_tel + elif guncelle=="3": + yeni_adres = input("Yeni adres girin: ") + secilen_uye["Adres"] = yeni_adres + else: + print("Geçersiz seçim.") + return + # Değişiklikleri ana listeye aktar + for i in range(len(uyeler)): + if uyeler[i]["Uye adi"] == secilen_uye["Uye adi"]: + uyeler[i] = secilen_uye + break + + # Güncellenmiş verileri dosyaya yaz + with open("uye.json", "w", encoding="utf-8") as dosya: + json.dump(uyeler, dosya, ensure_ascii=False, indent=4) + print("Üye bilgisi güncellendi.") + + else: + print("Hiçbir üye bulunamadı.") +def uye_sil(): # Uye silme + if not os.path.exists("uye.json"): + print("Üye dosyası bulunamadı.") + return + aranan_uye = input("Silmek istediginiz uyenin ismini giriniz: ").lower() + with open("uye.json", "r", encoding="utf-8") as dosya: + uyeler =json.load(dosya) + sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] + if not sonuclar: + print("Hiçbir eşleşen üye bulunamadı.") + return + print("Bulunan üyeler:") + for i, uye in enumerate(sonuclar, start=1): + print(f"{i}. {uye}") + secim = int(input("Silmek istediğiniz üyenin numarasını girin: ")) - 1 + secilen_uye = sonuclar[secim] + # Listedeki orijinal üyelerden bu üyeyi çıkar + uyeler = [uye for uye in uyeler if uye != secilen_uye] + # Dosyaya geri yaz + with open("uye.json", "w", encoding="utf-8") as dosya: + json.dump(uyeler, dosya, ensure_ascii=False, indent=4) + + print("Üye başarıyla silindi.") +def uye_ara(): # uye arama + if not os.path.exists("uye.json"): + print("Üye dosyası bulunamadı.") + return + aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() + with open("uye.json", "r", encoding="utf-8") as dosya: + uyeler =json.load(dosya) + sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] + + if sonuclar: + print("Bulunan üyeler:") + for i, uye in enumerate(sonuclar, start=1): + print(f"{i}. {uye}") +def kitap_odunc_verme(): # uye okuyucuya kitap verme (tarihler burada yapilacak) + pass +def takip_yaz(): # takip.json dosyasini buradan olusturup yazacaksiniz + pass +def takip_oku(): # takip.json dosyasini buradan olusturup okuyacaksin + pass +def kitap_iade(): + pass + +while True: + secim = int(input("Seciminizi giriniz: (1-6): ")) + if secim ==1: + uye_ekle() + elif secim==2: + uye_kontrol() + elif secim==3: + uye_guncelle() + elif secim==4: + uye_sil() + elif secim==5: + uye_ara() + \ No newline at end of file diff --git a/__pycache__/kitap_islemleri.cpython-313.pyc b/__pycache__/kitap_islemleri.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b15a0421dd55f6950f15e1e35c15e7cb53d14ac GIT binary patch literal 177 zcmey!%ge<81UZVb86f&Gh=2h`DC08=kTI1Zok5e)ZzV$!6Oi{AB=svG*(xTqIJKxa z#y2q|x3nb2CAB!aB)=dgATq?m-!CRSwJ0OCC{@8TBqpG;BqKjB-Zwv`G$%ehH8nfl yBqlqvB(Weqvp6R;Hz&0yQ?H=%7l%zQNJXk$5i8IFkOPWAjE~HWjEqIhKo$T}T`kT4 literal 0 HcmV?d00001 diff --git a/__pycache__/zaman.cpython-313.pyc b/__pycache__/zaman.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b08d641dbf47cbe00d8a768cf3e07d01dc6a3a00 GIT binary patch literal 167 zcmey!%ge<81Z|4486f&Gh=2h`DC08=kTI1Zok5e)ZzV$!6Oi{AB=yTJ*(xTqIJKxa z#y2q|x3nb2CAB!aB)=dgATq?m-!CRSwJ0OCC{@8TBqpG;BqKjB-Zwv`G$%ehH8nfl oB&I4cH!)AIpz;@oO)f}0)vkyYXe`LuVi4maGb1Bo5i^hl09Y0&w*UYD literal 0 HcmV?d00001 diff --git a/adnan_team4_member_week4_zaman.py b/adnan_team4_member_week4_zaman.py new file mode 100644 index 0000000..c37bb5b --- /dev/null +++ b/adnan_team4_member_week4_zaman.py @@ -0,0 +1,23 @@ +from datetime import datetime, timedelta + +def suanki_tarih(): + """Şu anki tarihi ve saati döndürür.""" + return datetime.now() + +def kitap_verilis_tarihi(): + """Kitabın verildiği tarihi döndürür.""" + return datetime.now() + +def kitap_iade_tarihi(verilis_tarihi, gun_sayisi=14): + """Kitabın iade edilmesi gereken tarihi hesaplar.""" + return verilis_tarihi + timedelta(days=gun_sayisi) + +def gecikme_suresi(iade_tarihi): + """Kitabın iade tarihine göre gecikme süresini hesaplar.""" + bugun = datetime.now() + gecikme = (bugun - iade_tarihi).days + return gecikme if gecikme > 0 else 0 + +def tarih_formatla(tarih): + """Tarihi 'GG-AA-YYYY SS:DD:SS' formatında stringe çevirir.""" + return tarih.strftime("%d-%m-%Y %H:%M:%S") \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..2266ab9 --- /dev/null +++ b/main.py @@ -0,0 +1,89 @@ +from IPython.display import clear_output +import Mahmut_Engin_TL_week4 +import adnan_team4_member_week4_zaman +import Emre_team4_member + + +def halk_kutuphanesi_menu(): + while True: + print("Halk Kütüphanemize Hoşgeldiniz!") + print("1- UYELIK ISLEMLERI") + print("2- KITAP ISLEMLERI") + print("3- CIKIS") + + while True: + try: + secim = input("Lutfen yapmak istediginiz secimin kodunu giriniz (1, 2, 3): ") + break + except Exception as hata: + print("hata ",hata, end="\n\n") + break + + if secim == '1': + + clear_output(wait=True) + + print("1- UYELER") # burayi ben yapicam + print("2- UYE EKLEME") + print("3- UYE ARA") + print("4- UYE SIL") + print("5- KITAP ODUNC VERME") + print("6- KITAP IADE") + print("7- KITAP TAKIBI") + print("0- CIKIS") + birinci_secim = input("islem seciniz (0-7):") + + if birinci_secim == '1': + pass + elif birinci_secim == '2': + Mahmut_Engin_TL_week4.uye_ekle() + elif birinci_secim == '3': + Mahmut_Engin_TL_week4.uye_ara() + elif birinci_secim == '4': + Mahmut_Engin_TL_week4.uye_sil() + elif birinci_secim == '5': + Mahmut_Engin_TL_week4.kitap_odunc_verme() + elif birinci_secim == '6': + Mahmut_Engin_TL_week4.kitap_iade() + elif birinci_secim == '7': + pass + elif birinci_secim == '0': + break + else: + print("Geçersiz seçim, lütfen 0-7 arasında bir değer giriniz.") + + + + elif secim == '2': + clear_output(wait=True) + + print("1-KITAPLAR") #burayi ben yapicam + print("2- KITAP EKLEME") + print("3-KITAP ARA") + print("4-KITAP SIL") + print("0-CIKIS") + ikici_secim = input("islem seciniz") + + if ikici_secim == '1': + pass + elif ikici_secim == '2': + Emre_team4_member.kitap_ekleme() + elif ikici_secim == '3': + Emre_team4_member.kitap_kontrolu() + elif ikici_secim == '4': + Emre_team4_member.kitap_silme() + elif ikici_secim == '0': + break + else: + print("Geçersiz seçim, lütfen 0-4 arasında bir değer giriniz.") + + + elif secim == '3': + print("Çıkış yapılıyor... Görüşmek üzere!") + break # Programdan çıkış yapar + else: + print("Geçersiz seçenek, lütfen tekrar deneyin.") + + +if __name__ == "__main__": + halk_kutuphanesi_menu() \ No newline at end of file diff --git a/uye.json b/uye.json new file mode 100644 index 0000000..91cddcc --- /dev/null +++ b/uye.json @@ -0,0 +1,14 @@ +[ + { + "Id": 1, + "Uye adi": "mahmut", + "Telefon": "11111111", + "Adres": "Rotterdam" + }, + { + "Id": 2, + "Uye adi": "kamil", + "Telefon": "456546", + "Adres": "roterdam" + } +] \ No newline at end of file From 1d03413ebbe7ac53709cf66f07e2e370e407d250 Mon Sep 17 00:00:00 2001 From: MahmutEngin <155198520+MahmutEngin@users.noreply.github.com> Date: Sun, 18 May 2025 00:01:46 +0200 Subject: [PATCH 2/2] Son_Duzenli --- Emre_team4_member.py | 191 ------------------ Mahmut_Engin_TL_week4.py | 155 -------------- __pycache__/Emre_team4_member.cpython-313.pyc | Bin 0 -> 5575 bytes .../Mahmut_Engin_TL_week4.cpython-313.pyc | Bin 0 -> 13068 bytes ...n_team4_member_week4_zaman.cpython-313.pyc | Bin 0 -> 1478 bytes kitap_islemleri.py | 117 +++++++++++ main.py | 84 ++------ uye.json | 6 + uye_islemleri.py | 187 +++++++++++++++++ adnan_team4_member_week4_zaman.py => zaman.py | 2 +- 10 files changed, 324 insertions(+), 418 deletions(-) delete mode 100644 Emre_team4_member.py delete mode 100644 Mahmut_Engin_TL_week4.py create mode 100644 __pycache__/Emre_team4_member.cpython-313.pyc create mode 100644 __pycache__/Mahmut_Engin_TL_week4.cpython-313.pyc create mode 100644 __pycache__/adnan_team4_member_week4_zaman.cpython-313.pyc create mode 100644 kitap_islemleri.py create mode 100644 uye_islemleri.py rename adnan_team4_member_week4_zaman.py => zaman.py (92%) diff --git a/Emre_team4_member.py b/Emre_team4_member.py deleted file mode 100644 index 76d4d03..0000000 --- a/Emre_team4_member.py +++ /dev/null @@ -1,191 +0,0 @@ -import random -# bust_in_silhouette: Kişi 2: Kitap_Transactions.py — Kitap İşlemleri -# Yeni kitap ekleme -# Kitap silme -# Kitap kontrolü - # Kitap verilerini kitap.json dosyasinda yönetme - -kutuphane=[] -def kitap_ekleme(): - while True: - cikis = input("Programdan çikmak için Y/y, devam için 'Enter' : ").lower() - if cikis == "y": - break - - barkod_no=random.randint(10**12, 10**13 - 1) # 13 basamakli aralik - if barkod_no not in [kitap["Barkod"] for kitap in kutuphane]: - # barkodlar = [] - # for kitap in kutuphane: - # barkodlar.append(kitap["Barkod"]) - # if barkod_no not in barkodlar: - # # Kitap eklenebilir - yazar_adiSoyadi=input("yazar ismi giriniz....") - kitap_adi=input("Lutfen kitap ismi giriniz...") - yayin_evi=input("Lutfen yayin evini giriniz") - dil=input("Lutfen 'Dil' seciniz...") - try: - fiyat=float(input("Fiyat giriniz..")) - except ValueError: - print("Gecerli bir fiyat giriniz...") - continue - kitap={ - "Barkod":barkod_no, - "Yazar" : yazar_adiSoyadi, - "Kitap_Adi": kitap_adi, - "Yayin_evi" : yayin_evi, - "Dil" : dil, - "Fiyat": fiyat - } - kutuphane.append(kitap) - print("Kitap basari ile yuklenmistir") - else: - print("Ayni barkod numarasi tekrar üretildi, yeniden deneniyor...") - -def kitap_silme(): - while True: - print("\n" + "="*30) - print("Kitap Silme Menüsü") - print("="*30) - - secim = input("""Lütfen silme için kategori seçiniz: -1- Barkod no -2- Yazar adi -3- Kitap adi -4- Yayin evi -5- Dil -6- Fiyat -7- Çikiş -Seçiminiz: """).strip() - - if secim == "7": - print("Silme işlemi sona erdi.") - break - - # Silinecek değeri al - silinecek = input("Silmek istediğiniz değeri giriniz: ").strip() - - # Hangi alandan silineceğini belirle - if secim == "1": - alan = "Barkod" - try: - silinecek = int(silinecek) - except ValueError: - print("Geçerli bir barkod numarasi giriniz.") - continue - - elif secim == "2": - alan = "Yazar" - - elif secim == "3": - alan = "Kitap_Adi" - - elif secim == "4": - alan = "Yayin_evi" - - elif secim == "5": - alan = "Dil" - - elif secim == "6": - alan = "Fiyat" - try: - silinecek = float(silinecek) - except ValueError: - print("Geçerli bir fiyat giriniz.") - continue - - else: - print("Geçersiz seçim yaptiniz. Lütfen 1-7 arasinda bir değer girin.") - continue - - # Silme işlemi - silindi = False - for kitap in kutuphane[:]: # Listeyi güvenli şekilde dolaş - if kitap[alan] == silinecek: - kutuphane.remove(kitap) - print("Silinen kitap:", kitap) - silindi = True - - if not silindi: - print("Bu bilgiye sahip bir kitap bulunamadi.") - -def kitap_kontrolu(): - while True: - print("\n" + "="*30) - print("Kitap Arama Menüsü") - print("="*30) - secim = input("""Lütfen arama için kategori seçiniz: - 1- Barkod no - 2- Yazar adi - 3- Kitap adi - 4- Yayin evi - 5- Dil - 6- Fiyat - 7- Çikiş - Seçiminiz: """).strip() - if secim == "7": - print("Arama işlemi sona erdi.") - break - - # Aranacak değeri al - aranacak = input("Aramak istediğiniz değeri giriniz: ").strip() - - # Hangi alandan aranacagini belirle - if secim == "1": - alan = "Barkod" - try: - aranacak = int(aranacak) - except ValueError: - print("Geçerli bir barkod numarasi giriniz.") - continue - - elif secim == "2": - alan = "Yazar" - - elif secim == "3": - alan = "Kitap_Adi" - - elif secim == "4": - alan = "Yayin_evi" - - elif secim == "5": - alan = "Dil" - - elif secim == "6": - alan = "Fiyat" - try: - aranacak= float(aranacak) - except ValueError: - print("Geçerli bir fiyat giriniz.") - continue - - else: - print("Geçersiz seçim yaptiniz. Lütfen 1-7 arasinda bir değer girin.") - continue - - # Arama işlemi - bulundu = False - for kitap in kutuphane[:]: # Listeyi güvenli şekilde dolaş - if secim in ["2", "3", "4", "5"]: # Yazar, Kitap Adi, Yayin Evi, Dil için tam eşleşme - if aranacak.lower() == kitap[alan].lower(): - print("Aranan kitap:", kitap) - bulundu = True - elif secim == "1": # Barkod için tam eşleşme - if aranacak == kitap[alan]: - print("Aranan kitap:", kitap) - bulundu = True - elif secim == "6": # Fiyat için tam eşleşme - if aranacak == kitap[alan]: - print("Aranan kitap:", kitap) - bulundu = True - - if not bulundu: - print("Bu bilgiye sahip bir kitap bulunamadi.") - -kitap_ekleme() -kitap_silme() -kitap_kontrolu() - -# Kitaplar ekledikten sonra ekrana yazdirilir -print("\nKütüphane Verileri:") -for kitap in kutuphane: - print(kitap) \ No newline at end of file diff --git a/Mahmut_Engin_TL_week4.py b/Mahmut_Engin_TL_week4.py deleted file mode 100644 index 885b256..0000000 --- a/Mahmut_Engin_TL_week4.py +++ /dev/null @@ -1,155 +0,0 @@ -import json -import os -import kitap_islemleri -import zaman - -# uye.json dosyasina yazma olusturma -def uye_ekle(): # Üye ekleme fonksiyonu - dosya_adi = "uye.json" - mevcut_veri = [] - id_sayaci = 0 - - if os.path.exists(dosya_adi): - with open(dosya_adi, 'r', encoding='utf-8') as json_dosyasi: - try: - mevcut_veri = json.load(json_dosyasi) - if isinstance(mevcut_veri, list) and mevcut_veri: - # Mevcut en büyük ID'yi bul ve sayaç olarak ayarla - id_sayaci = max([int(uye["Id"]) for uye in mevcut_veri if "Id" in uye]) - except json.JSONDecodeError: - mevcut_veri = [] - # Kullanıcıdan veri al - uye_adi=input("İsim gir: ") - Tel=input("Telefon numarası gir: ") - adres=input("Adres gir: ") - id_sayaci += 1 - yeni_uye = { - "Id": id_sayaci, - "Uye adi": uye_adi, - "Telefon": Tel, - "Adres": adres - } - # Yeni veriyi ekle ve Dosyaya yaz - mevcut_veri.append(yeni_uye) - with open(dosya_adi, 'w', encoding='utf-8') as json_dosyasi: - json.dump(mevcut_veri, json_dosyasi, ensure_ascii=False, indent=4) - - print(f"{dosya_adi} dosyasına veri kaydedildi.") - - - # uye.json dosyasina yazma olusturma -def uye_kontrol(): - aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() - with open("uye.json", "r", encoding="utf-8") as dosya: - uyeler =json.load(dosya) - sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] - if not os.path.exists("uye.json"): - print("Üye dosyası bulunamadı.") - return - if sonuclar: - print("Bulunan üyeler:") - for uye in sonuclar: - print(uye) - else: - print("Hiçbir üye bulunamadı.") -def uye_guncelle(): # uye guncelle - - if not os.path.exists("uye.json"): - print("Üye dosyası bulunamadı.") - return - aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() - with open("uye.json", "r", encoding="utf-8") as dosya: - uyeler =json.load(dosya) - sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] - - if sonuclar: - print("Bulunan üyeler:") - for i, uye in enumerate(sonuclar, start=1): - print(f"{i}. {uye}") - - secim = int(input("Güncellemek istediğiniz üyenin numarasını girin: ")) - 1 - secilen_uye = sonuclar[secim] - guncelle=input("Ne guncellemek istiyorsunuz \n Ad Soyad guncellemek icin 1'e basin \n Telefon numarasi guncellemek icin 2'e basin \n Adres guncellemek icin 3'e basin") - if guncelle=="1": - yeni_ad = input("Yeni ismi girin: ") - secilen_uye["Uye adi"] = yeni_ad - elif guncelle=="2": - yeni_tel = input("Yeni telefon girin: ") - secilen_uye["Telefon"] = yeni_tel - elif guncelle=="3": - yeni_adres = input("Yeni adres girin: ") - secilen_uye["Adres"] = yeni_adres - else: - print("Geçersiz seçim.") - return - # Değişiklikleri ana listeye aktar - for i in range(len(uyeler)): - if uyeler[i]["Uye adi"] == secilen_uye["Uye adi"]: - uyeler[i] = secilen_uye - break - - # Güncellenmiş verileri dosyaya yaz - with open("uye.json", "w", encoding="utf-8") as dosya: - json.dump(uyeler, dosya, ensure_ascii=False, indent=4) - print("Üye bilgisi güncellendi.") - - else: - print("Hiçbir üye bulunamadı.") -def uye_sil(): # Uye silme - if not os.path.exists("uye.json"): - print("Üye dosyası bulunamadı.") - return - aranan_uye = input("Silmek istediginiz uyenin ismini giriniz: ").lower() - with open("uye.json", "r", encoding="utf-8") as dosya: - uyeler =json.load(dosya) - sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] - if not sonuclar: - print("Hiçbir eşleşen üye bulunamadı.") - return - print("Bulunan üyeler:") - for i, uye in enumerate(sonuclar, start=1): - print(f"{i}. {uye}") - secim = int(input("Silmek istediğiniz üyenin numarasını girin: ")) - 1 - secilen_uye = sonuclar[secim] - # Listedeki orijinal üyelerden bu üyeyi çıkar - uyeler = [uye for uye in uyeler if uye != secilen_uye] - # Dosyaya geri yaz - with open("uye.json", "w", encoding="utf-8") as dosya: - json.dump(uyeler, dosya, ensure_ascii=False, indent=4) - - print("Üye başarıyla silindi.") -def uye_ara(): # uye arama - if not os.path.exists("uye.json"): - print("Üye dosyası bulunamadı.") - return - aranan_uye = input("Bulmak istediginiz uyenin ismini giriniz: ").lower() - with open("uye.json", "r", encoding="utf-8") as dosya: - uyeler =json.load(dosya) - sonuclar = [uye for uye in uyeler if aranan_uye in uye.get("Uye adi", "").lower()] - - if sonuclar: - print("Bulunan üyeler:") - for i, uye in enumerate(sonuclar, start=1): - print(f"{i}. {uye}") -def kitap_odunc_verme(): # uye okuyucuya kitap verme (tarihler burada yapilacak) - pass -def takip_yaz(): # takip.json dosyasini buradan olusturup yazacaksiniz - pass -def takip_oku(): # takip.json dosyasini buradan olusturup okuyacaksin - pass -def kitap_iade(): - pass - -while True: - secim = int(input("Seciminizi giriniz: (1-6): ")) - if secim ==1: - uye_ekle() - elif secim==2: - uye_kontrol() - elif secim==3: - uye_guncelle() - elif secim==4: - uye_sil() - elif secim==5: - uye_ara() - \ No newline at end of file diff --git a/__pycache__/Emre_team4_member.cpython-313.pyc b/__pycache__/Emre_team4_member.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1de7d11aa2118edc238cb8d40ae6de90462c325b GIT binary patch literal 5575 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 literal 0 HcmV?d00001 diff --git a/__pycache__/adnan_team4_member_week4_zaman.cpython-313.pyc b/__pycache__/adnan_team4_member_week4_zaman.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..486ad19980b82f4e82e5c9dd29d1c90f872f9cc2 GIT binary patch literal 1478 zcmb_cJxmlq6rS1JgTuoE6^&lhjD`zr;++kmUI>W^2LC|Aa#6x1n}Hqg#=G6anOzB1 zl>QW$D4kI|wY0IaL;E8Znr$@E#!kV?$~SXAL2N91*?oEQX7xCu}o~ZeU^BaTv$#4)7hN zPOIyiDqaptexFGBbVd@?`NU6J;hCIX_*zvJ{kSzB5sC!>V(Yv5GTPq^?hWCt%bY zay;hEG2tx2%#d@NdeqM?EJfWiRKOe!OeA4X-De7dW%M<c5dP z0L3oyfX=;rZ`!V3y%Jh%LaNb6zWd3rdv4; zcN3JyUiFydqy%(VnBO|dGLv+n zN=44Xk?GPUX@Sn*Yfx3{Pju0aQs_I9E^*1Ff<;K9mtBos)Hba~_Q13{3%MKIGWwi6 z@c8_T{QAM+_2h8f9B#DM1`li60xiPe-v#R9YrR<@bV@&M2htzcARu7DiXV09;&VUiy z&X0}dZF_)RuL+L^pmUcJ83^u|7+HJHZgIgy?)I*Xo6UIH%nZq#%V#F?85@L@fOXf^ zp9tc(CReI0n|ev zw_V>Eq4cJS)Wx=4wqJ=6PyJNbs5lJk6cTv^-1iv9_!Ao3Fb$mENPznZ?&L