Implementacija klasa Knjižnica
unknown
python
9 months ago
2.3 kB
11
Indexable
class Knjiga:
def __init__(self, naziv, autor, godinaIzdanja):
self.naziv = naziv
self.autor = autor
self.godinaIzdanja = godinaIzdanja
self.dostupna = True
def traziKnjigu(self):
return self.dostupna
def rezervirajKnjigu(self):
if self.dostupna:
self.dostupna = False
return True
return False
def vratiKnjigu(self):
self.dostupna = True
class Clan:
def __init__(self, sifraClana, ime):
self.sifraClana = sifraClana
self.ime = ime
self.rokPosudbe = None
self.clanarinaVrijedi = True
def produziClanarinu(self):
self.clanarinaVrijedi = True
return "Članarina produžena."
class Knjiznicar:
def __init__(self, ime, knjiznica):
self.ime = ime
self.knjiznica = knjiznica
def traziKnjigu(self, naziv):
for knjiga in self.knjiznica.knjige:
if knjiga.naziv == naziv and knjiga.dostupna:
return knjiga
return None
def rezervirajKnjigu(self, knjiga, clan):
if knjiga.rezervirajKnjigu():
clan.rokPosudbe = "30 dana"
return f"Knjiga '{knjiga.naziv}' posuđena članu {clan.ime}."
return "Knjiga nije dostupna."
def vratiKnjigu(self, knjiga):
knjiga.vratiKnjigu()
return f"Knjiga '{knjiga.naziv}' vraćena."
class Knjiznica:
def __init__(self):
self.knjige = []
self.clanovi = []
def dodajKnjigu(self, knjiga):
self.knjige.append(knjiga)
def dodajClana(self, clan):
self.clanovi.append(clan)
# Primjer korištenja
knjiznica = Knjiznica()
knjiga1 = Knjiga("Zločin i kazna", "Fjodor Dostojevski", 1866)
knjiga2 = Knjiga("Ana Karenjina", "Lav Tolstoj", 1877)
knjiznica.dodajKnjigu(knjiga1)
knjiznica.dodajKnjigu(knjiga2)
clan1 = Clan("001", "Ivan Horvat")
knjiznica.dodajClana(clan1)
knjiznicar = Knjiznicar("Marko Marković", knjiznica)
# Traženje i posudba knjige
knjiga = knjiznicar.traziKnjigu("Zločin i kazna")
if knjiga:
print(knjiznicar.rezervirajKnjigu(knjiga, clan1))
else:
print("Knjiga nije dostupna.")Editor is loading...
Leave a Comment