Documente Academic
Documente Profesional
Documente Cultură
al Republicii Moldova
Colegiul Financiar-Bancar Chiinu
A efectuat:Rosca Diana
INF 1011 G
A verificat: Malai Mariana
Chisinau 2011
#include <fstream.h>
#include <string.h>
#include <conio.h>
int i,n;
ifstream f("parfum.txt");
struct parfum
{char denumire[30];
float pret;
char compania[20];
int cantitatea;
char categoria[50];
char tipul[10];
}LP[100];
void citire()
{f>>n;
for(i=1;i<=n;i++)
{ f>>LP[i].denumire;
f>>LP[i].pret;
f>>LP[i].compania;
f>>LP[i].cantitatea;
f>>LP[i].categoria;
f>>LP[i].tipul;}
cout<<"Efectuat cu succes"<<endl;
}
void afisarea()
{for(i=1;i<=n;i++)
{ cout<<LP[i].denumire<<" ";
cout<<LP[i].pret<<" ";
cout<<LP[i].compania<<" ";
cout<<LP[i].cantitatea<<" ";
cout<<LP[i].categoria<<" ";
cout<<LP[i].tipul<<" ";
cout<<endl;
}
}
void max()
{int max=LP[1].pret;
for(i=2;i<=n;i++)
if(LP[i].pret>max) max=LP[i].pret;
for(i=1;i<=n;i++)
if(LP[i].pret==max)
cout<<LP[i].denumire<<" "<<LP[i].pret<<" "<<LP[i].compania<<" "<<LP[i].categoria<<endl;
}
void min()
{int min=LP[1].pret;
for(i=2;i<=n;i++)
if(LP[i].pret<min) min=LP[i].pret;
for(i=1;i<=n;i++)
if(LP[i].pret==min)
cout<<LP[i].denumire<<" "<<LP[i].pret<<" "<<LP[i].compania<<" "<<LP[i].categoria<<endl;
}
void categoria()
{
int k=0,s=0;
for(i=1;i<=n;i++)
if(LP[i].cantitatea<50 && strcmp(LP[i].categoria,"florala")==0){
k++;
s+=LP[i].pret;
}
if(k!=0)
cout<<"media="<<((float) s/k)<<endl;
else
cout<<"Nu-s astfel de parfumuri"<<endl;
}
void reducere()
{ for(i=1;i<=n;i++)
if(LP[i].pret>250)
LP[i].pret*=(float)30/100;
cout<<"Indeplinit cu succes"<<endl;
}
void filtrare()
{char x[30];
cout<<"categoria:";
cin>>x;
for(i=1;i<=n;i++)
if(strcmp(LP[i].categoria,x)==0)
cout<<LP[i].denumire<<" "<<LP[i].pret<<" "<<LP[i].compania<<" "<<LP[i].categoria<<endl;
}
void scumpire()
{ for(i=1;i<=n;i++)
if(LP[i].pret<100 && strcmp(LP[i].tipul,"f")==0)
LP[i].pret+=LP[i].pret*25/100;
cout<<"Indeplinit cu succes"<<endl; }
void sortare()
{ int i,j;
struct parfum x;
for(i=1;i<=n-1;i++)
for(j=1;j<=n-1;j++)
if(LP[j+1].pret<LP[j].pret)
{ x=LP[j];
LP[j]=LP[j+1];
LP[j+1]=x;
}
for(i=1;i<=n;i++)
cout<<LP[i].denumire<<" "<<LP[i].pret<<" "<<LP[i].compania<<" "<<LP[i].categoria<<endl;
}
void sortarecantitate()
{ int i,j;
struct parfum t;
for(i=1;i<=n-1;i++)
for(j=1;j<=n-1;j++)
if(LP[j+1].cantitatea>LP[j].cantitatea)
{ t=LP[j];
LP[j]=LP[j+1];
LP[j+1]=t;
}
for(i=1;i<=n;i++)
cout<<LP[i].denumire<<" "<<LP[i].pret<<" "<<LP[i].compania<<" "<<LP[i].categoria<<"
"<<LP[i].cantitatea<<endl;
}
main()
{int e;clrscr();
do
{cout<<"*******************************************"<<endl;
cout<<"**----------------Meniu------------------**"<<endl;
cout<<"**---------------citirea-------------1---**"<<endl;
cout<<"**---------------afisarea------------2---**"<<endl;
cout<<"**------------pretul maxim-----------3---**"<<endl;
cout<<"**------------pretul minim-----------4---**"<<endl;
cout<<"**------------pretul mediu-----------5---**"<<endl;
cout<<"**--------------reducere-------------6---**"<<endl;
cout<<"**--------------filtrare-------------7---**"<<endl;
cout<<"**--------------scumpire-------------8---**"<<endl;
cout<<"**--------------sortare--------------9---**"<<endl;
cout<<"**--------sortarea dupa cantitate----10--**"<<endl;
cout<<"*******************************************"<<endl;
cout<<"e=";cin>>e;
switch(e)
{case 1:citire();break;
case 2:afisarea();break;
case 3:max();break;
case 4:min();break;
case 5:categoria();break;
case 6:reducere();break;
case 7:filtrare();break;
case 8:scumpire();break;
case 9:sortare();break;
case 10:sortarecantitate();break;
}}
while(e!=0);
}
Imagini a programului:
Meniul Principal:
Citirea:
Afisarea:
Reducere:
Filtrarea datelor:
Scumpire:
Parfum.txt
16
Aromadisiac 239 Avon 50 orientala f
FemmeHoliday 250 Avon 50 marin-lemnoasa f
Volare 200 Oriflame 50 florala f
eclat 270 Oriflame 100 marin-lemnoasa m
Precious 255 Oriflame 50 florala f
ForAway 185 Avon 30 floral-orientala f
glacier 200 oriflame 100 fresh-lemnoasa m
passiondance 160 Avon 50 floral-orientala f
Luscious 125 Avon 30 citrica f
excitate 230 Oriflame 100 fresh-marin m
Divine 300 Oriflame 50 floral-orientala f
EurBlanca 270 Avon 30 florala f
Perceive 250 Avon 50 floral-orientala f
EternalMagic 59 Avon 10 floral-lemnoasa f
blue 170 Avon 100 fresh m
sun 100 Oriflame 30 florala f