Sunteți pe pagina 1din 10

#include<iostream.

h>
#include<conio.h>
#include<fstream.h>

struct farmacie{char nume[30]; float pret; int zi; int luna;int an;
char simptom[100];char adv[100]; char
util[100]; char stoc[100];
char reteta[100];}v[100];

int i, n, tasta, ok;

void main(){

fstream f("farmacia_tei.txt", ios :: in);

f >> n;
for(i = 1; i <= n; ++i){
f >> v[i].nume;
f >> v[i].pret;
f >> v[i].zi;
f >> v[i].luna;
f >> v[i].an;
f >> v[i].simptom;
f >> v[i].adv;
f >> v[i].util;
f >> v[i].stoc;
f >> v[i].reteta;
}

f.close();

cout << "Apasati tasta 1 pentru a afisa toata medicamentele din farmacie"
<< endl;
cout << "Apasati tasta 2 pentru a cauta un medicament" << endl;
cout << "Apasati tasta 3 pentru a vedea ce medicamente se incadreaza in
suma pe care dotiti sa o cheltuiti/medicament" << endl;
cout << "Apasati tasta 4 pentru a vedea medicamentele recomandate pentru
simptomul dumneavoastra" << endl;
cout << "Apasati tasta 5 pentru a verifica daca medicamentul dorit se
aflta in stoc" << endl;
cout << "Apasati tasta 6 pentru a citi cum se utilizeaza medicamentul
dorit" << endl;
cout <<"Apasati tasta 7 pentru a verifica disponibilitatea medicamentului
dorit" << endl;
cout << "Apasati tasta 8 pentru a verifica daca medicamentul dorit
necesita reteta" << endl;
cout << "Apasati tasta 9 pentru a afla care este cel mai sump, dar si cel
mai ieftin produs din farmacie" << endl;
cout << "Apasati tasta 10 pentru a afla care este cel mai scump, dar si
cel mai ieftin produs in functie de simptomul avut" << endl;
cout << "Apasati tasta 11 pentru a accesa lista medicamentelor din
farmacie de la cel mai bun la cel mai vechi" << endl;
cout << "Apasati tasta 12 pentru a accesa lista produselor de la cel mai
iefin la cel mai scump in functie de simptomul avut" << endl;
cout << "Apasati tasta 13 pentru a adauga un nou medicament in farmacie"
<< endl;
cout << "Apasati tasta 14 pentru a sterge un anumit medicament din
farmacie" << endl;

cout << "Ce tasta doriti sa apasati? ";


cin >> tasta;

switch(tasta){

case 1:{

for(i = 1; i <= n; ++i){


cout << v[i].nume << endl;
cout << v[i].pret << endl;
cout << v[i].zi << endl;
cout << v[i].luna << endl;
cout << v[i].an << endl;
cout << v[i].simptom << endl;
cout << v[i].adv << endl;
cout << v[i].util << endl;
cout << v[i].stoc << endl;
cout << v[i].reteta << endl;
cout << endl;
}

break;
}

case 2:{
char numem[30];
ok = 0;

cout << "Introduceti numele medicamentului pe care doriti sa-l


cautati ";
cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(numem, v[i].nume) == 0){
cout << "Am gasit medicamentul cautat!" << endl;
cout << "Pretul este " << v[i].pret << " lei" << endl;
cout << "Expira pe " << v[i].zi << " " << v[i].luna << " " <<
v[i].an << endl;
cout << "Se foloseste cand apar:" << v[i].simptom << endl;
cout << "Efectele adverse sunt " << v[i].adv << endl;
cout << "Mod de utilizare: " << v[i].util << endl;
cout << "Stare stoc: " << v[i].stoc << endl;
cout << "Nevoie de reteta " << v[i].reteta;
ok = 1;
}
}
if(ok == 0)
cout << "Acest medicament nu se afla in farmacia noastra
momentan";

break;
}

case 3:{
float val_min, val_max;
ok = 0;

cout << " Introduceti suma in care doriti sa se incadreze produsul


";
cout << "valoarea minima ";
cin >> val_min;
cout << " si valoarea maxima ";
cin >> val_max;

for(i = 1; i <= n; ++i){


if(val_min <= v[i].pret && val_max >= v[i].pret){
cout << v[i].nume << " " << v[i].pret << " lei" <<
v[i].simptom <<
endl;
++ok;
}
}

if(ok == 0)
cout << "Nu se afla niciun medicament in suma ceruta";

break;
}

case 4:{
char simptome[30];
ok = 0;

cout << "Dati simptomul pe care il aveti(dureri, febra, inflamatii,


afte, infectii, alergii) ";
cin >> simptome;

for(i = 1; i <= n; ++i){


if(strstr(v[i].simptom, simptome) != NULL){
cout << v[i].nume << " " << v[i].pret << " lei" <<
v[i].simptom <<
endl;
++ok;
}
}

if(ok == 0)
cout << "Niciun medicament nu corespunde simptomelor
cerute";

break;
}

case 5:{
char numem[30], stoc[30] = "in_stoc";

cout << "Introduceti numele medicamentului dorit ";


cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(v[i].nume, numem) == 0){
if(strcmp(v[i].stoc, stoc) == 0){
cout << "Stoc disponibil! Doriti sa adaugati acest
produs in cos?";
}
else
cout << "Atentie! Acest produs nu se afla momentan in
stoc";
}
else
cout << "Niciun medicament nu corespunde numelui introdus";
}

break;
}

case 6:{
char numem[30];

cout << "Introduceti numele medicamenului dorit ";


cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(v[i].nume, numem) == 0)
cout << "Medicamentul se utilizeaza astfel " << v[i].util;
}

break;
}

case 7:{
char numem[30];

cout << "Introduceti numele mdicamenului dorit ";


cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(v[i].nume, numem) == 0)
cout << "Disponibilitatea medicamenului: " << v[i].stoc;
}

break;
}

case 8:{
char numem[30];

cout << "Introduceti numele medicamentului dorit ";


cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(v[i].nume, numem) == 0)
cout << "Medicamentul " << v[i].reteta;
}

break;
}

case 9:{
float max = 0, min = 100;
char nmax[30], nmin[30];

for(i = 1; i <= n; ++i){


if(v[i].pret > max){
max = v[i].pret;
strcpy(nmax, v[i].nume);
}
else if(v[i].pret < min){
min = v[i].pret;
strcpy(nmin, v[i].nume);
}
}

cout << "Cel mai scump produs este " << nmax << " la " << max << "
lei";
cout << ", iar cel mai ieftin produs este " << nmin << " la " <<
min << " lei";

break;
}

case 10:{
float max = 0, min = 100;
char nmax[30], nmin[30], simp[30];

cout << "Introduceti simptomul dumneavoastra (dureri, febra,


inflamatii, afte, infectii, alergii)";
cin >> simp;
for(i = 1; i <= n; ++i){
if(strstr(v[i].simptom, simp) != NULL){
if(v[i].pret > max){
max = v[i].pret;
strcpy(nmax, v[i].nume);
}
else if(v[i].pret < min){
min = v[i].pret;
strcpy(nmin, v[i].nume);
}
}
}

if(max != 0 && min != 100){


cout << "In functie de simptomul avut, cel mai scump produs
este ";
cout << nmax << " la " << max << " lei";
cout << ", iar cel mai ieftin este ";
cout << nmin << " la " << min << " lei ";
}
else if(max != 0 && min == 100 || max == 0 && min != 100){
cout << "In functie de simptomul avut, singurul produs este
";
cout << nmax << " la " << max << " lei";
}

break;
}

case 11:{
int zc, lc, ac, j, aux, aux1, aux2;

cout << "Introduceti ziua curenta ";


cin >> zc;
cout << "Introduceti luna curenta ";
cin >> lc;
cout << "Introduceti anil curent ";
cin >> ac;

for(i = 1; i < n; ++i){


for(j = i + 1; j <= n; ++j){
if((ac - v[i].an) > (ac - v[j].an)){
if((lc - v[i].luna) > (lc - v[j].luna)){
if((zc - v[i].zi) > (zc - v[j].zi)){
aux = v[i].zi;
v[i].zi = v[j].zi;
v[j].zi = aux;
}
aux1 = v[i].luna;
v[i].luna = v[j].luna;
v[j].luna = aux1;
}
aux2 = v[i].an;
v[i].an = v[j].an;
v[j].an = aux2;
}
}
}

cout << "Medicamentele ordonate in funcie de data expirarii de la


cel ";
cout << "mai bun la cel mai vechi sunt " <<endl;

for(i = 1; i <= n; ++i){


cout << v[i].nume << " la ";
cout << v[i].pret << " lei ;";
cout << "Data expirarii: " << v[i].zi << " " << v[i].luna << "
";
cout << v[i].an << endl;
}

break;
}

case 12:{
int j, p;
float aux;
char simp[30];

cout << " Introduceti simptomul dumneavoastra(dureri, febra,


inflamatii, afte, infectii, alergii) ";
cin >> simp;

