Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- #define N 20
- class Carte
- {
- public:
- string titlu = "";
- Carte(){}
- Carte(string titlu) //constructorul clasei de baza
- {
- this->titlu = titlu;
- }
- void SetTitile(string titlu) { this->titlu = titlu; }
- string ReturnTitle() { return titlu; }
- ~Carte() {}; // destructorul clasei
- void afisare_carte() //functie pentru afisare
- {
- cout << "\nTitlul cartii: " << titlu << endl;
- }
- };
- class Biblioteca :public Carte //clasa derivata
- {
- public:
- string autor;
- unsigned anAp;
- bool rented;
- ~Biblioteca() {
- cout << "\nCartea " << ReturnTitle() << " scrisa de " << autor << " a fost stearsa";
- }
- Biblioteca(){}
- Biblioteca(string titlu, string autor, int anAp) :Carte(titlu)
- {
- this->titlu = titlu;
- this->autor = autor;
- this->anAp = anAp;
- rented = false;
- }
- void SetAutor(string autor) { this->autor = autor; }
- void SetAnAp(unsigned anAp) { this->anAp = anAp; }
- string ReturnAutor() { return autor; }
- void RentBook() {
- if (rented) cout << "\n Cartea a fost deja imprumutata";
- else rented = true;
- }
- void ReturnBook() { rented = false; }
- void afisare()
- {
- afisare_carte(); //titlul din clasa de baza
- cout << "Autor: " << autor << endl;
- cout << "An aparitie: " << anAp << endl;
- if (rented)
- cout << "Cartea a fost imprumutata!\n";
- else
- cout << "Cartea se afla in bibloteca\n";
- }
- };
- int SearchBook( Biblioteca *biblio, string titlu, string autor, unsigned n) {
- for (unsigned i = 0; i < n; i++)
- if (biblio[i].ReturnTitle() == titlu && biblio[i].ReturnAutor() == autor)
- return i;
- return n;
- }
- int main()
- {
- unsigned n = 0, i, opt;
- string titlu, numeA;
- Biblioteca biblo[N];
- do {
- cout << "\n0.Iesire";
- cout << "\n1.Adaugare care in bibloteca";
- cout << "\n2.Afisare carti din bibloteca";
- cout << "\n3.Imprumutare carte: ";
- cout << "\n4.Inapoiare carte";
- cout << "\n5. Stergere Carte";
- cout << "\n6.Cautare carte";
- cout << "\nOptiunea aleasa: "; cin >> opt;
- system("cls");
- switch (opt)
- {
- case 0:return 0; break;
- case 1:
- if (n < N) {
- cout << "\nTitlu carte: "; cin >> titlu;
- biblo[n].SetTitile(titlu);
- cout << "Autor carte: "; cin >> numeA;
- biblo[n].SetAutor(numeA);
- cout << "An aparitie: "; cin >> opt; //folosim opt pe post de auxiliar
- biblo[n].SetAnAp(opt);
- biblo[n].ReturnBook();
- n++;
- }
- else
- cout << "\nBibloteca este plina!";
- break;
- case 2:
- if (n)
- for (i = 0; i < n; i++)
- biblo[i].afisare();
- else
- cout << "Bibloteca este goala";
- break;
- case 3:
- if (n) {
- cout << "\nTitlu carte: "; cin >> titlu;
- cout << "Autor carte: "; cin >> numeA;
- opt = SearchBook(biblo, titlu, numeA, n);
- if (opt != n) {
- cout << "\nCartea a fost imprumutata!";
- biblo[opt].RentBook();
- }
- else
- cout << "\nCartea nu exista in biblioteca";
- }
- else
- cout << "\nNu exista carti in bibloteca";
- break;
- case 4:
- if (n) {
- cout << "\nTitlu carte: "; cin >> titlu;
- cout << "Autor carte: "; cin >> numeA;
- opt = SearchBook(biblo, titlu, numeA, n);
- if (opt != n) {
- cout << "\nCartea a fost inapoiata";
- biblo[opt].ReturnBook();
- }
- else
- cout << "\nCartea nu exista in biblioteca";
- }
- else
- cout << "\nNu exista carti in bibloteca";
- case 5:
- if (n) {
- cout << "\nTitlu carte: "; cin >> titlu;
- cout << "Autor carte: "; cin >> numeA;
- opt = SearchBook(biblo, titlu, numeA, n);
- if (opt != n) {
- biblo[opt].~Biblioteca();
- for (i = opt; i < n - 1; i++)
- biblo[i] = biblo[i + 1];
- n--;
- }
- else
- cout << "\nCartea nu exista in biblioteca";
- }
- else
- cout << "\nNu exista carti in bibloteca";
- break;
- case 6:
- if (n) {
- cout << "\nTitlu carte: "; cin >> titlu;
- cout << "Autor carte: "; cin >> numeA;
- opt = SearchBook(biblo, titlu, numeA, n);
- if (opt != n) {
- cout << "\nDetali carte";
- biblo[opt].afisare();
- }
- else
- cout << "\nCartea nu exista in biblioteca";
- }
- else
- cout << "\nNu exista carti in bibloteca";
- default:
- system("cls");
- break;
- }
- } while (1);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement