From 6f1592e0bef3572c0afbd08efc7512344c94095e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serap=20=C3=96z?= <136450926+srpslmslh@users.noreply.github.com> Date: Sat, 18 Jan 2025 00:39:23 +0100 Subject: [PATCH] Add files via upload --- Kitap.json | 5 ++ Kitap_islemleri.py | 65 ++++++++++++++ Takip.json | 15 ++++ Uye.json | 22 +++++ main.py | 23 +++++ uye_islemleri.py | 213 +++++++++++++++++++++++++++++++++++++++++++++ zaman.py | 6 ++ 7 files changed, 349 insertions(+) create mode 100644 Kitap.json create mode 100644 Kitap_islemleri.py create mode 100644 Takip.json create mode 100644 Uye.json create mode 100644 main.py create mode 100644 uye_islemleri.py create mode 100644 zaman.py diff --git a/Kitap.json b/Kitap.json new file mode 100644 index 0000000..a2fafff --- /dev/null +++ b/Kitap.json @@ -0,0 +1,5 @@ +[ + "Ask", + "Ince Memed", + "Sefiller" +] \ No newline at end of file diff --git a/Kitap_islemleri.py b/Kitap_islemleri.py new file mode 100644 index 0000000..d0aa4d3 --- /dev/null +++ b/Kitap_islemleri.py @@ -0,0 +1,65 @@ +import json +import os +KITAP_DOSYASI="Kitap.json" + +#Kitaplari Yukleme +def kitaplari_yukle(): + if os.path.exists(KITAP_DOSYASI): + with open (KITAP_DOSYASI, "r") as file: + return json.load(file) + return [] + +#Kitaplari Kaydetme +def kitaplari_kaydet(kitaplar): + with open (KITAP_DOSYASI, "w") as file: + json.dump(kitaplar, file, indent=4) + +#Menu +def kitap_menu(): + while True: + print("\n****** KITAP ISLEMLERI ******") + print("1. Kitaplari Listele") + print("2. Kitap Ekle") + print("3. Kitap Sil") + print("4. Ana Menuye Don") + secim=input("Seciminizi Yapiniz:") + + if secim=="1": + kitaplari_listele() + elif secim=="2": + kitap_ekle() + elif secim== "3": + kitap_sil() + elif secim=="4": + break + else: + print("Gecersiz Secim! Tekrar Deneyiniz.") + +#Kitaplari Listele +def kitaplari_listele(): + kitaplar=kitaplari_yukle() + if not kitaplar: + print("Kutuphanede Hic Kitap Yok!") + else: + print("Kayitli Kitaplar:") + for kitap in kitaplar: + print(f"-{kitap}") + +#Kitap Eklemek +def kitap_ekle(): + yeni_kitap=input("Eklemek Istediginiz Kitabin Adini Giriniz:") + kitaplar=kitaplari_yukle() + kitaplar.append(yeni_kitap) + kitaplari_kaydet(kitaplar) + print(f"{yeni_kitap} Kutuphaneye Eklendi.") + +#Kitap Sil +def kitap_sil(): + kitap_adi=input("Silmek Istediginiz Kitabin Adini Giriniz:") + kitaplar=kitaplari_yukle() + if kitap_adi in kitaplar: + kitaplar.remove(kitap_adi) + kitaplari_kaydet(kitaplar) + print(f"{kitap_adi} Kutuphaneden silindi.") + else: + print(f"{kitap_adi} Kutuphanede Bulunamadi.") diff --git a/Takip.json b/Takip.json new file mode 100644 index 0000000..5bb8043 --- /dev/null +++ b/Takip.json @@ -0,0 +1,15 @@ +{ + "1": [], + "2": [ + { + "kitap": "Iskender", + "geri_getirme_tarihi": "2025-01-28" + } + ], + "4": [ + { + "kitap": "Pinhan", + "geri_getirme_tarihi": "2025-01-28" + } + ] +} \ No newline at end of file diff --git a/Uye.json b/Uye.json new file mode 100644 index 0000000..7a4d622 --- /dev/null +++ b/Uye.json @@ -0,0 +1,22 @@ +[ + { + "id": 1, + "ad": "Sefa Ozturk", + "kitaplar": [] + }, + { + "id": 2, + "ad": "Furkan Ozturk", + "kitaplar": [] + }, + { + "id": 3, + "ad": "Gurkan Ozturk", + "kitaplar": [] + }, + { + "id": 4, + "ad": "Iclal Ozturk", + "kitaplar": [] + } +] \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..04ee984 --- /dev/null +++ b/main.py @@ -0,0 +1,23 @@ +import Kitap_islemleri +import uye_islemleri + +def main(): + while True: + print("\n*** KUTUPHANE SISTEMI ***") + print("1. Kitap Islemleri") + print("2. Uye Islemleri") + print("3. Cikis") + secim = input("Seciminizi Yapin: ") + + if secim == "1": + Kitap_islemleri.kitap_menu() + elif secim == "2": + uye_islemleri.uye_menu() + elif secim == "3": + print("Cikis Yapiliyor...") + break + else: + print("Gecersiz Secim! Tekrar Deneyin.") + +if __name__ == "__main__": + main() diff --git a/uye_islemleri.py b/uye_islemleri.py new file mode 100644 index 0000000..b979d1f --- /dev/null +++ b/uye_islemleri.py @@ -0,0 +1,213 @@ +from datetime import datetime, timedelta +import json +import os + + +UYE_DOSYASI = "Uye.json" +KITAP_DOSYASI = "Kitap.json" +TAKIP_DOSYASI = "Takip.json" + + +# Üyeleri yükleme +def uyeleri_yukle(): + if os.path.exists(UYE_DOSYASI): + with open(UYE_DOSYASI, "r") as file: + return json.load(file) + return [] + + +# Üyeleri kaydetme +def uyeleri_kaydet(uyeler): + with open(UYE_DOSYASI, "w") as file: + json.dump(uyeler, file, indent=4) + + +# Kitapları yükleme +def kitaplari_yukle(): + if os.path.exists(KITAP_DOSYASI): + with open(KITAP_DOSYASI, "r") as file: + print (json.load(file)) + return [] + + +# Kitapları kaydetme +def kitaplari_kaydet(kitaplar): + with open(KITAP_DOSYASI, "w") as file: + json.dump(kitaplar, file, indent=4) + + +# Takip dosyasını yükleme +def takip_yukle(): + if os.path.exists(TAKIP_DOSYASI): + with open(TAKIP_DOSYASI, "r", encoding='utf-8') as file: + return json.load(file) + return {} + + +# Takip dosyasını kaydetme +def takip_kaydet(takip): + with open(TAKIP_DOSYASI, "w", encoding='utf-8') as file: + json.dump(takip, file, indent=4, ensure_ascii=False) + + +# Menü +def uye_menu(): + while True: + print("\n****** UYE ISLEMLERI ******") + print("1. Uyeleri Listele") + print("2. Uye Ekle") + print("3. Uye Sil") + print("4. Uye Kontrolu") + print("5. Uyeye Kitap Ver") + print("6. Uyeden Kitap Al") + print("7. Odunc Verilen Kitapları Listele") + print("8. Ana Menuye Don") + secim = input("Seciminizi Yapin: ") + + if secim == "1": + uyeleri_listele() + elif secim == "2": + uye_ekle() + elif secim == "3": + uye_sil() + elif secim == "4": + uye_kontrol() + elif secim == "5": + uye_id = input("Uyenin ID'sini Giriniz: ") + kitap_adi = input('Vereceginiz Kitabin Adini Giriniz: ') + uyeye_kitap_ver(uye_id, kitap_adi) + elif secim == "6": + uye_id = input("Uyenin ID'sini Giriniz: ") + kitap_adi = input("Aldiginiz Kitabin Adini Giriniz: ") + uyeden_kitap_al(uye_id, kitap_adi) + elif secim == "7": + takip_listesini_goster() + elif secim == "8": + break + else: + print("Gecersiz secim! Tekrar deneyin.") + + +# Üyeleri listele +def uyeleri_listele(): + uyeler = uyeleri_yukle() + takip = takip_yukle() + if not uyeler: + print("Kutuphanede hic uye yok.") + else: + print("Kayitli Uyeler:") + for uye in uyeler: + # Üyenin aldığı kitapları takip dosyasından al + uye_kitaplar = [kitap['kitap'] for kitap in takip.get(str(uye['id']), [])] + + # Kitaplar listesi boşsa "Hiç kitap alınmamış" yazalım + if uye_kitaplar: + kitaplar_listesi = ", ".join(uye_kitaplar) + else: + kitaplar_listesi = "Hic kitap alinmamis" + + print(f"ID: {uye['id']}, Ad: {uye['ad']}, Kitaplar: {kitaplar_listesi}") + +# Üye ekle +def uye_ekle(): + uyeler = uyeleri_yukle() + yeni_uye_adi = input("Eklemek istediginiz uyenin adini girin: ") + yeni_uye_id = len(uyeler) + 1 + uyeler.append({"id": yeni_uye_id, "ad": yeni_uye_adi, "kitaplar": []}) + uyeleri_kaydet(uyeler) + print(f"{yeni_uye_adi} (ID: {yeni_uye_id}) kutuphaneye eklendi.") + + +# Üye sil +def uye_sil(): + uye_id = input("Silmek istediginiz uyenin ID numarasini girin: ") + uyeler = uyeleri_yukle() + uyeler = [uye for uye in uyeler if str(uye["id"]) != uye_id] + uyeleri_kaydet(uyeler) + print(f"ID {uye_id} uyelikten silindi.") + + +# Üye kontrolü +def uye_kontrol(): + uye_id = input("Kontrol etmek istediginiz uyenin ID numarasini girin: ") + uyeler = uyeleri_yukle() + uye = next((uye for uye in uyeler if str(uye["id"]) == uye_id), None) + if uye: + print(f"Uye Bulundu: ID: {uye['id']}, Ad: {uye['ad']}, Kitaplar: {uye['kitaplar']}") + else: + print(f"ID {uye_id} ile eslesen uye bulunamadı.") + + +# Üyeye kitap ver +def uyeye_kitap_ver(uye_id, kitap_adi): + kitaplar = kitaplari_yukle() + takip = takip_yukle() + + # Kitap başka bir üyede mi kontrol et + for mevcut_uye, kitaplar_listesi in takip.items(): + if kitap_adi in [kitap['kitap'] for kitap in kitaplar_listesi]: + print(f"Bu kitap su anda Uye ID {mevcut_uye}'de.") + return + + # Kitap kütüphanede mevcut mu kontrol et + if kitap_adi not in kitaplar: + print("Bu kitap kutuphanede mevcut degil.") + return + + # Kitap ödünç verilme tarihi ve geri getirme tarihi + geri_getirme_tarihi = (datetime.now() + timedelta(weeks=2)).strftime("%Y-%m-%d") + + # Kitapları takip dosyasına kaydet + if uye_id not in takip: + takip[uye_id] = [] + takip[uye_id].append({"kitap": kitap_adi, "geri_getirme_tarihi": geri_getirme_tarihi}) + + # Kitap kütüphaneden çıkarılıyor + kitaplar.remove(kitap_adi) + kitaplari_kaydet(kitaplar) + + # Takip dosyasına kaydet + takip_kaydet(takip) + print(f"{kitap_adi} kitabi Uye ID {uye_id}'ye odunc verilmistir. Geri getirme tarihi: {geri_getirme_tarihi}.") + + +# Üyeden kitap al +def uyeden_kitap_al(uye_id, kitap_adi): + takip = takip_yukle() + + # Üye mevcut mu ve kitap üyenin listesinde mi kontrol et + if uye_id in takip: + kitaplar_listesi = [kitap for kitap in takip[uye_id] if kitap["kitap"] == kitap_adi] + if kitaplar_listesi: + kitap = kitaplar_listesi[0] + geri_getirme_tarihi = datetime.strptime(kitap["geri_getirme_tarihi"], "%Y-%m-%d") + if datetime.now() > geri_getirme_tarihi: + print(f"Kitap gecikmeli! {geri_getirme_tarihi} tarihinde geri getirilmesi gerekiyordu.") + else: + print(f"Kitap zamanında geri getirildi.") + + # Kitap alındıktan sonra takipten ve kitap listesinden çıkarılıyor + takip[uye_id] = [kitap for kitap in takip[uye_id] if kitap["kitap"] != kitap_adi] + kitaplar = kitaplari_yukle() + kitaplar.append(kitap_adi) + kitaplari_kaydet(kitaplar) + + # Takip dosyasını güncelle + takip_kaydet(takip) + print(f"{kitap_adi} kitabi Uye ID {uye_id}'den alindi ve kutuphaneye geri eklendi.") + else: + print(f"Uye ID {uye_id} bu kitabi odunc almamis.") + + +# Ödünç Verilen Kitapları Listele +def takip_listesini_goster(): + takip = takip_yukle() + if not takip: + print("Hicbir kitap odunc verilmemis.") + else: + print("Odunc Verilen Kitaplar ve Uyeler:") + for uye_id, kitaplar_listesi in takip.items(): + print(f"Uye ID: {uye_id}") + for kitap in kitaplar_listesi: + print(f" Kitap: {kitap['kitap']}, Geri Getirme Tarihi: {kitap['geri_getirme_tarihi']}") + diff --git a/zaman.py b/zaman.py new file mode 100644 index 0000000..78ce5b6 --- /dev/null +++ b/zaman.py @@ -0,0 +1,6 @@ +from datetime import datetime, timedelta + +def tarihleri_al(): + bugun=datetime.now() + iki_hafta_sonra=bugun+timedelta(weeks=2) + return bugun.strftime("%Y-%m-%d"), iki_hafta_sonra.strftime("%Y-%m-%d")