Sunteți pe pagina 1din 10

#include <iostream>

#include <cstring>

using namespace std;

int nr_clienti = 0;

struct Produs
{
char brand[21], denumire[31], descriere[61];
float pret;
int produse_vandute;
};

struct Categorie
{
int nr_haine = 0, nr_electronice = 0, nr_prod_casa = 0;
Produs haine[30];
Produs electronice[30];
Produs casa[30];
} categorie;

struct Client
{
char nume[31], prenume[31], parola[31];
float bani = 0;
} clienti[30];

bool existaClient(Client c, int& cod_client)


{
for(int i = 0; i < nr_clienti; i++)
{
if(strcmp(c.nume, clienti[i].nume) == 0)
{
if(strcmp(c.prenume, clienti[i].prenume) == 0)
{
if(strcmp(c.parola, clienti[i].parola) == 0)
{
cod_client = i;
return true;
}

}
}
}
return false;
}

void afisareProdus(Produs p[], int nr_produse)


{
for(int i = 0; i < nr_produse; i++)
{
cout<<i<<"."<<"Brand: "<<p[i].brand<<" Denumire: "<<p[i].denumire<<"
Descriere: "<<p[i].descriere<<" Pret: "<<p[i].pret<<"RON"<<endl;
}
}
void afisareProduseVMax(Produs p[], int nr_produse)
{
int v_max = 0;
for(int i = 0; i < nr_produse; i++)
{
if(p[i].produse_vandute > v_max)
v_max = p[i].produse_vandute;
}

for(int i = 0; i < nr_produse; i++)


{
if(p[i].produse_vandute == v_max)
cout<<i<<"."<<"Brand: "<<p[i].brand<<" Denumire: "<<p[i].denumire<<"
Descriere: "<<p[i].descriere<<" Pret: "<<p[i].pret<<"RON"<<endl;
}
}

void meniuCitire()
{
int numar;
while(true)
{
cout<<"---Selecteaza categoria---"<<endl;
cout<<"1. Haine"<<endl;
cout<<"2. Electronice"<<endl;
cout<<"3. Casa"<<endl;
cout<<"4. Inapoi"<<endl;
cin>>numar;
switch(numar)
{
case 1:
{
cout<<"Introdu brandul:"<<endl;
char brand[21];
cin>>brand;
int nr_haine = categorie.nr_haine;
strcpy(categorie.haine[nr_haine].brand, brand);

cout<<"Introdu denumirea:"<<endl;
char denumire[31];
cin>>denumire;
strcpy(categorie.haine[nr_haine].denumire, denumire);

cout<<"Introdu descrierea:"<<endl;
char descriere[61];
cin.get();
cin.getline(descriere, 60);
strcpy(categorie.haine[nr_haine].descriere, descriere);

cout<<"Introdu pretul:"<<endl;
float pret;
cin>>pret;
categorie.haine[nr_haine].pret = pret;
categorie.haine[nr_haine].produse_vandute = 0;
categorie.nr_haine++;
}

break;
case 2:
{
cout<<"Introdu brandul:"<<endl;
char brand[21];
cin>>brand;
int nr_electronice = categorie.nr_electronice;
strcpy(categorie.electronice[nr_electronice].brand, brand);

cout<<"Introdu denumirea:"<<endl;
char denumire[31];
cin>>denumire;
strcpy(categorie.electronice[nr_electronice].denumire, denumire);

cout<<"Introdu descrierea:"<<endl;
char descriere[61];
cin.get();
cin.getline(descriere, 60);
strcpy(categorie.electronice[nr_electronice].descriere, descriere);

cout<<"Introdu pretul:"<<endl;
float pret;
cin>>pret;
categorie.electronice[nr_electronice].pret = pret;
categorie.electronice[nr_electronice].produse_vandute = 0;
categorie.nr_electronice++;
}

break;
case 3:
{
cout<<"Introdu brandul:"<<endl;
char brand[21];
cin>>brand;
int nr_prod_casa = categorie.nr_prod_casa;
strcpy(categorie.casa[nr_prod_casa].brand, brand);

cout<<"Introdu denumirea:"<<endl;
char denumire[31];
cin>>denumire;
strcpy(categorie.casa[nr_prod_casa].denumire, denumire);

cout<<"Introdu descrierea:"<<endl;
char descriere[61];
cin.get();
cin.getline(descriere, 60);
strcpy(categorie.casa[nr_prod_casa].descriere, descriere);

cout<<"Introdu pretul:"<<endl;
float pret;
cin>>pret;
categorie.casa[nr_prod_casa].pret = pret;
categorie.casa[nr_prod_casa].produse_vandute = 0;
categorie.nr_prod_casa++;
}

break;
case 4:
return;
default:
break;
}
}
}

void ordonarePretCrescator(Produs p[], int n)


{
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
if(p[i].pret > p[j].pret)
swap(p[i], p[j]);
}
}
}

void ordonarePretDescrescator(Produs p[], int n)


{
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
if(p[i].pret < p[j].pret)
swap(p[i], p[j]);
}
}
}

void submeniuAfisare(Produs p[], bool client, int cod_client)


{
int cod_produs = 0;
int nr_produse;
if(p == categorie.haine)
nr_produse = categorie.nr_haine;
else if(p == categorie.electronice)
nr_produse = categorie.nr_electronice;
else if(p == categorie.casa)
nr_produse = categorie.nr_prod_casa;
int numar;
while(true)
{
cout<<"--SELECTEAZA MODUL DE AFISARE PE CARE IL VREI--"<<endl;
cout<<"1. Pret crescator"<<endl;
cout<<"2. Pret descrescator"<<endl;
cout<<"3. Cele mai bine vandute produse"<<endl;
cout<<"4. Inapoi"<<endl;
cin>>numar;
switch (numar)
{
case 1:
ordonarePretCrescator(p, nr_produse);
afisareProdus(p, nr_produse);
if(client)
{
cout<<"Introdu numarul produsului dorit: ";
cin>>cod_produs;
if(cod_produs >= nr_produse)
cout<<"Numar invalid!"<<endl;
else
{
if(clienti[cod_client].bani >= p[cod_produs].pret)
{
clienti[cod_client].bani -= p[cod_produs].pret;
p[cod_produs].produse_vandute++;
}
else
{
cout<<"Nu ai destui bani :("<<endl;
return;
}

}
}
break;
case 2:
ordonarePretDescrescator(p, nr_produse);
afisareProdus(p, nr_produse);
if(client)
{
cout<<"Introdu numarul produsului dorit: ";
cin>>cod_produs;
if(cod_produs >= nr_produse)
cout<<"Numar invalid!"<<endl;
else
{
if(clienti[cod_client].bani >= p[cod_produs].pret)
{
clienti[cod_client].bani -= p[cod_produs].pret;
p[cod_produs].produse_vandute++;
}
else
{
cout<<"Nu ai destui bani :("<<endl;
return;
}

}
}
break;
case 3:
afisareProduseVMax(p, nr_produse);
if(client)
{
cout<<"Introdu numarul produsului dorit: ";
cin>>cod_produs;
if(cod_produs >= nr_produse)
cout<<"Numar invalid!"<<endl;
else
{
if(clienti[cod_client].bani >= p[cod_produs].pret)
{
clienti[cod_client].bani -= p[cod_produs].pret;
p[cod_produs].produse_vandute++;
}
else
{
cout<<"Nu ai destui bani :("<<endl;
return;
}

}
}
break;
case 4:
return;
default:
break;
}
}
}

void meniuPrincipalAfisare(bool client, int cod_client)


