vuoi
o PayPal
tutte le volte che vuoi
#include <stdio.h>
struct dip {
char nominativo[40];
long matricola;
char data[12];
float stipendio;
int tipomansione;
};
void inserimento( struct dip *V, int *pn)
{ struct dip d;
/*lettura elemento*/
printf("Nominativo: ");
scanf("%s",d.nominativo);
printf("Matricola: ");
scanf("%ld",&d.matricola);
printf("Data nascita (gg/mm/aaaa): ");
scanf("%s",d.data);
printf("Stipendio mensile: ");
scanf("%f",&d.stipendio);
printf("Tipo mansione: ");
scanf("%d",&d.tipomansione);
/* Inserimento se il vttore non e' pieno*/
if(*pn<40) /* Vettore non pieno */
{ V[*pn]=d;
(*pn)++;
}
else printf("Vettore pieno\n");
}
void visualizza(struct dip *V, int n)
{ int i,mansione;
printf("Tipo mansione: ");
scanf("%d",&mansione);
for(i=0;i<n;i++)
if(V[i].tipomansione==mansione)
{ printf("Nominativo: %s\n",V[i].nominativo);
printf("Matricola: %ld\n",V[i].matricola);
printf("Stipedio: %f\n",V[i].stipendio);
}
}
void ricerca(struct dip *V,int n)
{ int tipomansione;
long matricola;
int i;
printf("Matricola: ");
scanf("%ld",&matricola);
printf("Tipo mansione: ");
scanf("%d",&tipomansione);
/* ricerca*/
for(i=0;i<n;i++)
if(V[i].tipomansione==tipomansione && V[i].matricola==matricola)
break;
if(i<n) /* trovato*/
{ printf("Nominativo: %s\n",V[i].nominativo);
printf("Matricola: %ld\n",V[i].matricola);
printf("Stipedio: %f\n",V[i].stipendio);
}
else printf("NON TROVATO\n");
}
void salva( struct dip *V, int n)
{ FILE *pf;
int i;
pf=fopen("dipendenti.dip","w");
if(pf!=NULL)
{ for(i=0;i<n;i++)
if(V[i].stipendio>1200)
fwrite(&V[i],sizeof(struct dip),1,pf);
fclose(pf);
}
else printf("ERRORE\n");
}
void inizializza(struct dip *V, int *pn)
{ struct dip d;
int i;
FILE *pf;
i=0;
pf=fopen("dipendenti.dip","r");
if(pf!=NULL)
{ while ( i< 40 && fread(&d,sizeof(struct dip),1,pf)>0)
{ V[i]=d;
i++;
}
fclose(pf);
}
else printf("ERRORE IN LETTURA\n");
*pn=i;
}
main() {
struct dip A[40];
int scelta,n;
inizializza(A,&n);
do{
printf("Scegli:\n");
printf("1) Inserimento\n2) Visualizzzione\n");
printf("3) Ricerca\n4) Salvataggio\n");
printf("0) Fine\n");
scanf("%d",&scelta);
switch(scelta) {
case 1: inserimento(A,&n);
break;
case 2: visualizza(A,n);
break;
case 3: ricerca(A,n);
break;
case 4: salva(A,n);
break;
default:;
}
} while(scelta !=0);
}