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
Empty file added Ersin/Ersin.py
Empty file.
Binary file added Ersin/__pycache__/kitap_islem.cpython-312.pyc
Binary file not shown.
Binary file added Ersin/__pycache__/menu.cpython-312.pyc
Binary file not shown.
Binary file added Ersin/__pycache__/takip.cpython-312.pyc
Binary file not shown.
Binary file added Ersin/__pycache__/uye_islem.cpython-312.pyc
Binary file not shown.
48 changes: 48 additions & 0 deletions Ersin/kitap_islem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import pandas as pd

# Kitap listeleme fonksiyonu
def kitap_listele():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")
print("Kütüphanedeki kitaplar:")
print(df_books)

# Kitap ekleme fonksiyonu
def kitap_ekle():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")

yeni_kitap = pd.DataFrame({
"Barkod": [input("Kitap barkodunu giriniz: ")],
"Dil": [input("Kitabın dilini giriniz: ")],
"Fiyat": [float(input("Kitabın fiyatını giriniz: "))],
"Kitap_Adi": [input("Kitabın adını giriniz: ")],
"Yayinevi": [input("Yayınevini giriniz: ")],
"Yazar": [input("Yazarın adını giriniz: ")]
})

# append yerine pd.concat kullanıyoruz
df_books = pd.concat([df_books, yeni_kitap], ignore_index=True)

df_books.to_excel(file_path, sheet_name="Books", index=False)
print("Kitap başarıyla eklendi.")

# Kitap arama fonksiyonu
def kitap_arama():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")
kitap_adi = input("Aradığınız kitabın adını giriniz: ")
sonuc = df_books[df_books['Kitap_Adi'].str.contains(kitap_adi, case=False, na=False)]
if not sonuc.empty:
print(sonuc)
else:
print("Kitap bulunamadı.")

# Kitap silme fonksiyonu
def kitap_sil():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")
kitap_barkod = input("Silmek istediğiniz kitabın barkodunu giriniz: ")
df_books = df_books[df_books['Barkod'] != int(kitap_barkod)]
df_books.to_excel(file_path, sheet_name="Books", index=False)
print(f"{kitap_barkod} barkodlu kitap silindi.")
Binary file added Ersin/library_database.xlsx
Binary file not shown.
96 changes: 96 additions & 0 deletions Ersin/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import os
import pandas as pd
import menu
from kitap_islem import *
from uye_islem import *
from takip import *

# Excel dosyasını kontrol et ve gerekirse işlemleri başlat
def check_files():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
if not os.path.exists(file_path):
print(f"Excel dosyası '{file_path}' bulunamadı. Lütfen gerekli dosyaları hazırlayın.")
return False
return True

# Veritabanını yükleme işlemi
def load_database():
try:
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")
df_members = pd.read_excel(file_path, sheet_name="Members")
df_tracking = pd.read_excel(file_path, sheet_name="Tracking")
return df_books, df_members, df_tracking
except Exception as e:
print("Veritabanı yüklenirken bir hata oluştu:", e)
return None, None, None

# Ana menü ve alt menülerde kullanılacak fonksiyonlar için yöntem listeleri
member_methods = {
1: uye_listele,
2: uye_ekle,
3: uye_arama,
4: uye_guncelle,
5: uye_sil,
6: kitap_ver,
7: kitap_iade,
8: uye_kitap_takibi
}

book_methods = {
1: kitap_listele,
2: kitap_ekle,
3: kitap_arama,
4: kitap_sil,
5: kitap_ver
}

if __name__ == "__main__":
if not check_files():
exit()

df_books, df_members, df_tracking = load_database()

while True:
try:
menu.anamenu()
choice = input("Lütfen yapmak istediğiniz işlemin kodunu giriniz : ")
if choice == "0":
break
elif choice == "1":
while True:
menu.uyemenu()
uyemenu_choice = int(
input(
"Üye menüsüne hoşgeldiniz\nLütfen yapmak istediğiniz işlemin kodunu giriniz : "
)
)
if uyemenu_choice == 9:
break
elif not 1 <= uyemenu_choice <= 8:
print("Geçersiz seçim!")
else:
member_methods[uyemenu_choice]() # Seçilen fonksiyonu çağır
elif choice == "2":
while True:
menu.kitapmenu()
kitapmenu_choice = int(
input(
"Kitap menüsüne hoşgeldiniz\nLütfen yapmak istediğiniz işlemin kodunu giriniz : "
)
)
if kitapmenu_choice == 6:
break
elif not 1 <= kitapmenu_choice <= 5:
print("Geçersiz seçim!")
else:
book_methods[kitapmenu_choice]() # Seçilen fonksiyonu çağır
elif choice == "3":
print("Çıkış yapılıyor...")
break
else:
print("Geçersiz seçim!")
continue
except Exception as e:
print("Bir hata oluştu : ", e)
continue
47 changes: 47 additions & 0 deletions Ersin/menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
def anamenu():
print(100 * "_")
print(34*"_" + "HALK KÜTÜPHANESİNE HOŞ GELDİNİZ" + 35*"_")
print("_" + 98 * " " + "_")
print("_" + 98 * " " + "_")
print(100 * " ")
print(" 1- ÜYELİK İŞLEMLERİ ")
print(" 2- KİTAP İŞLEMLERİ ")
print(" 3- ÇIKIŞ ")
print("_" + 98 * " " + "_")
print("_" + 98 * " " + "_")
print(100 * "_")


def kitapmenu():
print(100 * "_")
print(34*"_" + "KİTAP MENÜSÜ" + 35*"_")
print(100 * " ")
print(100 * " ")
print(" 1- KİTAP LİSTESİ ")
print(" 2- KİTAP EKLE ")
print(" 3- KİTAP ARA ")
print(" 4- KİTAP SİL ")
print(" 5- ÜYEYE KİTAP VER ")
print(" 6- ANA MENÜYE DÖN ")
print(100 * " ")
print(100 * " ")
print(100 * "_")


def uyemenu():
print(100 * "_")
print(43*"_" + "ÜYELER MENÜSÜ" + 44*"_")
print(100 * " ")
print(100 * " ")
print(" 1- ÜYE LİSTESİ ")
print(" 2- ÜYE EKLE ")
print(" 3- ÜYE ARA ")
print(" 4- ÜYE GÜNCELLE ")
print(" 5- ÜYE SİL ")
print(" 6- ÜYEYE KİTAP VER ")
print(" 7- KİTAP İADE ")
print(" 8- KİTAP TAKİBİ ")
print(" 9- ANA MENÜYE DÖN ")
print(100 * " ")
print(100 * " ")
print(100 * "_")
65 changes: 65 additions & 0 deletions Ersin/takip.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import pandas as pd

# Kitap ödünç verme işlemi
def kitap_ver():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_books = pd.read_excel(file_path, sheet_name="Books")
df_members = pd.read_excel(file_path, sheet_name="Members")
df_tracking = pd.read_excel(file_path, sheet_name="Tracking")

uye_id = input("Kitap vereceğiniz üyenin id'sini giriniz: ")
kitap_barkod = input("Vermek istediğiniz kitabın barkodunu giriniz: ")

uye = df_members[df_members['id'] == int(uye_id)]
kitap = df_books[df_books['Barkod'] == int(kitap_barkod)]

if uye.empty or kitap.empty:
print("Geçerli üye veya kitap bulunamadı.")
return

yeni_kayit = pd.DataFrame({
"id": [len(df_tracking) + 1],
"Uye Numarasi": [uye_id],
"Uye Adi": [uye.iloc[0]['Uye adi']],
"Tel": [uye.iloc[0]['Telefon']],
"Adres": [uye.iloc[0]['Adres']],
"Barkod": [kitap_barkod],
"Dil": [kitap.iloc[0]['Dil']],
"Fiyat": [kitap.iloc[0]['Fiyat']],
"Kitap_Adi": [kitap.iloc[0]['Kitap_Adi']],
"Yayinevi": [kitap.iloc[0]['Yayinevi']],
"Yazar": [kitap.iloc[0]['Yazar']],
"Kayit tarihi": pd.Timestamp.now().strftime('%d-%m-%Y'),
"Kitap iade tarihi": [input("Kitap iade tarihini giriniz (GG-AA-YYYY): ")],
"Iade durumu": [False]
})

