Last active
April 6, 2025 13:15
-
-
Save thinkphp/72a011b1679d146d75e798d06505530b to your computer and use it in GitHub Desktop.
Agg Carte - Biblioteca
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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