for(i = 1; i <= n; ++i){


if(strstr(v[i].simptom, simp) != NULL){
for(j = 1; j < n; ++j){
for(p = j + 1; p <= n; ++p){
if(v[j].pret > v[p].pret){
aux = v[j].pret;
v[j].pret = v[p].pret;
v[p].pret = aux;
}
}
}
}
}

cout << "In functie de simptomul avut, produsele de la cel mai


iefin la ";
cout << "cel mai scump sunt " << endl;

for(i = 1; i <= n; ++i){


if(strstr(v[i].simptom, simp) != NULL){
cout << v[i].nume << " la " << v[i].pret << " lei " <<
v[i].stoc << endl;
}
}

break;
}

case 13:{
cout << "V-ati logat ca administrator, adaugati un medicament nou"
<< endl;

++n;

cout << "Nume: ";


cin >> v[n].nume;
cout << endl << "Pret: ";
cin >> v[n].pret;
cout << endl << "Ziua expirarii: ";
cin >> v[n].zi;
cout << endl << "Luna expirarii: ";
cin >> v[n].luna;
cout << endl <<"Anul expirarii: ";
cin >> v[n].an;
cout << endl << "Simptome: ";
cin >> v[n].simptom;
cout << endl << "Efecte adverse: ";
cin >> v[n].adv;
cout << endl << "Utilizare: ";
cin >> v[n].util;
cout << endl << "Stare stoc: ";
cin >> v[n].stoc;
cout << endl << "Necesitate reteta: ";
cin >> v[n].reteta;

f.close();

fstream g("farmacia_tei.txt", ios :: out);

g << n << endl;


for(i = 1; i <= n; ++i){
g << v[i].nume << endl;
g << v[i].pret << endl;
g << v[i].zi << endl;
g << v[i].luna << endl;
g << v[i].an << endl;
g << v[i].simptom << endl;
g << v[i].adv << endl;
g << v[i].util << endl;
g << v[i].stoc << endl;
g << v[i].reteta << endl;
}

g.close();

cout << "Produsul a fost adaugat cu succes!";


break;
}

case 14:{
char numem[30];
int j;

cout << "V-ati logat ca administrator, stergeti un produs" << endl;


cout << "Introduceti numele produsului pe care doriti sa-l stergeti
";
cin >> numem;

for(i = 1; i <= n; ++i){


if(strcmp(v[i].nume, numem) == 0){
j = i;
}
}

for(i = j; i <= n; ++i){


strcpy(v[i].nume, v[i + 1].nume);
v[i].pret = v[i + 1].pret;
v[i].zi = v[i + 1].zi;
v[i].luna = v[i + 1].luna;
v[i].an = v[i + 1].an;
strcpy(v[i].simptom, v[i + 1].simptom);
strcpy(v[i].adv, v[i + 1].adv);
strcpy(v[i].util, v[i + 1].util);
strcpy(v[i].stoc, v[i + 1].stoc);
strcpy(v[i].reteta, v[i + 1].reteta);
}

--n;

f.close();

fstream g("farmacia_tei.txt", ios :: out);

g << n;
for(i = 1; i <= n; ++i){
g << v[i].nume << endl;
g << v[i].pret << endl;
g << v[i].zi << endl;
g << v[i].luna << endl;
g << v[i].an << endl;
g << v[i].simptom << endl;
g << v[i].adv << endl;
g << v[i].util << endl;
g << v[i].stoc << endl;
g << v[i].reteta << endl;
}

g.close();
break;
}
case 15:{
int zc, lc, ac;
cout << "Introducti ziua curenta " << endl;
cin >> zc;
cout << "Introduceti luna curenta " << endl;
cin >> lc;
cout << "Introduceti anul curent " << endl;
cin >> ac;
for(i = i; i <= n; ++i){
if(zc > v[i].zi || lc > v[i].luna || ac > v[i].an){
cout << "Produsul " << v[i].nume << " a expirat pe data de ";
cout << v[i].zi << " " << v[i].luna << " " << v[i].an <<
endl;
}
}
break;
}
case 16:{
float s = 0;
int variabila;
cout << "Va rugam sa apasati 1 pentru DA si 0 pentru NU";
for(i = 1; i <= n; ++i){
cout << "Doriti sa adaugati in cos produsul " << v[i].nume <<
"?" << endl;
cin >> variabila;
if(variabila == 1){
s = s + v[i].pret;
cout << v[i].nume << " a fost adaugat cu succes!" << endl;
}
}
cout << "Suma cosului de cumparaturi este " << s;
break;
}

default: cout << "cifra incorecta, va rugam reincercati";


break;
}

getch();}

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