Ummumiy loyiha

1 Dastur Ko'rinishi:

Bu dasturda quyidagi asosiy funksiyalar mavjud:

  1. Kitob qo'shish, o'chirish, yangilash.

  2. A'zolar qo'shish, o'chirish va a'zolarni ko'rish.

  3. Kitoblarni a'zolarga berish va qaytarish.

  4. Kutubxona faoliyati haqida hisobotlar yaratish (kitoblarning mavjud ro'yxati va a'zolar ro'yxati).

  5. Fayllar bilan ishlash (kitoblar va a'zolarni fayllarda saqlash va o'qish).

2 Kitob sinfi (Book Class)

Bu sinf har bir kitobni yaratish uchun ishlatiladi va kitoblarning xususiyatlarini belgilaydi. Bu yerda kitobni yaratish, uning miqdorini oshirish yoki kamaytirish va boshqa kitob haqida ma'lumot olish kabi funksiyalar mavjud.

import datetime  # Vaqt va sana bilan ishlash uchun modulni import qilamiz.

class Kitob:
    def __init__(self, nomi, muallifi, isbn, miqdor):
        """
        Konstruktor: Kitob obyektini yaratadi. Kitobning nomi, muallifi, ISBN raqami va miqdorini oladi.
        """
        self.nomi = nomi  # Kitob nomi.
        self.muallifi = muallifi  # Kitob muallifi.
        self.isbn = isbn  # Kitobning ISBN raqami.
        self.miqdor = miqdor  # Kitobning mavjud nusxalari soni.
    
    def kitob_haqida(self):
        """
        Kitobning barcha xususiyatlarini ekranga chiqarish.
        """
        print(f"Kitob nomi: {self.nomi}, Muallifi: {self.muallifi}, ISBN: {self.isbn}, Miqdori: {self.miqdor}")

    def miqdor_oshir(self, miqdor):
        """
        Kitob nusxalarini oshirish.
        """
        self.miqdor += miqdor
        print(f"{miqdor} ta kitob qo'shildi. Jami miqdor: {self.miqdor}")
    
    def miqdor_kamaytir(self, miqdor):
        """
        Kitob nusxalarini kamaytirish.
        """
        if self.miqdor >= miqdor:
            self.miqdor -= miqdor
            print(f"{miqdor} ta kitob olingan. Jami qoldi: {self.miqdor}")
        else:
            print("Kitob yetarli emas!")
    
    def kitob_yangilash(self, yangi_nomi=None, yangi_muallifi=None, yangi_isbn=None):
        """
        Kitob haqida ma'lumotlarni yangilash.
        """
        if yangi_nomi:
            self.nomi = yangi_nomi
        if yangi_muallifi:
            self.muallifi = yangi_muallifi
        if yangi_isbn:
            self.isbn = yangi_isbn
        print(f"Kitob yangilandi: {self.nomi}, {self.muallifi}, {self.isbn}")

Tushuntirish:

  1. __init__() konstruktor metodi kitobning nomi, muallifi, ISBN raqami va miqdorini belgilaydi.

  2. kitob_haqida() metodi kitobning barcha xususiyatlarini ekranga chiqaradi.

  3. miqdor_oshir() metodi kitob nusxalarini oshirish uchun ishlatiladi.

  4. miqdor_kamaytir() metodi kitob nusxalarini kamaytirish uchun ishlatiladi.

  5. kitob_yangilash() metodi kitob haqida ma'lumotlarni yangilaydi (nomi, muallifi, ISBN raqami).

3 A'zo sinfi (Member Class)

A'zolarni yaratish va boshqarish uchun sinf. A'zolar kutubxonadan kitob olishadi va ularning qaysi kitobni olganini ko'rish mumkin bo'ladi.

class Azo:
    def __init__(self, ism, id, email):
        """
        Konstruktor: A'zo obyektini yaratadi. A'zoning ismi, ID raqami va email manzilini oladi.
        """
        self.ism = ism  # A'zo ismi.
        self.id = id  # A'zo ID si.
        self.email = email  # A'zo email manzili.
        self.olingan_kitoblar = []  # A'zoning olgan kitoblari.

    def a'zolik_haqida(self):
        """
        A'zoning umumiy ma'lumotlarini ekranga chiqarish.
        """
        print(f"A'zo: {self.ism}, ID: {self.id}, Email: {self.email}")
    
    def kitob_ol(self, kitob):
        """
        A'zoga kitob olish imkonini beradi va kitobni olingan kitoblar ro'yxatiga qo'shadi.
        """
        self.olingan_kitoblar.append(kitob)
        print(f"{self.ism} kitob oldi: {kitob.nomi}")
    
    def olingan_kitoblar_royxati(self):
        """
        A'zoning olgan kitoblari ro'yxatini ko'rsatish.
        """
        if self.olingan_kitoblar:
            print(f"{self.ism}ning olingan kitoblari:")
            for kitob in self.olingan_kitoblar:
                kitob.kitob_haqida()
        else:
            print(f"{self.ism} hali hech qanday kitob olmagan.")
    
    def kitob_qaytarish(self, kitob):
        """
        A'zoning kitobni qaytarishi.
        """
        if kitob in self.olingan_kitoblar:
            self.olingan_kitoblar.remove(kitob)
            print(f"{self.ism} {kitob.nomi} kitobini qaytardi.")
        else:
            print(f"{self.ism} bu kitobni olmagan.")

Tushuntirish:

  1. __init__() konstruktor metodi a'zo ma'lumotlarini (ism, ID, email) o'rnatadi.

  2. a'zolik_haqida() metodi a'zoning umumiy ma'lumotlarini ekranga chiqaradi.

  3. kitob_ol() metodi a'zoga kitob olish imkonini beradi va olingan kitobni a'zoning ro'yxatiga qo'shadi.

  4. olingan_kitoblar_royxati() metodi a'zoning olgan kitoblari ro'yxatini ko'rsatadi.

  5. kitob_qaytarish() metodi a'zoning kitobni qaytarishini boshqaradi.

4 Kutubxona sinfi (Library Class)

Bu sinf kutubxonani boshqaradi, ya'ni kitoblarni qo'shish, a'zolarni qo'shish va ularning o'zaro munosabatlarini tashkil qilish.

class Kutubxona:
    def __init__(self):
        """
        Konstruktor: Kutubxona obyektini yaratadi va kitoblar va a'zolar ro'yxatini hosil qiladi.
        """
        self.kitoblar = []  # Kutubxonadagi kitoblar ro'yxati.
        self.azolar = []  # Kutubxonadagi a'zolar ro'yxati.

    def kitob_qosh(self, kitob):
        """
        Kutubxonaga kitob qo'shish.
        """
        self.kitoblar.append(kitob)
        print(f"Kitob qo'shildi: {kitob.nomi}")
    
    def azo_qosh(self, azo):
        """
        Kutubxonaga a'zo qo'shish.
        """
        self.azolar.append(azo)
        print(f"A'zo qo'shildi: {azo.ism}")
    
    def kitob_ber(self, azo_id, isbn):
        """
        A'zoga kitob berish.
        """
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)
        
        if azo and kitob:
            if kitob.miqdor > 0:
                azo.kitob_ol(kitob)
                kitob.miqdor_kamaytir(1)
            else:
                print("Kitob yetarli emas.")
        else:
            print("A'zo yoki kitob topilmadi.")
    
    def kitob_qaytarish(self, azo_id, isbn):
        """
        A'zodan kitobni qaytarib olish.
        """
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)

        if azo and kitob:
            azo.kitob_qaytarish(kitob)
            kitob.miqdor_oshir(1)
        else:
            print("A'zo yoki kitob topilmadi.")
    
    def kitob_royxati(self):
        """
        Kutubxonadagi kitoblar ro'yxatini ko'rsatish.
        """
        if self.kitoblar:
            print("Kutubxonadagi kitoblar:")
            for kitob in self.kitoblar:
                kitob.kitob_haqida()
        else:
            print("Hozircha kitoblar mavjud emas.")
    
    def azo_royxati(self):
        """
        Kutubxonadagi a'zolar ro'yxatini ko'rsatish.
        """
        if self.azolar:
            print("Kutubxona a'zolari:")
            for azo in self.azolar:
                azo.azolik_haqida()
        else:
            print("Hozircha a'zolar mavjud emas.")
    
    def kitob_ochirish(self, isbn):
        """
        Kutubxonadan kitobni o'chirish.
        """
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)
        if kitob:
            self.kitoblar.remove(kitob)
            print(f"Kitob o'chirildi: {kitob.nomi}")
        else:
            print("Kitob topilmadi.")
    
    def azo_ochirish(self, azo_id):
        """
        Kutubxonadan a'zoni o'chirish.
        """
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        if azo:
            self.azolar.remove(azo)
            print(f"A'zo o'chirildi: {azo.ism}")
        else:
            print("A'zo topilmadi.")

Tushuntirish:

  1. kitob_qosh() metodi kutubxonaga yangi kitob qo'shish uchun ishlatiladi.

  2. azo_qosh() metodi yangi a'zoni kutubxonaga qo'shadi.

  3. kitob_ber() metodi a'zoga kitob berish uchun ishlatiladi.

  4. kitob_qaytarish() metodi a'zodan kitobni qaytarib olish uchun ishlatiladi.

  5. kitob_royxati() metodi kutubxonadagi kitoblar ro'yxatini ko'rsatadi.

  6. azo_royxati() metodi kutubxonadagi a'zolar ro'yxatini ko'rsatadi.

  7. kitob_ochirish() metodi kutubxonadan kitobni o'chirish uchun ishlatiladi.

  8. azo_ochirish() metodi a'zoni o'chirish uchun ishlatiladi.

5 Fayllar bilan ishlash

Dastur fayllar bilan ishlaydi. Fayllarda kitoblar va a'zolar haqidagi ma'lumotlar saqlanadi va keyinchalik o'qiladi.

Kitoblarni faylga saqlash

def kitoblarni_faylga_saqlash(kutubxona):
    with open("kitoblar.txt", "w") as fayl:
        for kitob in kutubxona.kitoblar:
            fayl.write(f"{kitob.nomi},{kitob.muallifi},{kitob.isbn},{kitob.miqdor}\n")
    print("Kitoblar faylga saqlandi.")

