Documente Academic
Documente Profesional
Documente Cultură
Această aplicație în limbajul C++ a fost concepută pentru gestionarea ușoară a unei liste
de contacte în funcție de anumite criterii. Poate fi folosită atât de utilizatorii de rând care vor să
își organizeze mai ușor lista de contacte, cât și în cadrul firmelor.
Descrierea aplicației
• Cerință:
Se dă un număr n și n contacte, fiecare contact are următoarele date: nume, prenume, număr
de telefon, vârstă, grupul din care face parte și genul.
Se cere să se scrie un program care să citească datele de la tastatură, să afișeze datele, să
sorteze contactele care au peste 18 ani, să sorteze contactele în funcție de vârstă(crescător), să
sorteze contactele în funcție de grupul din care fac parte(familie, prieteni, colegi), să sorteze
contactele în funcție de gen.
Exemplu citire: n=3
1 Pop Raul 0765786245 19 colegi M
2 Bota Ioana 0736459023 17 familie F
3 Costea Alex 0735728465 21 prieteni M
• Subprogramele folosite:
Subprogramul Meniu() afișează pe ecran o listă cu cerințe dintre care utilizatorul poate
alege, astfel prin selectarea unei cifre de la 0 la 6 acesta poate realiza mai multe operații.
1
Exemplu:
Exemplu:
Subprogramul AfisareDate(i) este accesat prin tastarea cifrei 2 și afișează datele unui anumit
contact în funcție de i.
Exemplu:
2
Subprogramul SortareContacteMajore() este accesat prin tastarea cifrei 3 și sortează și
afișează doar contactele care au peste 18 ani.
Exemplu:
Exemplu:
3
Exemplu:
Exemplu:
4
• Declarații variabile
• Main-ul principal
5
Programul în limbajul C++
void Meniu()
{
cout<<endl;
cout<<"Program gestionare contacte: "<<endl;
cout<<"1 - Citire date contacte"<<endl;
cout<<"2 - Afisare date contacte"<<endl;
cout<<"3 - Sortare contacte majore"<<endl;
cout<<"4 - Sortare dupa varsta"<<endl;
cout<<"5 - Sortare dupa grup(familie,prieteni,colegi)"<<endl;
cout<<"6 - Sortare dupa gen"<<endl;
cout<<"0 - Oprire program"<<endl;
cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl;
}
unsigned i,j,n;
6
struct contact
{
char nume[21],prenume[21],grup[11],gen[1];
int varsta,numartel;
}c[31],aux;
void CitireDate()
{
cout<<"Citire date: "<<endl;
cout<<"Numarul de contacte: ";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<i<<" ";
cin>>c[i].nume>>c[i].prenume>>c[i].numartel>>c[i].varsta>>c[i].grup>>c[i].gen;
}
}
void AfisareDate(int i)
{
cout<<c[i].nume<<" "<<c[i].prenume<<" "<<c[i].numartel<<" "<<c[i].varsta<<"
"<<c[i].grup<<" "<<c[i].gen;
cout<<endl;
}
void SortareContacteMajore()
{
cout<<"Sortare contacte majore: "<<endl;
for(i=1;i<=n;i++)
if(c[i].varsta>=18) AfisareDate(i);
}
void SortareVarsta()
{
cout<<"Sortare dupa varsta: "<<endl;
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(c[i].varsta>c[j].varsta)
{
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
for(i=1;i<=n;i++) AfisareDate(i);
}
void SortareGrup()
{
7
cout<<"Sortare dupa grup: "<<endl;
cout<<"Familie: "<<endl;
for(i=1;i<=n;i++)
if(strcmp(c[i].grup,"familie")==0) AfisareDate(i);
cout<<"Prieteni: "<<endl;
for(i=1;i<=n;i++)
if(strcmp(c[i].grup,"prieteni")==0) AfisareDate(i);
cout<<"Colegi: "<<endl;
for(i=1;i<=n;i++)
if(strcmp(c[i].grup,"colegi")==0) AfisareDate(i);
}
void SortareDupaGen()
{
cout<<"Sortare dupa gen: "<<endl;
cout<<"Fetele: "<<endl;
for(i=1;i<=n;i++)
if(c[i].gen[0]=='F') AfisareDate(i);
cout<<endl;
cout<<"Baietii: "<<endl;
for(i=1;i<=n;i++)
if(c[i].gen[0]=='M') AfisareDate(i);
cout<<endl;
}
int main()
{
unsigned optiune;
do
{
Meniu();
cout<<"Ce doresti? ";
cin>>optiune;
switch(optiune)
{
case 1: CitireDate(); break;
case 2: for(i=1;i<=n;i++) AfisareDate(i); break;
case 3: SortareContacteMajore(); break;
case 4: SortareVarsta(); break;
case 5: SortareGrup(); break;
case 6: SortareDupaGen(); break;
}
}while(optiune!=0);
return 0;
}
8
Îmbunătățiri
Bibliografie