From 9f5f0b838debaf8969d1f06c84678269eaf48565 Mon Sep 17 00:00:00 2001 From: Mirac Orhan Date: Sun, 5 Jan 2025 21:43:02 +0100 Subject: [PATCH 1/5] added menu in main.py --- BookGivingTransactions.py | 0 BookTransactions.py | 0 MemberTransactions.py | 0 .../BookGivingTransactions.cpython-313.pyc | Bin 0 -> 203 bytes __pycache__/BookTransactions.cpython-313.pyc | Bin 0 -> 197 bytes .../MemberTransactions.cpython-313.pyc | Bin 0 -> 199 bytes main.py | 83 ++++++++++++++++++ 7 files changed, 83 insertions(+) create mode 100644 BookGivingTransactions.py create mode 100644 BookTransactions.py create mode 100644 MemberTransactions.py create mode 100644 __pycache__/BookGivingTransactions.cpython-313.pyc create mode 100644 __pycache__/BookTransactions.cpython-313.pyc create mode 100644 __pycache__/MemberTransactions.cpython-313.pyc create mode 100644 main.py diff --git a/BookGivingTransactions.py b/BookGivingTransactions.py new file mode 100644 index 0000000..e69de29 diff --git a/BookTransactions.py b/BookTransactions.py new file mode 100644 index 0000000..e69de29 diff --git a/MemberTransactions.py b/MemberTransactions.py new file mode 100644 index 0000000..e69de29 diff --git a/__pycache__/BookGivingTransactions.cpython-313.pyc b/__pycache__/BookGivingTransactions.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..199ac34d947eda74510e2e28c5e0baad0dd72b13 GIT binary patch literal 203 zcmey&%ge<81WfO$(n0iN5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa|KrvQTMDeP+5|ZpBL|& zpHi9=AD)_;9d8mJlA4%n7~_{%)A(v{PMh<{KS;vm@vgjEsy$%s>_ZLYp-o literal 0 HcmV?d00001 diff --git a/__pycache__/MemberTransactions.cpython-313.pyc b/__pycache__/MemberTransactions.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00343282305c3212a254874bec197179c3b273a1 GIT binary patch literal 199 zcmey&%ge<81mE6PrGx0lAOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkqZTWUH9a;?$zz z7{`>{%)A(v{PMh<{KS;vm@vX{ucjE6`ey Rvx-5CkIamWj77{q768emHU0nq literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..d3b110e --- /dev/null +++ b/main.py @@ -0,0 +1,83 @@ +import BookTransactions +import MemberTransactions +import BookGivingTransactions +import json + +def main_menu(): + try: #try except CALISINIZ + while True: + print("-" * 50) + print(" " * 10 + "HALK KUTUPHANEMIZE HOS GELDINIZ" + " " * 10) + print("-" * 50) + print("-" * 5 + "1-UYELIK ISLEMLERI" + " " * 10 + "1" + " " * 5) + print("-" * 5 + "2-KITAP ISLEMLERI" + " " * 11 + "2" + " " * 5 ) + print("-" * 5 + "3-CIKIS" + " " * 21 + "0" + " " * 5 ) + print("-" * 50) + secim = input("Lutfen yapmak istediginiz secimin kodunu girin: ") + if secim == '1': + member_menu() + elif secim == '2': + book_menu() + elif secim == '0': + print("Cikis yapiliyor...") + break + else: + print("Gecersiz secim, lutfen tekrar deneyin.") + except Exception as e: + print(f"Hata olustu: {e}") + +def member_menu(): + while True: + print("-" * 50) + print(" " * 5 + "UYELER" + " " * 10 + "= 1 " + " " * 10 + "KITAP ODUNC VERME" + " " * 10 + "= 5 ") + print(" " * 5 + "UYE EKLEME" + " " * 6 + "= 2 " + " " * 10 + "KITAP IADE" + " " * 17 + "= 6 ") + print(" " * 5 + "UYE ARA" + " " * 9 + "= 3 " + " " * 10 + "KITAP TAKIBI" + " " * 15 + "= 7 ") + print(" " * 5 + "UYE SIL" + " " * 9 + "= 4 " + " " * 10 + "CIKIS" + " " * 22 + "= 0 ") + print("-" * 50) + secim = input("Islem seciniz: ") + + if secim == '0': + break + elif secim == '1': + MemberTransactions.list_members() + elif secim == '2': + MemberTransactions.add_member() + elif secim == '3': + MemberTransactions.search_member() + elif secim == '4': + MemberTransactions.delete_member() + elif secim == '5': + BookGivingTransactions.add_bookgiving() + elif secim == '6': + BookGivingTransactions.return_bookgiving() + elif secim == '7': + BookGivingTransactions.tracking_bookgiving() + else: + print(f"{secim} islemi secildi. (Bu kisimda islemler yapilabilir.)") + +def book_menu(): + while True: + print("-" * 50) + print(" " * 5 + "KITAPLAR" + " " * 12 + "= 1 ") + print(" " * 5 + "KITAP EKLEME" + " " * 8 + "= 2 ") + print(" " * 5 + "KITAP ARA" + " " * 11 + "= 3 ") + print(" " * 5 + "KITAP SIL" + " " * 11 + "= 4 ") + print(" " * 5 + "CIKIS" + " " * 15 + "= 0 ") + print("-" * 50) + secim = input("Islem seciniz: ") + + if secim == '0': + break + elif secim == '1': + BookTransactions.list_books() + elif secim == '2': + BookTransactions.add_book() + elif secim == '3': + BookTransactions.search_book() + elif secim == '4': + BookTransactions.delete_book() + else: + print(f"{secim} islemi secildi. (Bu kisimda islemler yapilabilir.)") + +if __name__ == "__main__": + main_menu() From 0b69532252badb40784bcdf246efb1ab8889de09 Mon Sep 17 00:00:00 2001 From: Emine Dogan Date: Wed, 8 Jan 2025 19:52:40 +0100 Subject: [PATCH 2/5] Update MemberTransactions.py --- MemberTransactions.py | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/MemberTransactions.py b/MemberTransactions.py index e69de29..9542792 100644 --- a/MemberTransactions.py +++ b/MemberTransactions.py @@ -0,0 +1,72 @@ +import json + +FILE_NAME = "user.json" + +def load_members(): + try: + with open(FILE_NAME, "r") as file: + return json.load(file) + except FileNotFoundError: + return {} + except json.JSONDecodeError: + return {} + + +def save_members(members): + with open(FILE_NAME, "w") as file: + json.dump(members, file, indent=4) + +# Üye ekleme +def add_member(): + members = load_members() + member_id = input("Üye ID'sini girin: ") + if member_id in members: + print("Bu ID ile zaten bir üye var.") + return + name = input("Üye adini girin: ") + phone = input("Üye telefonunu girin: ") + address = input("Üye adresini girin: ") + + members[member_id] = { + "adi": name, + "telefon": phone, + "adres": address + } + save_members(members) # Dosyaya kaydet + print(f"{name} kişisi basariyla eklendi. Toplam üye sayisi: {len(members)}") + +def list_members(): + members = load_members() + if not members: + print("Henüz kayıtlı üye yok.") + else: + print(f"\nToplam Üye Sayisi: {len(members)}") + print("\nÜye Listesi:") + for member_id, member in members.items(): + print(f"ID: {member_id}, Adi: {member['adi']}, Telefon: {member['telefon']}, Adres: {member['adres']}") + +def search_member(): + members = load_members() + search_term = input("Aramak istediğiniz üye ID'sini girin: ") + found = False + + for member_id, member in members.items(): + if search_term == member_id: + print("\nBulunan Üye:") + print(f"ID: {member_id}, Adi: {member['adi']}, Telefon: {member['telefon']}, Adres: {member['adres']}") + found = True + break + + if not found: + print("Aranan üye bulunamadı.") + + +def delete_member(): + members = load_members() + member_id = input("Silmek istediğiniz üye ID'sini girin: ") + if member_id in members: + deleted_member = members.pop(member_id) + save_members(members) + print(f"{deleted_member['adi']} kişisi başariyla silindi. Toplam üye sayisi: {len(members)}") + else: + print("Bu ID ile kayitli bir üye bulunamadi.") From 91a4a31927d0d60aff6b42f3a87a354f3cc54cd8 Mon Sep 17 00:00:00 2001 From: Emine Dogan Date: Wed, 8 Jan 2025 19:53:54 +0100 Subject: [PATCH 3/5] Add files via upload --- user.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 user.json diff --git a/user.json b/user.json new file mode 100644 index 0000000..52d6347 --- /dev/null +++ b/user.json @@ -0,0 +1,32 @@ +{ + "1": { + "adi": "EMINE DOGAN", + "telefon": "555-554-5555", + "adres": "Bir mah, bir sok, Malatya , 44000" + }, + "27": { + "adi": "Naim Ucar", + "telefon": "545-345-6786", + "adres": "Baska bir sokak, Baska bir mahalle,AMSTERDAM,35000" + }, + "22": { + "adi": "Burak Gunes", + "telefon": "555-234-5678", + "adres": "Gunes sok, Gunes mah. ,ANKARA,0600" + }, + "3": { + "adi": "Ayse Demir", + "telefon": "555-345-6789", + "adres": "Bir mah, Bir sok, IZMIR,35000" + }, + "34": { + "adi": "Ahmet Dogan", + "telefon": "555-456-7557", + "adres": "Elandstraat mah, Sokak sok, Amsterdam 32000" + }, + "44": { + "adi": "Deniz Nehir", + "telefon": "555-554-5656", + "adres": "Deniz mah.,Nehir Sok, MALATYA,44000" + } +} \ No newline at end of file From a353246f1f1dabef042f6ec6d7f6ef408f60b910 Mon Sep 17 00:00:00 2001 From: Emine Dogan Date: Fri, 10 Jan 2025 09:42:41 +0100 Subject: [PATCH 4/5] Update BookGivingTransactions.py --- BookGivingTransactions.py | 140 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/BookGivingTransactions.py b/BookGivingTransactions.py index e69de29..ad5d909 100644 --- a/BookGivingTransactions.py +++ b/BookGivingTransactions.py @@ -0,0 +1,140 @@ +from datetime import datetime, timedelta +import json + +kontrol_file ="tracking.json" +MEMBERS_FILE = "user.json" +BOOKS_FILE = "kitap.json" + +# Kitapları yükleme +def load_books(): + try: + with open(BOOKS_FILE, "r") as file: + return json.load(file) + except FileNotFoundError: + print("Kitap dosyası bulunamadı.") + return [] + except json.JSONDecodeError: + print("Kitaplar yüklenirken hata oluştu.") + return [] + +# Üyeleri yükleme +def load_members(): + try: + with open(MEMBERS_FILE, "r") as file: + return json.load(file) + except FileNotFoundError: + print("Üye dosyası bulunamadı.") + return {} + except json.JSONDecodeError: + print("Üyeler yüklenirken hata oluştu.") + return {} + +# Kitap ödünç verme +def add_bookgiving(): + members = load_members() + books = load_books() + + if not books: + print("Mevcut kitap yok.") + return + + # Üye bilgilerini alma + member_id = input("Kitap ödünç vermek için üye ID'sini girin: ") + if member_id not in members: + print("Üye bulunamadı.") + return + + # Kitapları listeleyerek seçim yapma kolaylasir. + print("Mevcut Kitaplar:") + for book in books: + print(f"Barkod: {book['Barkod']}, Başlık: {book['Kitap_Adi']}") + + book_barkod = input("Ödünç vermek için kitap barkodunu girin: ") + + # Seçilen kitabın barkodunu doğrula + selected_book = None + for book in books: + if str(book['Barkod']) == book_barkod: + selected_book = book + break + + if not selected_book: + print("Kitap bulunamadı.") + return + + # Kitap ödünç alma işlemi + current_date = datetime.now() + return_date = current_date + timedelta(weeks=2) # 2 hafta sonra teslim tarihi + new_entry = { + "member_id": member_id, + "member_name": members[member_id]["adi"], + "book_barkod": book_barkod, + "book_name": selected_book["Kitap_Adi"], + "lend_date": current_date.strftime('%Y-%m-%d'), + "return_date": return_date.strftime('%Y-%m-%d') + } + + # Mevcut tracking.json dosyasını yükle + try: + with open(kontrol_file, "r") as file: + tracking_data = json.load(file) + # Eğer dosya bir sözlükse, listeye dönüştür + if isinstance(tracking_data, dict): + tracking_data = [tracking_data] + except FileNotFoundError: + tracking_data = [] # Eğer dosya yoksa boş bir liste başlat + except json.JSONDecodeError: + print("Tracking dosyası okunamadı. Yeni dosya oluşturulacak.") + tracking_data = [] + + # Yeni girdiyi ekle + tracking_data.append(new_entry) + + # Dosyayı güncelle + with open(kontrol_file, "w") as file: + json.dump(tracking_data, file, indent=4) + + + print(f"Kitap {members[member_id]['adi']} adlı üyeye ödünç verildi.") + print(f"Kitap, şu tarihe kadar geri verilmelidir: {return_date.strftime('%Y-%m-%d')}") + + +''' + +def return_bookgiving(): + +''' + + +# Ödünç verilen kitapları listeleme +def tracking_bookgiving(): + try: + # Tracking.json dosyasını oku + with open(kontrol_file, "r") as file: + tracking_data = json.load(file) + + # Eğer dosya boşsa bilgi ver + if not tracking_data: + print("Henüz ödünç verilmiş bir kitap bulunmuyor.") + return + + # Üye bilgilerini members dosyasından al + members = load_members() + + # Ödünç verilen kitapları listele + print("Ödünç Verilen Kitaplar:") + for entry in tracking_data: + member_name = members.get(entry['member_id'], {}).get("adi", "Bilinmiyor") # Üye adını members dosyasından al + print( + f"Üye Adı: {member_name}, " + f"Kitap Adı: {entry['book_name']}, " + f"Barkod: {entry['book_barkod']}, " + f"Verilme Tarihi: {entry['lend_date']}, " + f"Teslim Tarihi: {entry['return_date']}" + ) + + except FileNotFoundError: + print("Tracking dosyası bulunamadı.") + except json.JSONDecodeError: + print("Tracking dosyası okunamadı.") + From cc617897466a829256d37d678e5b0eaf98551010 Mon Sep 17 00:00:00 2001 From: Emine Dogan Date: Fri, 10 Jan 2025 09:43:50 +0100 Subject: [PATCH 5/5] Add files via upload --- tracking.json | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tracking.json diff --git a/tracking.json b/tracking.json new file mode 100644 index 0000000..89af93d --- /dev/null +++ b/tracking.json @@ -0,0 +1,34 @@ +[ + { + "member_id": "12", + "member_name": "EMINE DOGAN", + "book_barkod": "9786051981833", + "book_name": "Gece Yar\u00c4\u00b1s\u00c4\u00b1 K\u00c3\u00bct\u00c3\u00bcphanesi", + "lend_date": "2025-01-09", + "return_date": "2025-01-23" + }, + { + "member_id": "27", + "member_name": "Naim Ucar", + "book_barkod": "9789750850417", + "book_name": "Kay\u00c4\u00b1p Tanr\u00c4\u00b1lar \u00c3\u0153lkesi", + "lend_date": "2025-01-09", + "return_date": "2025-01-23" + }, + { + "member_id": "3", + "member_name": "Ayse Demir", + "book_barkod": "9786053607038", + "book_name": "\u00c4\u00b0nsan Neyle Ya\u00c5\u0178ar? - Hasan Ali Y\u00c3\u00bccel Klasikleri", + "lend_date": "2025-01-09", + "return_date": "2025-01-23" + }, + { + "member_id": "44", + "member_name": "Deniz Nehir", + "book_barkod": "34655768", + "book_name": "okumak", + "lend_date": "2025-01-10", + "return_date": "2025-01-24" + } +] \ No newline at end of file