{
int numar;
while(true)
{
cout<<"---SELECTEAZA CATEGORIA PE CARE VREI SA O AFISEZI---"<<endl;
cout<<"1. Haine"<<endl;
cout<<"2. Electronice"<<endl;
cout<<"3. Casa"<<endl;
cout<<"4. Inapoi"<<endl;
cin>>numar;
switch(numar)
{
case 1:
cout<<"--HAINE--"<<endl;
submeniuAfisare(categorie.haine, client, cod_client);
break;
case 2:
cout<<"--ELECTRONICE--"<<endl;
submeniuAfisare(categorie.electronice, client, cod_client);
break;
case 3:
cout<<"--CASA--"<<endl;
submeniuAfisare(categorie.casa, client, cod_client);
break;
case 4:
return;
default:
break;
}
}
}

void meniuClientLogat(int cod_client)


{
int numar;
while(true)
{
cout<<"--LOGAT--"<<endl;
cout<<"1. Afisare produse"<<endl;
cout<<"2. Inapoi"<<endl;
cin>>numar;
switch(numar)
{
case 1:
meniuPrincipalAfisare(true, cod_client);
break;
case 2:
return;
default:
break;
}
}
}

void meniuSignUp()
{
int numar;
while(true)
{
cout<<"--SIGN-UP--"<<endl;
cout<<"1. Continua"<<endl;
cout<<"2. Inapoi"<<endl;
cin>>numar;
cin.get();
switch(numar)
{
case 1:
cout<<"Nume: ";
cin>>clienti[nr_clienti].nume;
cout<<endl;
cout<<"Prenume: ";
cin>>clienti[nr_clienti].prenume;
cout<<endl;
cout<<"Parola: ";
cin>>clienti[nr_clienti].parola;
cout<<endl;
cout<<"Suma bani: ";
cin>>clienti[nr_clienti].bani;
nr_clienti++;
break;
case 2:
return;
default:
break;
}
}
}

void meniuLogIn()
{
Client c;
int numar, cod_client;
while(true)
{
cout<<"--LOG-IN--"<<endl;
cout<<"1. Continua"<<endl;
cout<<"2. Inapoi"<<endl;
cin>>numar;
cin.get();
char nume[31], prenume[31], parola[31];
switch(numar)
{
case 1:
cout<<"Nume: ";
cin>>c.nume;
cout<<endl;
cout<<"Prenume: ";
cin>>c.prenume;
cout<<endl;
cout<<"Parola: ";
cin>>c.parola;
cout<<endl;
if(existaClient(c, cod_client))
meniuClientLogat(cod_client);
else
{
cout<<"Date de autentificare invalide!!"<<endl;
return;
}
break;
case 2:
return;
default:
break;
}
}
}

void meniuClient()
{
int numar;
while(true)
{
cout<<"--MOD CLIENT--"<<endl;
cout<<"1. Afiseaza produsele"<<endl;
cout<<"2. Sign-Up!"<<endl;
cout<<"3. Log-in!"<<endl;
cout<<"4. Inapoi"<<endl;
cin>>numar;
switch(numar)
{
case 1:
meniuPrincipalAfisare(false, 0);
break;
case 2:
meniuSignUp();
break;
case 3:
meniuLogIn();
break;
case 4:
return;
default:
break;
}
}
}
void meniuVanzator()
{
int numar;
while(true)
{
cout<<"--MOD VANZATOR--"<<endl;
cout<<"1. Afiseaza produsele"<<endl;
cout<<"2. Adauga un produs"<<endl;
cout<<"3. Inapoi"<<endl;
cin>>numar;
switch(numar)
{
case 1:
meniuPrincipalAfisare(false, 0);
break;
case 2:
meniuCitire();
break;
case 3:
return;
default:
break;
}
}
}

void meniuPrincipal()
{
char input;
while(true)
{
cout<<"---- BUN VENIT LA C&P ----"<<endl;
cout<<"Pentru modul vanzator, selecteaza v"<<endl;
cout<<"Pentru modul cumparator, selecteaza c"<<endl;
cout<<"Pentru iesire, selecteaza e"<<endl;

cin>>input;
switch(input)
{
case 'c':
meniuClient();
break;
case 'v':
meniuVanzator();
break;
case 'e':
return;
default:
break;
}
}

int main()
{

meniuPrincipal();
return 0;
}

S-ar putea să vă placă și