Assalomu alaykum, yosh dasturchilar! ๐
Bugun biz OOP bilimlarimizni amalda sinab, kutubxona tizimi yaratamiz
Bizning kutubxona tizimi quyidagi funksionallikka ega bo'ladi:
๐ก Loyiha tuzilmasi:
main.py โ asosiy dastur, unda sinflar va loyiha logikasi bo'ladi
Birinchi qismda Kitob sinfini yaratamiz:
class Kitob:
def __init__(self, nomi, muallif):
self.nomi = nomi
self.muallif = muallif
self.olingan = False
def kitob_malumot(self):
return f"Kitob: {self.nomi}, Muallif: {self.muallif}"
def kitob_olish(self):
if not self.olingan:
self.olingan = True
return f"'{self.nomi}' kitobi olindi"
else:
return f"'{self.nomi}' kitobi allaqachon olingan"
def kitob_qaytarish(self):
if self.olingan:
self.olingan = False
return f"'{self.nomi}' kitobi qaytarildi"
else:
return f"'{self.nomi}' kitobi olinmagan"
# Test qilish
kitob1 = Kitob("Alpomish", "Xalq ertagi")
kitob2 = Kitob("O'tgan kunlar", "Abdulla Qodiriy")
print(kitob1.kitob_malumot())
print(kitob1.kitob_olish())
print(kitob1.kitob_qaytarish())
Endi Kutubxona sinfini yaratamiz:
class Kutubxona:
def __init__(self, nomi):
self.nomi = nomi
self.kitoblar = []
def kitob_qoshish(self, kitob):
self.kitoblar.append(kitob)
return f"'{kitob.nomi}' kitobi qo'shildi"
def kitob_olish(self, kitob_nomi):
for kitob in self.kitoblar:
if kitob.nomi == kitob_nomi:
return kitob.kitob_olish()
return f"'{kitob_nomi}' kitobi topilmadi"
def kitob_qaytarish(self, kitob_nomi):
for kitob in self.kitoblar:
if kitob.nomi == kitob_nomi:
return kitob.kitob_qaytarish()
return f"'{kitob_nomi}' kitobi topilmadi"
def kitoblar_royxati(self):
if not self.kitoblar:
return "Kutubxonada kitob yo'q"
royxat = f"=== {self.nomi} kutubxonasi ===\n"
for i, kitob in enumerate(self.kitoblar, 1):
holat = "Olingan" if kitob.olingan else "Mavjud"
royxat += f"{i}. {kitob.nomi} - {kitob.muallif} ({holat})\n"
return royxat
# Kutubxona yaratish
kutubxona = Kutubxona("Alisher Navoiy")
# Kitoblar yaratish
kitob1 = Kitob("Alpomish", "Xalq ertagi")
kitob2 = Kitob("O'tgan kunlar", "Abdulla Qodiriy")
kitob3 = Kitob("Python", "Ali")
# Kitoblarni kutubxonaga qo'shish
print(kutubxona.kitob_qoshish(kitob1))
print(kutubxona.kitob_qoshish(kitob2))
print(kutubxona.kitob_qoshish(kitob3))
# Kitoblar ro'yxatini ko'rsatish
print(kutubxona.kitoblar_royxati())
# Kitob olish
print(kutubxona.kitob_olish("Alpomish"))
print(kutubxona.kitob_olish("Python"))
# Yangi ro'yxat
print(kutubxona.kitoblar_royxati())
Vazifa: Do'kon tizimi yarating
Mahsulot sinfi - nomi, narxi, soniDokon sinfi - mahsulotlar ro'yxatini boshqaradiVaqt: 10 daqiqa โฐ
Vazifa: Talabalar tizimi yarating
Talaba sinfi - ismi, kursi, bahosiUniversitet sinfi - talabalar ro'yxatini boshqaradiVaqt: 10 daqiqa โฐ
Vazifa: Avtosalond tizimi yarating
Mashina sinfi - modeli, rangi, narxi, sotilganAvtosalond sinfi - mashinalar ro'yxatini boshqaradiVaqt: 10 daqiqa โฐ
Bemor sinfi - ismi, yoshi, kasalligiShifoxona sinfi - bemorlar ro'yxatini boshqaradiOquvchi sinfi - ismi, sinfi, bahosiMaktab sinfi - o'quvchilar ro'yxatini boshqaradiXona sinfi - raqami, turi, bandMehmonxona sinfi - xonalar ro'yxatini boshqaradiKitob ma'lumotlarini saqlash
Kitoblar ro'yxatini boshqarish
Qo'shish, olish, qaytarish
To'liq ishlaydigan tizim
Keyingi dars: Inheritance (Meros) mavzusini o'rganamiz
Savollaringiz bo'lsa, yozib qoldiring! ๐
๐ก Muhim eslatma:
OOP yordamida katta loyihalarni tartibli va tushunarli qilish mumkin. Har bir sinf o'z vazifasini bajarishi kerak!