Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- using namespace std;
- typedef struct adresa {
- char localitate[20];
- char tara[20];
- int cod_postal;
- char strada[20];
- int numar;
- }adresa;
- typedef struct date_contact {
- int numar_telefon;
- char adresa_email[20];
- char site[20];
- char facebook[20];
- }date_contact;
- typedef enum {piscina=0, restaurant = 1 , sala_sport = 2
- }dotari;
- class Lista;
- class Cazare {
- private:
- adresa a;
- date_contact dtc;
- char cazare[20];
- int tip;
- char nume[20];
- int id_cazare = rand() % 4000;
- bool loc_parcare;
- int numar_camere;
- int num_loc;
- int num_cam_ocup;
- int pret;
- Cazare* urm;
- public:
- Cazare(int t, int id, char n[20], char loc[20], char tar[20], int cp, char str[20], int nr, int nrt, char mail[20], char sait[20], char fb[20], int lp, int nc, int nl, int nco, int p ) {
- tip = t;
- id_cazare = id;
- strcpy(nume, n);
- strcpy(a.localitate, loc);
- strcpy(a.tara, tar);
- strcpy(a.strada, str);
- a.cod_postal = cp;
- a.numar = nr;
- dtc.numar_telefon = nrt;
- strcpy(dtc.adresa_email, mail);
- strcpy(dtc.site, sait);
- strcpy(dtc.facebook, fb);
- loc_parcare = lp;
- numar_camere = nc;
- num_loc = nl;
- num_cam_ocup = nco;
- pret = p;
- urm = NULL;
- }
- virtual void afisare() {
- if (tip == 1)
- cout << "\nHOTEL" << endl;
- if (tip == 2)
- cout << "\nPENSIUNE" << endl;
- cout << "Id cazare: " << id_cazare << endl;
- cout << "Nume:" << nume << endl;
- cout << "Localitate: " << a.localitate << endl;
- cout << "Tara: " << a.tara << endl;
- cout << "Strada: " << a.strada << endl;
- cout << "Cod Postal: " << a.cod_postal << endl;
- cout << "Numar: " << a.numar << endl;
- cout << "Numar de telefon: " << dtc.numar_telefon << endl;
- cout << "Email: " << dtc.adresa_email << endl;
- cout << "Website: " << dtc.site << endl;
- cout << "Facebook: " << dtc.facebook << endl;
- cout << "Locuri parcare:" << loc_parcare << endl;
- cout << "Numar camere: " << numar_camere << endl;
- cout << "Numar locuri: " << num_loc << endl;
- cout << "Numar camere ocupate: " << num_cam_ocup << endl;
- cout << "Pret: " << pret << endl;
- }
- friend class Lista;
- };
- class Hotel : public Cazare {
- private:
- dotari dot;
- int numar_stele;
- public:
- Hotel(int t, int id, char n[20], char loc[20], char tar[20], int cp, char str[20], int nr, int nrt, char mail[20], char sait[20], char fb[20], int lp, int nc, int nl, int nco, int p, dotari dota, int nr_stele):Cazare(
- t, id, n,loc,tar,cp,str,nr,nrt,mail,sait,fb,lp,nc,nl,nco, p) {
- dot = dota;
- numar_stele = nr_stele;
- }
- void afisare() {
- Cazare::afisare();
- if (dot == 0)
- cout << "Dotari:piscina" << endl;
- if (dot == 1)
- cout << "Dotari:restaurant " << endl;
- if (dot == 2)
- cout << "Dotari:sala de sport" << endl;
- }
- friend class Lista;
- };
- class Pensiune : public Cazare {
- private:
- int numar_margarete;
- bool bb;
- public:
- Pensiune(int t, int id, char n[20], char loc[20], char tar[20], int cp, char str[20], int nr, int nrt, char mail[20], char sait[20], char fb[20], int lp, int nc, int nl, int nco, int p, int nr_marg, bool bsb) :Cazare(
- t, id, n, loc, tar, cp, str, nr, nrt, mail, sait, fb, lp, nc, nl, nco, p) {
- numar_margarete = nr_marg;
- bb = bsb;
- }
- void afisare() {
- Cazare::afisare();
- cout << "Numar margarete:" << numar_margarete << endl;
- cout << "Bed&Breakfast:" << bb << endl;
- }
- friend class Lista;
- };
- class Lista {
- public:
- Cazare* head;
- void adaugare(Cazare* a);
- void afisare();
- };
- void Lista::adaugare(Cazare* a) {
- Cazare* p;
- p = head;
- if (p) {
- if (strcmp(a->nume, head->nume) < 0) {
- a->urm = head;
- head = a;
- }
- else {
- while (p->urm != NULL && strcmp(p->urm->nume, a->nume) < 0)
- {
- p = p->urm;
- a->urm = p->urm;
- p->urm = a;
- }
- }
- }
- else
- head = a;
- }
- void Lista::afisare() {
- Cazare* p;
- p = head;
- while (p) {
- p->afisare();
- p = p->urm;
- }
- }
- void introducere(Lista &l, int x) {
- Cazare* a;
- int id_cazare;
- char nume[20];
- char localitate[20];
- int cod_postal;
- char tara[20];
- char strada[20];
- int numar;
- int numar_telefon;
- char adresa_email[20];
- char site[20];
- char facebook[20];
- bool loc_parcare;
- int numar_camere;
- int numar_locuri;
- int numar_ocupate;
- int pret;
- int dot;
- int num_stele;
- int num_margarete;
- bool bb;
- id_cazare = rand() % 4000;
- cout << "Nume:"; cin >> nume;
- cout << "Localitate:"; cin >> localitate;
- cout << "Cod Postal: "; cin >> cod_postal;
- cout << "Tara: "; cin >> tara;
- cout << "Strada:"; cin >> strada;
- cout << "Numar: "; cin >> numar;
- cout << "Numar telefon:"; cin >> numar_telefon;
- cout << " Adresa email: "; cin >> adresa_email;
- cout << "Site:"; cin >> site;
- cout << "Facebook: "; cin >> facebook;
- cout << "Locuri parcare: "; cin >> loc_parcare;
- cout << "Numar camere: "; cin >> numar_camere;
- cout << "Numar locuri:"; cin >> numar_locuri;
- cout << "Numar locuri ocupate:"; cin >> numar_ocupate;
- cout << "Pret:"; cin >> pret;
- if (x == 0) {
- Hotel* h;
- cout << "Dotari: 0 - piscina , 1 - restaurant , 2 - sala de sport"; cin >> dot;
- dotari dota = static_cast<dotari>(dot);
- cout << "Numar stele: "; cin >> num_stele;
- h = new Hotel(1, id_cazare, nume, localitate, tara, cod_postal, strada, numar, numar_telefon, adresa_email, site, facebook, loc_parcare, numar_camere, numar_locuri, numar_ocupate, pret, dota, num_stele);
- a = h;
- l.adaugare(a);
- }
- if (x == 1) {
- Pensiune* p;
- cout << "Numar margarete:"; cin >> num_margarete;
- cout << "Bed&Breakfast(0/1)"; cin >> bb;
- p = new Pensiune(2, id_cazare, nume, localitate, tara, cod_postal, strada, numar, numar_telefon, adresa_email, site, facebook,loc_parcare, numar_camere, numar_locuri, numar_ocupate, pret, num_margarete, bb);
- a = p;
- l.adaugare(a);
- }
- }
- int main() {
- Lista l;
- int o;
- l.head = NULL;
- do {
- cout<<"\n1.Adaugare Hotel"<<endl;
- cout<<"\n2.Adaugare Pensiune"<<endl;
- cout << "\n3. Afisare" << endl;
- cout<< "Optiunea dvs este:"; cin >> o;
- switch(o){
- case 1:
- introducere(l, 0);
- break;
- case 2:
- introducere(l, 1);
- break;
- case 3:
- l.afisare();
- break;
- }
- } while (o != 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement