Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- #include<conio.h>
- using namespace std;
- //struct adresa
- //{
- // char *localitate, *tara, *strada;
- // int cod_postal, numar;
- //};
- //
- //struct date_contact
- //{
- // long int nr_telefon;
- // char *email, *site, *facebook;
- //};
- //
- //typedef enum { piscina = 0, restaurant = 1, sala_conf = 2, sala_sport = 3 }dotari;
- class lista;
- class produs_magazin
- {
- private:
- int tip_derivat;
- char*producator;
- int cod_produs;
- char*rezolutie;
- char*dimensiune;
- produs_magazin*urm;
- public:
- produs_magazin(int t, char*prod, int cod, char*rez, char*dim)
- {
- producator = new char[strlen(prod) + 1];
- strcpy(producator, prod);
- rezolutie = new char[strlen(rez) + 1];
- strcpy(rezolutie, rez);
- dimensiune = new char[strlen(dim) + 1];
- strcpy(dimensiune, dim);
- tip_derivat = t;
- cod_produs = cod;
- urm = NULL;
- }
- virtual void afisare()
- {
- cout << "----------------------\n";
- cout << "producator" << producator << endl;
- cout << "cod produs" << cod_produs << endl;
- cout << "rezolutie" << rezolutie << endl;
- cout << "dimensiune" << dimensiune << endl;
- }
- friend class lista;
- };
- class scaner:public produs_magazin
- {
- private:
- char*soft_inclus;
- int viteza_scaner;
- public:
- scaner(int t, char*prod, int cod, char*rez, char*dim, char*soft, int viteza):produs_magazin(t, prod, cod, rez, dim)
- {
- soft_inclus = new char[strlen(soft) + 1];
- strcpy(soft_inclus, soft);
- viteza_scaner= viteza;
- }
- void afisare()
- {
- produs_magazin::afisare();
- cout << "soft inclus:" << soft_inclus << endl;
- cout << "viteza_scaner:" << viteza_scaner << endl;
- }friend class lista;
- };
- class imprimanta :public produs_magazin
- {
- private:
- char*format;
- char*tip;
- public:
- imprimanta(int t, char*prod, int cod, char*rez, char*dim, char*form, char*tp) :produs_magazin(t, prod, cod, rez, dim)
- {
- format = new char[strlen(form) + 1];
- strcpy(format, form);
- tip = new char[strlen(tp) + 1];
- strcpy(tip, tp);
- }
- void afisare()
- {
- produs_magazin::afisare();
- cout << "format:" << format << endl;
- cout << "tip:" << tip << endl;
- }friend class lista;
- };
- class lista
- {
- public:
- produs_magazin*head;
- void adaugare(produs_magazin *prod);
- void afisare();
- void cautare(char*prod);
- void stergere(char *prod);
- };
- void lista::adaugare(produs_magazin*a)
- {
- produs_magazin*p;
- p = head;
- if (p)
- {
- if (strcmp(a->producator, p->producator) < 0)
- {
- a->urm = head;
- head = a;
- }
- else
- {
- while (p->urm && strcmp((p->urm)->producator, a->producator) < 0)
- p = p->urm;
- a->urm = p->urm;
- p->urm = a;
- }
- }
- else
- head = a;
- }
- void lista::afisare()
- {
- produs_magazin*a;
- a = head;
- if (!a)
- cout << "lista este goala";
- else
- while (a)
- {
- a->afisare();
- a = a->urm;
- }
- }
- void introducere(lista&l, int x)
- {
- int tip_derivat;
- char producator[50];
- int cod_produs;
- char rezolutie[50];
- char dimensiune[50];
- char soft_inclus[50];
- int viteza_scaner;
- char format[50];
- char tip[50];
- produs_magazin*prodMag;
- cout << "Introduceti producator:";
- cin >> producator;
- cout << "Introduceti cod produs:";
- cin >> cod_produs;
- cout << "Introduceti rezolutia:";
- cin >> rezolutie;
- cout << "Introduceti dimensiunea:";
- cin >> dimensiune;
- if (x == 0)
- {
- scaner *Sc;
- cout << "introduceti softul";
- cin >> soft_inclus;
- cout << "Introduceti viteza:";
- cin >> viteza_scaner;
- Sc = new scaner(1, producator, cod_produs, rezolutie, dimensiune, soft_inclus, viteza_scaner);
- prodMag = Sc;
- l.adaugare(prodMag);
- }
- else if (x == 1)
- {
- imprimanta*imprim;
- cout << "introduceti format";
- cin >> format;
- cout << "introduceti tip";
- cin >> tip;
- imprim = new imprimanta(2, producator, cod_produs, rezolutie, dimensiune, format, tip);
- prodMag = imprim;
- l.adaugare(prodMag);
- }
- }
- void lista::cautare(char*prod)
- {
- produs_magazin*a;
- a = head;
- if (!a)
- cout << "lista este goala";
- else
- {
- while (a)
- {
- if (strcmp(a->urm->producator, prod) == 0)
- a->afisare();
- a = a->urm;
- }
- }
- }
- void lista::stergere(char*prod)
- {
- produs_magazin*p,*q;
- p = q = head;
- if (p)
- {
- while (p&& strcmp(p->producator, prod) != 0)
- {
- q = p;
- p = p->urm;
- }
- if (p)
- {
- if (p != q)
- {
- q->urm = p->urm;
- delete p;
- }
- else
- {
- head = p->urm;
- delete p;
- }
- }
- else
- cout << "producatorul nu exista in lista ";
- }
- else
- cout << "lista este vida";
- }
- void main()
- {
- int opt;
- lista l;
- l.head = NULL;
- do
- {
- system("cls");
- cout << "1.adaugare scaner in lista.\n";
- cout << "2.adaugare imprimanta in lista.\n";
- cout << "3.afisare articol din lista.\n";
- cout << "4.cautare.\n";
- cout << "5.stergere.\n";
- cout << "0.iesire.\n";
- cin >> opt;
- switch (opt)
- {
- case 1:introducere(l, 0);
- break;
- case 2:introducere(l, 1);
- break;
- case 3:l.afisare();
- break;
- case 4:char prod[20];
- cout << "\Dati prod dupa care se cauta";
- cin >> prod;
- l.cautare(prod);
- cout << "apasati pt continuare";
- _getch;
- break;
- case 5:char produc[20];
- cout << "\Dati prod dupa care se sterge";
- cin >> produc;
- l.stergere(produc);
- cout << "apasati pt continuare";
- _getch;
- break;
- case 0:
- break;
- default :cout << "comanda gresita";
- }
- } while (opt != 0);
- }
- //------------------------------------------------------------------------------------
- /*void Lista::Adaugare_Fata(Agentie *a) //adaugare in fata listei (pusa in comentarii pt ca folosim adaugarea ordonata)
- {
- if (head == NULL)
- {
- head = a;
- }
- else
- {
- a->urm = head;
- head = a;
- }
- }
- //--------------------------------------------------------------------------
- void Lista::Adaugare_Spate(Agentie *a) //adaugare la sfarsitul listei (pusa in comentarii pt ca folosim adaugarea ordonata)
- {
- Agentie *p;
- if (head == NULL)
- {
- head = a;
- }
- else
- {
- p = head;
- while (p->urm != NULL)
- p = p->urm;
- p->urm = a;
- }
- }*/
- //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement