Implementacija klasa Knjižnica

 avatar
unknown
python
2 months ago
2.3 kB
10
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