Kitoblarni fayldan o'qish

def kitoblarni_fayldan_oqish(kutubxona):
    try:
        with open("kitoblar.txt", "r") as fayl:
            for qator in fayl.readlines():
                nomi, muallifi, isbn, miqdor = qator.strip().split(",")
                yangi_kitob = Kitob(nomi, muallifi, isbn, int(miqdor))
                kutubxona.kitob_qosh(yangi_kitob)
    except FileNotFoundError:
        print("Fayl topilmadi. Kitoblar qo'shilmagan.")
    except Exception as e:
        print(f"Xato yuz berdi: {e}")

A'zolarni faylga saqlash

def azolarni_faylga_saqlash(kutubxona):
    with open("azolar.txt", "w") as fayl:
        for azo in kutubxona.azolar:
            fayl.write(f"{azo.ism},{azo.id},{azo.email}\n")
    print("A'zolar faylga saqlandi.")

A'zolarni fayldan o'qish

def azolarni_fayldan_oqish(kutubxona):
    try:
        with open("azolar.txt", "r") as fayl:
            for qator in fayl.readlines():
                ism, id, email = qator.strip().split(",")
                yangi_azo = Azo(ism, id, email)
                kutubxona.azo_qosh(yangi_azo)
    except FileNotFoundError:
        print("Fayl topilmadi. A'zolar qo'shilmagan.")
    except Exception as e:
        print(f"Xato yuz berdi: {e}")

6 Foydalanuvchi Interfeysi (Menyu)

Foydalanuvchi uchun menyu yaratilgan bo'lib, u orqali kitob qo'shish, kitob olish, kitob qaytarish, a'zo qo'shish va boshqa funksiyalarni boshqarish mumkin.

def menyu():
    kutubxona = Kutubxona()
    kitoblarni_fayldan_oqish(kutubxona)
    azolarni_fayldan_oqish(kutubxona)

    while True:
        print("\n----- Kutubxona Menejment Tizimi -----")
        print("1. Kitob qo'shish")
        print("2. A'zo qo'shish")
        print("3. Kitob olish")
        print("4. Kitob qaytarish")
        print("5. Kitoblar ro'yxati")
        print("6. A'zolar ro'yxati")
        print("7. Kitobni o'chirish")
        print("8. A'zoni o'chirish")
        print("9. Dasturni tugatish")
        
        tanlov = input("Tanlang: ")
        
        if tanlov == "1":
            nomi = input("Kitob nomi: ")
            muallifi = input("Muallifi: ")
            isbn = input("ISBN: ")
            miqdor = int(input("Miqdori: "))
            kitob = Kitob(nomi, muallifi, isbn, miqdor)
            kutubxona.kitob_qosh(kitob)
            kitoblarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "2":
            ism = input("A'zo ismi: ")
            id = input("A'zo ID si: ")
            email = input("Email: ")
            azo = Azo(ism, id, email)
            kutubxona.azo_qosh(azo)
            azolarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "3":
            azo_id = input("A'zoning ID sini kiriting: ")
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_ber(azo_id, isbn)
        
        elif tanlov == "4":
            azo_id = input("A'zoning ID sini kiriting: ")
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_qaytarish(azo_id, isbn)
        
        elif tanlov == "5":
            kutubxona.kitob_royxati()
        
        elif tanlov == "6":
            kutubxona.azo_royxati()
        
        elif tanlov == "7":
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_ochirish(isbn)
            kitoblarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "8":
            azo_id = input("A'zoning ID sini kiriting: ")
            kutubxona.azo_ochirish(azo_id)
            azolarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "9":
            print("Dastur tugatildi.")
            break
        else:
            print("Noto'g'ri tanlov.")

Bu loyiha Python dasturlash tilidagi ko'plab mavzularni qamrab olgan:

  • OOP (Obyektga yo'naltirilgan dasturlash): Sinflar, vorislik, konstruktorlar, metodlar va polimorfizm.

  • Fayllar bilan ishlash: Ma'lumotlarni fayllarga saqlash va o'qish.

  • Istisnolarni boshqarish: Fayl topilmaganida yoki ma'lumot noto'g'ri kiritilganda xatoliklarni boshqarish.

  • Foydalanuvchi interfeysi: Foydalanuvchi bilan o'zaro munosabatda bo'lish uchun menyu tizimi.

To'liq dastur kodi.

import datetime  # Sana va vaqt bilan ishlash uchun import qilinadi.

# Kitob sinfi
class Kitob:
    def __init__(self, nomi, muallifi, isbn, miqdor):
        self.nomi = nomi  # Kitob nomi.
        self.muallifi = muallifi  # Kitob muallifi.
        self.isbn = isbn  # Kitobning ISBN raqami.
        self.miqdor = miqdor  # Kitobning mavjud nusxalari soni.
    
    def kitob_haqida(self):
        """Kitobning barcha xususiyatlarini ekranga chiqarish."""
        print(f"Kitob nomi: {self.nomi}, Muallifi: {self.muallifi}, ISBN: {self.isbn}, Miqdori: {self.miqdor}")

    def miqdor_oshir(self, miqdor):
        """Kitob nusxalarini oshirish."""
        self.miqdor += miqdor
        print(f"{miqdor} ta kitob qo'shildi. Jami miqdor: {self.miqdor}")
    
    def miqdor_kamaytir(self, miqdor):
        """Kitob nusxalarini kamaytirish."""
        if self.miqdor >= miqdor:
            self.miqdor -= miqdor
            print(f"{miqdor} ta kitob olingan. Jami qoldi: {self.miqdor}")
        else:
            print("Kitob yetarli emas!")

    def kitob_yangilash(self, yangi_nomi=None, yangi_muallifi=None, yangi_isbn=None):
        """Kitob haqida ma'lumotlarni yangilash."""
        if yangi_nomi:
            self.nomi = yangi_nomi
        if yangi_muallifi:
            self.muallifi = yangi_muallifi
        if yangi_isbn:
            self.isbn = yangi_isbn
        print(f"Kitob yangilandi: {self.nomi}, {self.muallifi}, {self.isbn}")


# A'zo sinfi
class Azo:
    def __init__(self, ism, id, email):
        self.ism = ism  # A'zo ismi.
        self.id = id  # A'zo ID si.
        self.email = email  # A'zo email manzili.
        self.olingan_kitoblar = []  # A'zoning olgan kitoblari.

    def azolik_haqida(self):
        """A'zoning umumiy ma'lumotlarini ekranga chiqarish."""
        print(f"A'zo: {self.ism}, ID: {self.id}, Email: {self.email}")
    
    def kitob_ol(self, kitob):
        """A'zoga kitob olish imkonini beradi va kitobni olingan kitoblar ro'yxatiga qo'shadi."""
        self.olingan_kitoblar.append(kitob)
        print(f"{self.ism} kitob oldi: {kitob.nomi}")
    
    def olingan_kitoblar_royxati(self):
        """A'zoning olgan kitoblari ro'yxatini ko'rsatish."""
        if self.olingan_kitoblar:
            print(f"{self.ism}ning olingan kitoblari:")
            for kitob in self.olingan_kitoblar:
                kitob.kitob_haqida()
        else:
            print(f"{self.ism} hali hech qanday kitob olmagan.")
    
    def kitob_qaytarish(self, kitob):
        """A'zoning kitobni qaytarishi."""
        if kitob in self.olingan_kitoblar:
            self.olingan_kitoblar.remove(kitob)
            print(f"{self.ism} {kitob.nomi} kitobini qaytardi.")
        else:
            print(f"{self.ism} bu kitobni olmagan.")


# Kutubxona sinfi
class Kutubxona:
    def __init__(self):
        """Kutubxona obyektini yaratadi va kitoblar va a'zolar ro'yxatini hosil qiladi."""
        self.kitoblar = []  # Kutubxonadagi kitoblar ro'yxati.
        self.azolar = []  # Kutubxonadagi a'zolar ro'yxati.

    def kitob_qosh(self, kitob):
        """Kutubxonaga kitob qo'shish."""
        self.kitoblar.append(kitob)
        print(f"Kitob qo'shildi: {kitob.nomi}")
    
    def azo_qosh(self, azo):
        """Kutubxonaga a'zo qo'shish."""
        self.azolar.append(azo)
        print(f"A'zo qo'shildi: {azo.ism}")
    
    def kitob_ber(self, azo_id, isbn):
        """A'zoga kitob berish."""
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)
        
        if azo and kitob:
            if kitob.miqdor > 0:
                azo.kitob_ol(kitob)
                kitob.miqdor_kamaytir(1)
            else:
                print("Kitob yetarli emas.")
        else:
            print("A'zo yoki kitob topilmadi.")
    
    def kitob_qaytarish(self, azo_id, isbn):
        """A'zodan kitobni qaytarib olish."""
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)

        if azo and kitob:
            azo.kitob_qaytarish(kitob)
            kitob.miqdor_oshir(1)
        else:
            print("A'zo yoki kitob topilmadi.")
    
    def kitob_royxati(self):
        """Kutubxonadagi kitoblar ro'yxatini ko'rsatish."""
        if self.kitoblar:
            print("Kutubxonadagi kitoblar:")
            for kitob in self.kitoblar:
                kitob.kitob_haqida()
        else:
            print("Hozircha kitoblar mavjud emas.")
    
    def azo_royxati(self):
        """Kutubxonadagi a'zolar ro'yxatini ko'rsatish."""
        if self.azolar:
            print("Kutubxona a'zolari:")
            for azo in self.azolar:
                azo.azolik_haqida()
        else:
            print("Hozircha a'zolar mavjud emas.")
    
    def kitob_ochirish(self, isbn):
        """Kutubxonadan kitobni o'chirish."""
        kitob = next((k for k in self.kitoblar if k.isbn == isbn), None)
        if kitob:
            self.kitoblar.remove(kitob)
            print(f"Kitob o'chirildi: {kitob.nomi}")
        else:
            print("Kitob topilmadi.")
    
    def azo_ochirish(self, azo_id):
        """Kutubxonadan a'zoni o'chirish."""
        azo = next((a for a in self.azolar if a.id == azo_id), None)
        if azo:
            self.azolar.remove(azo)
            print(f"A'zo o'chirildi: {azo.ism}")
        else:
            print("A'zo topilmadi.")


