Академический Документы
Профессиональный Документы
Культура Документы
Damian Stefan
Rusu M.
Chisinau 2013
delete[] colab->nume;
colab->nume = NULL;
delete[] colab->spec;
colab->spec = NULL;
delete[] colab->cat;
colab->cat = NULL;
}
p = new char[20];
strcpy(p,"nume");
cout<<"\t ========================================\n";
cout<<"\t Se va afisa colaboratorii cu numele indicat de utilizator !\n\n";
cout<<"\t>>Introduceti numele colaboratorului dorit : ";cin>>p;
for (int i(0) ; i<n ; i++)
{
if (strcmp(colab[i].nume,p)==0)
{
cout <<"\t =================================\n";
cout <<"\t >>>Pentru colaboratorul N."<<i+1<<" avem datele:\n" ;
cout <<"\t+Numele colaboratorului : "<<colab[i].nume<<"\n";
cout <<"\t+Specialitatea colaboratorului : "<<colab[i].spec<<"\n";
cout <<"\t+Categoria colaboratorului : "<<colab[i].cat<<"\n";
cout <<"\t+Salariul : "<<colab[i].salariu<<"\n";
cout <<"\t =================================\n";getch();
y++;
}
}delete[] p;
if (y==0)
{cout <<"\tColaboratorul cautat nu exista !!!!";getch();}
}else {cout<<"\tIntii definiti colaboratorii !!!"; getch();}
}
void cautareColaboratorSpec(int n)
{
system("cls");
if (cr>0){
int y(0);
char *p;
p = new char[20];
strcpy(p,"nume");
cout<<"\t ========================================\n";
cout<<"\t Se va afisa colaboratorii cu specialitatea indicata de utilizator !\n\n";
cout<<"\t>>Introduceti specialitatea colaboratorului dorit : ";cin>>p;
for (int i(0) ; i<n ; i++)
{
if (strcmp(colab[i].spec,p)==0)
{
cout <<"\t =================================\n";
cout <<"\t >>>Pentru colaboratorul N."<<i+1<<" avem datele:\n" ;
cout <<"\t+Numele colaboratorului : "<<colab[i].nume<<"\n";
cout <<"\t+Specialitatea colaboratorului : "<<colab[i].spec<<"\n";
cout <<"\t+Categoria colaboratorului : "<<colab[i].cat<<"\n";
cout <<"\t+Salariul : "<<colab[i].salariu<<"\n";
cout <<"\t =================================\n";getch();
y++;
}
}delete[] p;
if (y==0)
1.Creation
2.Affichage
3.Modification
4.Comparaison
5.Recherche
Par le nom
Par la specialite
1. Crer type de donnes abstrait (structure) - vecteur qui comprend un pointeur sur
le long et le nombre d'lments. Pour dfinir des fonctions: initialisation, la
suppression d'un vecteur, d'activer / modifier la taille du vecteur, les lments
vectoriels d'accs, pour calculer le montant des lments positifs d'un vecteur. En
main d'illustrer la somme a deux vecteurs.
#include<iostream>
#include<string.h>
#include<windows.h>
#include<conio.h>
#include<stdlib.h>
using namespace std;
struct vectori
{ long *el;
int nr;
};
int y=1;
void setvalue(vectori* v, int n)
{
for(int i=0;i<n;i++)
{cout<<"\nVecteur "<<i+1<<endl;
cout<<"Donnez le nombre du element: ";
cin>>v[i].nr;
v[i].el=new long[v[i].nr];
cout<<"Donnez les elementes du vecteur: ";
for(int j=0;j<v[i].nr;j++)
cin>> v[i].el[j];
}
y=0;
}
void getvalue(vectori* v,int n)
{ if(y==0)
{for(int i=0;i<n;i++)
{ cout<<"\nVecteur "<<i+1<<endl;
for(int j=0;j<v[i].nr;j++)
cout<<" "<<v[i].el[j];
}}else cout<<"Le vecteur n'est pas cree.";
getch();
}
void calcul (vectori* v,int n)
{ int i,j,a[n];
for(i=0;i<n;i++)
a[i]=0;
for(i=0;i<n;i++)
for(j=0;j<v[i].nr;j++)
if(v[i].el[j]>0) a[i]=a[i]+v[i].el[j];
for(i=0;i<n;i++)
cout<<"\nLa somme du vecteur "<<i+1<<" : "<<a[i]<<endl;
cout<<"Si la somme est egal 0 le vecteur n'a pas des elementes +";
getch();
}
void modification(vectori* v)
{ int a,b,j,z;
cout<<"Quelle vecteur vous voulez modifier : ";
cin>> a;
int i[v[a-1].nr];
for(j=0;j<v[a-1].nr;j++)
i[j]=v[a-1].el[j];
cout<<"Donnez le nombre du element: ";
cin>> b;
if(v[a-1].nr>b) v[a-1].nr=b;
else {z=v[a-1].nr; v[a-1].nr=b;
v[a-1].el= new long[b];
cout<<"Donnez les elementes du vecteur: ";
for(j=z;j<b;j++)
cin>>v[a-1].el[j];
for(j=0;j<z;j++)
v[a-1].el[j]=i[j];
}
}
void elimenarea (vectori* v,int n)
{ int i;
for(i=0;i<n;i++)
{delete[] v[i].el;
v[i].el=NULL;}
y=1;
}
int main ()
{ int n,a;
cout<<"Donnez le nombre de vecteurs: ";
cin>> n;
vectori v[n];
while(1){ system("cls");
cout<<"1.Creation\n2.Affichage\n3.Modification\n4.Somme\n5.Supprimer\n6.Multiplication\n7.Sortir
\n";
cin>> a;
switch(a){
case 1 : setvalue(v,n);break;
case 2 : getvalue(v,n);break;
case 3 : modification(v);break;
case 4 : calcul(v,n);break;
case 5 : elimenarea(v,n);break;
case 6 :{cout<<"Donnez le numero du vecteur 1: ";
int b;
int m;
int l;
cin>> b;
cout<<"Donnez le numero du vecteur 2: ";
cin>>a;
if(v[a-1].nr<v[b-1].nr){
m=v[a-1].nr;
l=v[b-1].nr;
}else {
m=v[b-1].nr;
l=v[a-1].nr;
}
v[n].el=new long[l];
for(int i=0;i<m;i++)
v[n].el[i]=v[a-1].el[i]+v[b-1].el[i];
if(v[a-1].nr=l){
for(int i=m;i<l;i++)
v[n].el[i]=v[a-1].el[i];
}else{for(int i=m;i<l;i++)
v[n].el[i]=v[b-1].el[i];
}
for(int i=0;i<l;i++)
cout<<v[n].el[i]<<" ";
getch();
break;}
case 7 : exit(1);
}
}
}
1.Creation
2.Affichage
3.Modification
4.Somme
5.Somme vectoriale
6.Supprimer
programmation C++, j'ai tudi type de donnes abstrait (structure),les instructions new
et delete.