Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Kitap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[
"Ask",
"Ince Memed",
"Sefiller"
]
65 changes: 65 additions & 0 deletions Kitap_islemleri.py
Original file line number Diff line number Diff line change
@@ -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.")
15 changes: 15 additions & 0 deletions Takip.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"1": [],
"2": [
{
"kitap": "Iskender",
"geri_getirme_tarihi": "2025-01-28"
}
],
"4": [
{
"kitap": "Pinhan",
"geri_getirme_tarihi": "2025-01-28"
}
]
}
22 changes: 22 additions & 0 deletions Uye.json
Original file line number Diff line number Diff line change
@@ -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": []
}
]
23 changes: 23 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -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()
213 changes: 213 additions & 0 deletions uye_islemleri.py
Original file line number Diff line number Diff line change
@@ -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']}")

6 changes: 6 additions & 0 deletions zaman.py
Original file line number Diff line number Diff line change
@@ -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")