# Fayllar bilan ishlash
def kitoblarni_faylga_saqlash(kutubxona):
    """Kitoblarni faylga saqlash."""
    with open("kitoblar.txt", "w") as fayl:
        for kitob in kutubxona.kitoblar:
            fayl.write(f"{kitob.nomi},{kitob.muallifi},{kitob.isbn},{kitob.miqdor}\n")
    print("Kitoblar faylga saqlandi.")


def kitoblarni_fayldan_oqish(kutubxona):
    """Kitoblarni fayldan o'qish."""
    try:
        with open("kitoblar.txt", "r") as fayl:
            for qator in fayl.readlines():
                nomi, muallifi, isbn, miqdor = qator.strip().split(",")
                yangi_kitob = Kitob(nomi, muallifi, isbn, int(miqdor))
                kutubxona.kitob_qosh(yangi_kitob)
    except FileNotFoundError:
        print("Fayl topilmadi. Kitoblar qo'shilmagan.")
    except Exception as e:
        print(f"Xato yuz berdi: {e}")


def azolarni_faylga_saqlash(kutubxona):
    """A'zolarni faylga saqlash."""
    with open("azolar.txt", "w") as fayl:
        for azo in kutubxona.azolar:
            fayl.write(f"{azo.ism},{azo.id},{azo.email}\n")
    print("A'zolar faylga saqlandi.")


