Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ogni dipendente è
descritto dalle seguenti caratteristiche:
Dirigente (S/N)
Livello (valore da 1 a 7)
Ferie rimanenti
Stipendio
Acquisizione: prevede l’inserimento di un nuovo dipendente. Devono essere inserite le sole informazioni
necessarie e si deve ordinare in base al codice.
Modifica: prevede di modificare il livello e/o lo stipendio e/o le ferie di un dipendente di cui è fornito il
codice ed il dato utile all’aggiornamento (livello e stipendio per sostituzione, ferie per decremento).
Dirigenti: si deve costruire un vettore contenente il codice, l’anno di prima assunzione e lo stipendio dei
dirigenti. Si deve visualizzare il vettore ottenuto.
Analisi per ferie: si devono visualizzare Codice e Livello dei dipendenti che hanno ferie superiori ad un
valore fornito dall’utente.
Inizio anno: si deve sommare alle ferie di tutti i dipendenti un valore fornito dall’utente.
#include<string.h>
struct dipendente{
float stipendio;
};
struct acq_struct()
struct dipendente n;
scanf("%s",n.cod);
do{
scanf("%s"n.dirigente);
}while(n.dirigente!='S'&&n.dirigente!='N');
scanf("%d",&n.anno);
scanf("%d",&n.ferie);
scanf("%d",&n.livello);
scanf("%f",&n.stipendio);
return n;
struct nuovo{
char cod[11];
float stipendio;
int anno;
};
int flag,i;
do{
flag=0;
for(i=0;i<N-1;i++)
if(strcmp(D[N].cod,D[N+1].cod)>0)
aux=D[N];
D[N]=D[N+1];
D[N+1]=aux;
flag=1;
}while(flag==1);
int I=0,M,F;
do{
M=(I+F)/2;
if(strcmp(D[M].cod,codi)==0)
return M;
else
if(strcmp(D[M].cod, codi>0)
F=M-1;
else
I=M+1;
}while(I<=F);
return -1;
}
int main()
int scelta, i, N;
do{
printf("menu");
do{
scanf("%d",&scelta);
}while(scelta>7||scelta<1);
switch(scelta)
case 1:
{if(N<100)
D[N]=acq_struct()
N++;
bubble(N,D);
}else
printf("vettore pieno");
break;
case 2:
char codi[11],
int pos;
scanf("%s",cod);
pos=ricerca(codi,D,N)
if(pos=-1)
else
if(pos=N)
n--;
else
for(i=pos;i<N;i++)
D[i]=D[i+1];
}n--}
case 3:
char codice[11];
pos=ricerca(codice,D,N);
do{
scafn("%d",&risp);
}while(risp<1||risp>2);
if(risp=1)
scanf("%d",nlivello);
D[pos].livello=nlivello
} ...
case 4:
int k=0;
for(i=0;i<k;i++)
if(D[i].livello=='s');
{
strcpy(w[k].cod,D[i].cod);
w[k].anno=D[i].anno;
w[k].stipendio=D[i].stipendio;
k++;
for(i=0;i<k;i++)
case 5:
}while(scelta!=7)