df_tracking = pd.concat([df_tracking, yeni_kayit], ignore_index=True)
df_tracking.to_excel(file_path, sheet_name="Tracking", index=False)
print("Kitap başarıyla ödünç verildi.")

# Kitap iade işlemi
def kitap_iade():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_tracking = pd.read_excel(file_path, sheet_name="Tracking")
takip_id = input("İade edilecek kaydın id'sini giriniz: ")

takip = df_tracking[df_tracking['id'] == int(takip_id)]
if not takip.empty:
df_tracking.loc[df_tracking['id'] == int(takip_id), 'Iade durumu'] = True
df_tracking.to_excel(file_path, sheet_name="Tracking", index=False)
print("Kitap başarıyla iade edildi.")
else:
print("Geçerli kayıt bulunamadı.")

# Kitap takibi
def uye_kitap_takibi():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_tracking = pd.read_excel(file_path, sheet_name="Tracking")
uye_id = input("Takibini görmek istediğiniz üyenin id'sini giriniz: ")

takip = df_tracking[df_tracking['Uye Numarasi'] == str(uye_id)]
if not takip.empty:
print(takip)
else:
print("Bu üye için kayıtlı bir takip bulunamadı.")
63 changes: 63 additions & 0 deletions Ersin/uye_islem.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import pandas as pd

# Üye listeleme fonksiyonu
def uye_listele():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_members = pd.read_excel(file_path, sheet_name="Members")
print("Kütüphanedeki üyeler:")
print(df_members)

# Üye ekleme fonksiyonu
def uye_ekle():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_members = pd.read_excel(file_path, sheet_name="Members")

# Yeni üye bilgilerini al
yeni_uye = pd.DataFrame({
"id": [len(df_members) + 1],
"Uye adi": [input("Üyenin adını giriniz: ")],
"Telefon": [input("Üyenin telefon numarasını giriniz: ")],
"Adres": [input("Üyenin adresini giriniz: ")]
})

# DataFrame'e yeni üye ekle (pd.concat() ile)
df_members = pd.concat([df_members, yeni_uye], ignore_index=True)

# Excel dosyasına yaz
df_members.to_excel(file_path, sheet_name="Members", index=False)
print("Üye başarıyla eklendi.")

# Üye arama fonksiyonu
def uye_arama():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_members = pd.read_excel(file_path, sheet_name="Members")
uye_adi = input("Aradığınız üyenin adını giriniz: ")
sonuc = df_members[df_members['Uye adi'].str.contains(uye_adi, case=False, na=False)]
if not sonuc.empty:
print(sonuc)
else:
print("Üye bulunamadı.")

# Üye güncelleme fonksiyonu
def uye_guncelle():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_members = pd.read_excel(file_path, sheet_name="Members")
uye_id = input("Güncellemek istediğiniz üyenin id'sini giriniz: ")
uye = df_members[df_members['id'] == int(uye_id)]
if not uye.empty:
df_members.loc[df_members['id'] == int(uye_id), 'Uye adi'] = input("Yeni ad giriniz: ")
df_members.loc[df_members['id'] == int(uye_id), 'Telefon'] = input("Yeni telefon giriniz: ")
df_members.loc[df_members['id'] == int(uye_id), 'Adres'] = input("Yeni adres giriniz: ")
df_members.to_excel(file_path, sheet_name="Members", index=False)
print("Üye bilgileri güncellendi.")
else:
print("Üye bulunamadı.")

# Üye silme fonksiyonu
def uye_sil():
file_path = r"c:/Git/Python_Modul_Week_2/Python_Modul_Week_2/pract-2/Python_Modul_Week_4/Ersin/library_database.xlsx"
df_members = pd.read_excel(file_path, sheet_name="Members")
uye_id = input("Silmek istediğiniz üyenin id'sini giriniz: ")
df_members = df_members[df_members['id'] != int(uye_id)]
df_members.to_excel(file_path, sheet_name="Members", index=False)
print(f"{uye_id} numaralı üye silindi.")
Loading