def azolarni_fayldan_oqish(kutubxona):
    """A'zolarni fayldan o'qish."""
    try:
        with open("azolar.txt", "r") as fayl:
            for qator in fayl.readlines():
                ism, id, email = qator.strip().split(",")
                yangi_azo = Azo(ism, id, email)
                kutubxona.azo_qosh(yangi_azo)
    except FileNotFoundError:
        print("Fayl topilmadi. A'zolar qo'shilmagan.")
    except Exception as e:
        print(f"Xato yuz berdi: {e}")


# Foydalanuvchi interfeysi (Menyu)
def menyu():
    """Foydalanuvchi uchun menyu."""
    kutubxona = Kutubxona()
    kitoblarni_fayldan_oqish(kutubxona)
    azolarni_fayldan_oqish(kutubxona)

    while True:
        print("\n----- Kutubxona Menejment Tizimi -----")
        print("1. Kitob qo'shish")
        print("2. A'zo qo'shish")
        print("3. Kitob olish")
        print("4. Kitob qaytarish")
        print("5. Kitoblar ro'yxati")
        print("6. A'zolar ro'yxati")
        print("7. Kitobni o'chirish")
        print("8. A'zoni o'chirish")
        print("9. Dasturni tugatish")
        
        tanlov = input("Tanlang: ")
        
        if tanlov == "1":
            nomi = input("Kitob nomi: ")
            muallifi = input("Muallifi: ")
            isbn = input("ISBN: ")
            miqdor = int(input("Miqdori: "))
            kitob = Kitob(nomi, muallifi, isbn, miqdor)
            kutubxona.kitob_qosh(kitob)
            kitoblarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "2":
            ism = input("A'zo ismi: ")
            id = input("A'zo ID si: ")
            email = input("Email: ")
            azo = Azo(ism, id, email)
            kutubxona.azo_qosh(azo)
            azolarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "3":
            azo_id = input("A'zoning ID sini kiriting: ")
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_ber(azo_id, isbn)
        
        elif tanlov == "4":
            azo_id = input("A'zoning ID sini kiriting: ")
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_qaytarish(azo_id, isbn)
        
        elif tanlov == "5":
            kutubxona.kitob_royxati()
        
        elif tanlov == "6":
            kutubxona.azo_royxati()
        
        elif tanlov == "7":
            isbn = input("Kitobning ISBN raqamini kiriting: ")
            kutubxona.kitob_ochirish(isbn)
            kitoblarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "8":
            azo_id = input("A'zoning ID sini kiriting: ")
            kutubxona.azo_ochirish(azo_id)
            azolarni_faylga_saqlash(kutubxona)
        
        elif tanlov == "9":
            print("Dastur tugatildi.")
            break
        else:
            print("Noto'g'ri tanlov.")

if __name__ == "__main__":
    menyu()

Dastur qanday ishlaydi:

  1. Kitob sinfi: Kutubxonadagi kitoblar haqida ma'lumotlarni boshqaradi. Kitob qo'shish, nusxalar sonini oshirish, kitob haqida ma'lumot olish kabi funksiyalar mavjud.

  2. Azo sinfi: Kutubxonadagi a'zolarni boshqaradi. A'zolar kitob olishi va qaytarishi mumkin.

  3. Kutubxona sinfi: Barcha kutubxona amallarini boshqaradi. Kitob qo'shish, kitob berish, a'zo qo'shish va ro'yxatlarni boshqarish kabi funksiyalarni amalga oshiradi.

  4. Fayllar bilan ishlash: Kitoblar va a'zolar haqidagi ma'lumotlar fayllarda saqlanadi va keyinchalik dastur qayta ishga tushganda o'qiladi.

  5. Menyu interfeysi: Foydalanuvchi menyu orqali kutubxona operatsiyalarini bajaradi.

Dasturni ishlashi qanday buladi ?

Videoda to'liq ko'rsatilgan.

Xulosa:

Ushbu dastur Python dasturlash tilining asosiy tushunchalarini o'z ichiga olgan keng qamrovli loyiha hisoblanadi. U kutubxonadagi kitoblar va a'zolarni boshqarishga imkon beradi. Fayllar bilan ishlash, obyektga yo'naltirilgan dasturlash (OOP) va foydalanuvchi interfeysi kabi funksiyalar to'liq amalga oshirilgan.

Last updated