Pagini recente » Cod sursa (job #848659) | Cod sursa (job #1123336) | Cod sursa (job #2733271) | Cod sursa (job #2431368) | Cod sursa (job #2130797)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("date1.in");
ofstream out("date1.out");
int n;
struct persoana
{
char nume[20];
char prenume[20];
char numar[11];
char email[50];
} contact[100];
void citire(int &p)
{
in>>n;
for(int i=1; i<=p; i++)
{
in>>contact[i].nume;
in>>contact[i].prenume;
in>>contact[i].numar;
in>>contact[i].email;
}
}
void adaug(int &i)
{
cout<<"Numele contactului: ";
cin>>contact[i].nume;
cout<<"Prenumele contactului: ";
cin>>contact[i].prenume;
cout<<"Numarul de telefon al contactului: ";
cin>>contact[i].numar;
cout<<"E-mailul contactului: ";
cin>>contact[i].email;
i++;
}
void afisare(int &m)
{
for(int i = 0; i <= m; i++)
{
cout<<contact[i].nume<<" ";
cout<<contact[i].prenume<<" ";
cout<<contact[i].numar<<" ";
cout<<contact[i].email<<endl;
}
}
void sortare(int &q)
{
for(int i=1; i<q; i++)
for(int j=i+1; j<=q; j++)
if(strcmp(contact[i].nume, contact[j].nume)>0)
swap(contact[i], contact[j]);
else if(strcmp(contact[i].nume, contact[j].nume)==0)
if(strcmp(contact[i].prenume, contact[j].prenume)>0)
swap(contact[i], contact[j]);
}
char nume_stergere[20];
char prenume_stergere[20];
char numar_stergere[11];
char email_stergere[50];
int h;
void stergere(int &r)
{
cout<<"Numele contactului pe care il stergeti: ";
cin>>nume_stergere;
cout<<"Prenumele contactului pe care il stergeti: ";
cin>>prenume_stergere;
cout<<"Numarul de telefon al contactului pe care il stergeti: ";
cin>>numar_stergere;
cout<<"E-mailul contactului pe care il stergeti: ";
cin>>email_stergere;
int i;
for(i=1; i<=r; i++)
if(strstr(contact[i].nume, nume_stergere)&&strstr(contact[i].prenume, prenume_stergere)&&strstr(contact[i].numar, numar_stergere)&&strstr(contact[i].email, email_stergere))
{
for(int j=i; j<r; j++)
contact[j]=contact[j+1];
r--;
h=1;
}
if(h==1)
cout<<"Contactul a fost sters!"<<endl;
else
cout<<"\nDatele introduse nu sunt corecte sau contactul nu se afla in agenda telefonica. Puteti repeta incercarea alegand optiunea 2."<<endl;
}
int main()
{
int optiune;
cout<<"MENIU"<<endl;
cout<<"Daca doriti sa adaugati un contact apasati tasta: 1"<<endl;
cout<<"Daca doriti sa stergeti un contact apasati tasta: 2"<<endl;
cout<<"Daca doriti sa afisati lista de contacte apasati tasta: 3"<<endl<<endl;
citire(n);
sortare(n);
n++;
char tasta[]="da";
while(strchr(tasta,'da')||strchr(tasta,'DA')||strchr(tasta,'Da'))
{
cout<<"Optiunea este: ";
cin>>optiune;
switch (optiune)
{
case 1:
{
adaug(n);
sortare(n);
break;
}
case 2:
{
stergere(n);
sortare(n);
break;
}
case 3:
{
afisare(n);
break;
}
}
cout<<"Doriti sa alegeti alta optiune? Daca da, tastati <<da>>. "<<endl;
cin>>tasta;
}
return 0;
}