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
Binary file not shown.
Binary file not shown.
Binary file added Team1/haluk/__pycache__/zaman.cpython-313.pyc
Binary file not shown.
Empty file added Team1/haluk/homework.py
Empty file.
11,284 changes: 11,284 additions & 0 deletions Team1/haluk/kitap.json

Large diffs are not rendered by default.

83 changes: 83 additions & 0 deletions Team1/haluk/kitap_islemleri.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import json
import os

kitap_json_yolu = r"c:\Users\harri\Desktop\Python_Modul_Week_4\Team1\kitap.json"


def dosya_yukle():
try:
with open(kitap_json_yolu, "r", encoding= "utf-8") as file:
data = json.load(file)
return data
except(FileNotFoundError, json.JSONDecodeError):
print("Dosya bulunamadı veya JSON hatalı! Lütfen kontrol edin.")
return {}
#tum_kitaplar = dosya_yukle()
#print(tum_kitaplar[0])

def dosya_kaydet(veriler):
with open(kitap_json_yolu, "w", encoding="utf-8") as file:
json.dump(veriler,file, ensure_ascii=False, indent=2)

def yeni_kitap_ekle():

tum_kitaplar = dosya_yukle()
mevcut_barkodlar = [kitap["Barkod"] for kitap in tum_kitaplar]
if mevcut_barkodlar:
yeni_barkod = max(mevcut_barkodlar) + 1
# En büyük barkod numarasına 1 ekle
else:
yeni_barkod = 9780000000000 # Eğer hiç kitap yoksa, başlangıç barkodu

yeni_kitap = {
"Barkod": yeni_barkod,
"Dil": input("Kitap Dilini Yaziniz: "),
"Fiyat": float(input("Kitap Fiyatini Giriniz: ")),
"Kitap_Adi": input("Yeni Kitap Adini Giriniz: "),
"Yayinevi": input("Kitabin Yayinevini Yaziniz: "),
"Yazar": input("Kitabin Yazarini Giriniz: ")
}

tum_kitaplar.append(yeni_kitap)
dosya_kaydet(tum_kitaplar)

def kitap_sil():
tum_kitaplar = dosya_yukle()
kitap_sec=input("silmek istediginiz kitabi seciniz: ")
for kitap in tum_kitaplar:
if kitap_sec == kitap['Kitap_Adi']:
tum_kitaplar.remove(kitap)

print(f"{kitap_sec} Kitap basariyla silindi")
dosya_kaydet(tum_kitaplar)
return
print(f"{kitap_sec} Kitap bulunamadi ")
#kitap_sil()

def kitap_ara():
tum_kitaplar = dosya_yukle()
kitap_sec = input("Bulmak istediğiniz kitabın adini giriniz (boş geçebilirsiniz): ")
barkod_sec = None
try:
barkod_sec = int(input("Barkod giriniz..").strip())
if barkod_sec:
int(barkod_sec)

except ValueError:
print("Yanlis Barkod Girdiniz..!")
for kitap in tum_kitaplar:
if kitap_sec == kitap["Kitap_Adi"] or barkod_sec == kitap["Barkod"]:
return print(kitap)

print("Aradiginiz kitap bulunamadi.")
#kitap_ara()

def kitap_anahtari_ekle():
tum_kitaplar = dosya_yukle()
for kitap in tum_kitaplar:
if "durum" not in kitap:
kitap["durum"] = "uygun"
if "zaman" not in kitap:
kitap["zaman"] = None
dosya_kaydet(tum_kitaplar)
#kitap_anahtari_ekle()
65 changes: 65 additions & 0 deletions Team1/haluk/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
from uye_islemleri import uye_ekle, uye_ara, uye_sil, kitap_odunc_verme, kitap_iade
from kitap_islemleri import yeni_kitap_ekle,kitap_sil,kitap_ara
while True:
print("""
KUTUPHANEYE HOSGELDINIZ!!
----------------------------------
1- UYELIK ISLEMLERI
2- KITAP ISLEMLERI
3- CIKIS
""")
islem_sec = input("Bir Islem Seciniz: ")
if islem_sec == "1": # Üyelik işlemleri
while True:
print("""
UYE ISLEMLERI MENUSU
1- UYE EKLE
2- UYE ARA
3- UYE SIL
4- KITAP ODUNC VER
5- KITAP IADE
6- GERI DON
""")
uye_islemi_sec = input("Uye islemi icin bir islem seciniz: ")
if uye_islemi_sec == "1":
uye_ekle()
elif uye_islemi_sec == "2":
uye_ara()
elif uye_islemi_sec == "3":
uye_sil()
elif uye_islemi_sec == "4":
kitap_odunc_verme()
elif uye_islemi_sec == "5":
kitap_iade()
elif uye_islemi_sec == "6":
break
else:
print("Lütfen geçerli bir işlem seçiniz.")
elif islem_sec == "2": # Kitap işlemleri
while True:
print("""
KITAP ISLEMLERI MENUSU
1- YENI KITAP EKLE
2- KITAP SIL
3- KITAP ARA
4- GERI DON
""")
kitap_islemi_sec = input("Kitap islemi icin bir islem seciniz: ")
if kitap_islemi_sec == '1':
yeni_kitap_ekle()
elif kitap_islemi_sec == '2':
kitap_sil()
elif kitap_islemi_sec == '3':
kitap_ara()
elif kitap_islemi_sec == '4':
break
else:
print('Lutfen gecerli bir islem giriniz')

elif islem_sec == "3": # Çıkış islemi
print("Cikis yapiliyor.")
break
else:
print("Lütfen geçerli bir işlem seçiniz.")


167 changes: 167 additions & 0 deletions Team1/haluk/uye_islemleri.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
from kitap_islemleri import dosya_kaydet, dosya_yukle
from zaman import odunc_suresi_hesapla, odunc_zamani
import json
import os

uye_json_yolu = r"c:\Users\harri\Desktop\Python_Modul_Week_4\Team1\uyeler.json"
def uye_yukle():
try:
with open(uye_json_yolu, "r", encoding= "utf-8") as file:
data = json.load(file)
return data
except(FileNotFoundError, json.JSONDecodeError):
print("Dosya bulunamadı veya JSON hatalı! Lütfen kontrol edin.")
return {}

#print("Json dosyasindaki uyeler basariyla yuklendi")
#tum_uyeler = uye_yukle()
#print(tum_uyeler)


def uye_kaydet(veriler):
with open(uye_json_yolu, "w", encoding="utf-8") as file:
json.dump(veriler,file, ensure_ascii=False, indent=2)
print("Json dosyasina uye/islem basariyla kaydedildi")

def uye_ekle():
tum_uyeler = uye_yukle()

if tum_uyeler:
uye_id = int(tum_uyeler[-1]['id']) +1
else:
uye_id =1

yeni_uyeler = {
'id': str(uye_id),
'kullanici_ismi': input("İsim giriniz: "),
'telefon': int(input("'Telefon numarasini giriniz: ")),
'adres': input("Ádres giriniz: "),
'odunc_kitaplar' :[]
}
tum_uyeler.append(yeni_uyeler)

uye_kaydet(tum_uyeler)

print("Yeni uye olusturuldu")

#
def uye_ara():
tum_uyeler = uye_yukle() # JSON dosyasını yükleyen fonksiyon
uyeler = tum_uyeler # 'uyeler' listesini al

uye_sec = input("Üye ismi giriniz: ") # Kullanıcıdan isim al

for uye in uyeler:
if uye['kullanici_ismi'] == uye_sec: # İsim karşılaştırması
print(f"{uye_sec} adlı üye bulundu: {uye}")
return uye # Kullanıcıyı döndür

# Döngü biterse ve kullanıcı bulunamazsa
print(f"{uye_sec} adında bir üye listede bulunmamaktadır!")
return None


#uye_ara()

def uye_sil():
tum_uyeler = uye_yukle()
uyeler = tum_uyeler['uyeler']
uye_sec = input("silmek istediginiz uyenin adini yada Id'sini giriniz: ")
for uye in uyeler:
uye['id'] =str(uye['id'])

for uye in uyeler:
if (uye['id'] == uye_sec) or (uye['kullanici_ismi'] == uye_sec ):
silinen_uye =uye # silinen uyeyi bir degiskene kaydettik
uyeler.remove(uye) # liste uzerinden uyeyi kaldirdik

for index, uye in enumerate(uyeler, start=1): # bir uye silindikten sonra uye listesindeki id'ler tekrardan siralanir. (enumerate siralama yapar. start baslangic degeri)
uye['id'] = str(index)


print(f"{silinen_uye['kullanici_ismi']} uye nasariyla json dosyasindan silindi")

uye_kaydet(tum_uyeler)



def kitap_odunc_verme():
tum_kitaplar = dosya_yukle()
tum_uyeler = uye_yukle()
odunc_alma_zamani = odunc_zamani()
odunc_suresi = odunc_suresi_hesapla() # Fonksiyonu çağır
uye_sec = input("Kitabi Odunc Almak Isteyen Uyenin Ismini Giriniz: ").strip()
kitap_sec = input("Kullanicinin Odunc Almak Istedig Kitabin Adini Giriniz: ").strip()

# Her kullanıcının 'odunc_kitaplar' listesi olsun
for uye in tum_uyeler:
if "odunc_kitaplar" not in uye:
uye["odunc_kitaplar"] = []

for kitap in tum_kitaplar:
if kitap["Kitap_Adi"].lower() == kitap_sec.lower() and kitap["durum"] == "uygun":
# Kitap ödünç alındığında
kitap["durum"] = "meşgul"
kitap["teslim_zamani"] = odunc_suresi # Ödünç alma tarihi
kitap["alinma_zamani"] = odunc_alma_zamani



