Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Last active April 6, 2025 13:15
Show Gist options
  • Save thinkphp/72a011b1679d146d75e798d06505530b to your computer and use it in GitHub Desktop.
Save thinkphp/72a011b1679d146d75e798d06505530b to your computer and use it in GitHub Desktop.
Agg Carte - Biblioteca
class Carte:
def __init__(self, titlu, autor, an_publicare, ISBN):
self.titlu = titlu
self.autor = autor
self.an_publicare = an_publicare
self.isbn = ISBN
self.este_imprumutata = False
def imprumuta(self):
if not self.este_imprumutata:
self.este_imprumutata = True
return f"Cartea '{self.titlu}' a fost imprumutata cu success"
return "Cartea '{self.titlu}' este deja imprumutata"
def returneaza(self):
if self.este_imprumutata:
self.este_imprumutata = False
return f"Cartea 'self.titlue' a fost returnata"
return f"Cartea 'self.titlu' nu este imprumutata"
def detalii(self):
status = "Imprumutata" if self.este_imprumutata else "Disponibila"
return f"'{self.titlu}' de {self.autor} {self.an_publicare}, ISBN: {self.isbn}"
class Biblioteca:
def __init__(self, nume, adresa):
self.nume = nume
self.adresa = adresa
# o lista care contine referinte catre obiecte de tip Carte
self.colectie = []
def adauga_carte(self, carte):
self.colectie.append(carte)
return f"Cartea '{carte.titlu}' a fost adaugata in colectia bibliotecii {self.nume}"
def elimina_carte(self, isbn):
for carte in self.colectie:
if carte.isbn == isbn:
self.colectie.remove(carte)
return f"Cartea '{carte.titlu}' a fost eliminata din colectie cu success"
return f"Nu s-a gasit nicio carte cu ISBN-ul {isbn}"
def cauta_dupa_title(self, titlu):
result = [carte for carte in self.colectie if titlu.lower() in carte.titlu.lower()]
return result
def cauta_dupa_isbn(self, isbn):
result = [carte for carte in self.colectie if isbn in carte.isbn]
return result
def afiseaza_colectie(self):
if not self.colectie:
return "Biblioteca nu are carti in colectie"
result = f"Colectia Bibliotecii {self.nume} {len(self.colectie)} carti: \n"
for i, carte in enumerate(self.colectie, 1):
result += f"{i}, {carte.detalii()}\n"
return result
def main3():
carte1 = Carte("Amintiri din Copilarie","Ion Creanga", 1892, "12312312312")
carte2 = Carte("Glossa","Mihai Eminescu", 1902, "1111")
carte3 = Carte("Morometii","Marin Preda", 1932, "129851223")
carte4 = Carte("Fratii Karamazov","FEodor Dostoievski", 1902, "1231451223")
biblioteca_judeteana = Biblioteca("Biblioteca Judeteana","Strada Amurgului, nr 12")
print(biblioteca_judeteana.adauga_carte(carte1))
print(biblioteca_judeteana.adauga_carte(carte2))
print(biblioteca_judeteana.adauga_carte(carte3))
print(biblioteca_judeteana.adauga_carte(carte4))
print(biblioteca_judeteana.afiseaza_colectie())
biblioteca_scolara = Biblioteca("Biblioteca Scolara","Strada Mihai Eminescu, nr 32")
print(biblioteca_scolara.adauga_carte(carte1))
print(biblioteca_scolara.adauga_carte(carte2))
print(biblioteca_scolara.adauga_carte(carte3))
print(biblioteca_scolara.adauga_carte(carte4))
print(biblioteca_scolara.afiseaza_colectie())
print(carte1.detalii())
print(carte1.imprumuta())
for carte in biblioteca_scolara.cauta_dupa_title("Morometii"):
print(f"In Biblioteca scolara: {carte.detalii()}")
for carte in biblioteca_scolara.cauta_dupa_isbn("1111"):
print(f"In Biblioteca scolara: {carte.detalii()}")
main3()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment