Anteprima
Vedrai una selezione di 1 pagina su 4
Informatica - Esercitazioni Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

#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);

}

Dettagli
Publisher
A.A. 2010-2011
4 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher trick-master di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Ascia Giuseppe.