# Kullanıcı ödünç aldığı kitabı kaydettigi bolum
for uye in tum_uyeler:
if uye.get("kullanici_ismi", "").lower() == uye_sec.lower():
uye["odunc_kitaplar"].append({
"Kitap_Adi": kitap["Kitap_Adi"],
"Barkod": kitap["Barkod"],
"Odunc_Tarihi": kitap["zaman"], # Odünç alındığı tarih
"Teslim_Tarihi": odunc_suresi, # 2 hafta sonra teslim tarihi
"Odunc_Alma_Tarihi": odunc_alma_zamani
})
uye_kaydet(tum_uyeler) # Güncellenmiş kullanıcıları kaydet
break

dosya_kaydet(tum_kitaplar) # Kitapları güncelle
print(f"{kitap_sec} kitabi basariyla ödünç alindi.")
break

elif kitap["Kitap_Adi"].lower() == kitap_sec.lower() and kitap["durum"] != "uygun":
print(f"{kitap_sec} kitabi su anda ödünc alinmis durumda.")
break

print(f"Kitap {odunc_suresi} tarihine kadar ödünc verildi.")


#kitap_odunc_verme()
def kitap_iade():
tum_kitaplar = dosya_yukle()
tum_uyeler = uye_yukle()
uye_sec = input("Kitabi Teslim Etmek Isteyen Uyenin Ismini Giriniz: ").strip()
kitap_sec = input("Kullanicinin Teslim Etmek Istedigi Kitabin Adini Giriniz: ").strip()

for kitap in tum_kitaplar:
if kitap["Kitap_Adi"].lower() == kitap_sec.lower() and kitap["durum"] == "meşgul":
# Kitap ödünç verildiginde
kitap["durum"] = "uygun"
kitap["teslim_zamani"] = None # Ödünç alma tarihi
kitap["alinma_zamani"] = None

# Kullanıcı ödünç aldığı kitabı kaydettigi bolum
for uye in tum_uyeler:
if uye.get("kullanici_ismi", "").lower() == uye_sec.lower():
odunc_listesi = uye.get("odunc_kitaplar", [])
for odunc_kitap in odunc_listesi:
if odunc_kitap["Kitap_Adi"].lower() == kitap_sec.lower():
odunc_listesi.remove(odunc_kitap) # Kitabı listeden çıkar

break
uye_kaydet(tum_uyeler) # Güncellenmiş kullanıcıları kaydet
break
dosya_kaydet(tum_kitaplar) # Kitapları güncelle
print(f"{kitap_sec} kitabi basariyla teslim edildi.")
break
elif kitap["Kitap_Adi"].lower() == kitap_sec.lower() and kitap["durum"] != "meşgul":
print(f"{kitap_sec} kitabi su anda teslim edilmis durumda.")
break

print("Uyeye ait kitap basariyla iade edildi..")
#kitap_iade()
38 changes: 38 additions & 0 deletions Team1/haluk/uyeler.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[
{
"id": "1",
"kullanici_ismi": "Islam Kavas",
"telefon": 645789412,
"adres": "Bir adres, Baska bir sokak,Hollanda",
"odunc_kitaplar": []
},
{
"id": "2",
"kullanici_ismi": "Zehra Okay",
"telefon": 678954168,
"adres": "bir adres,bir sokak, Hollanda",
"odunc_kitaplar": []
},
{
"id": "3",
"kullanici_ismi": "Yasin Utuk",
"telefon": 64568721,
"adres": "bir adres bir sokak, Hollanda",
"odunc_kitaplar": [
{
"Kitap_Adi": "Zamir",
"Barkod": 9786258495423,
"Odunc_Tarihi": "2025-01-30",
"Teslim_Tarihi": "2025-01-30"
},
{
"Kitap_Adi": "Altıncı Koğuş",
"Barkod": 9786052951569,
"Odunc_Tarihi": null,
"Teslim_Tarihi": "2025-01-30",
"Odunc_Alma_Tarihi": "2025-01-16"
}
]
}

]
Empty file added Team1/haluk/zaman.json
Empty file.
24 changes: 24 additions & 0 deletions Team1/haluk/zaman.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

from datetime import datetime, timedelta

def odunc_suresi_hesapla():
bugun = datetime.now() # Bugünün tarihi
iki_hafta_sonra = bugun + timedelta(weeks=2) # 2 hafta ekle
return iki_hafta_sonra.strftime('%Y-%m-%d') # Tarihi formatla

def odunc_zamani():
bugun = datetime.now()
return bugun.strftime('%Y-%m-%d')



#*******************************************************************
#timedelta, iki tarih veya zaman arasındaki farkı temsil eden bir yapıdır.
# Ayrıca, bir tarihe veya zamana ekleme/çıkarma yapmanı sağlar.

#timedelta ile tarih/zamana 2 hafta eklenir.
#strftime, bir datetime objesini istediğin formatta metne dönüştürür.

# %Y: Yılı 4 haneli olarak gösterir (örneğin, 2025).
# %m: Ayı 2 haneli olarak gösterir (örneğin, 01 = Ocak).
# %d: Günü 2 haneli olarak gösterir (örneğin, 14).
Binary file not shown.
Binary file not shown.
Binary file added Team1/islam/__pycache__/zaman.cpython-313.pyc
Binary file not shown.
Empty file added Team1/islam/homework.py
Empty file.
Loading