Quando avviene l'inserimento del nuovo iscritto viene immesso in input la data dell'iscrizione e il prezzo pagato.
Qui precisamente
void inserisci_ingresso()
{
Ingressi e;
Ingressi eTemp;
FILE *fIng; //file corso
FILE *fInd; //file indice del corso
printf("Numero: ");
scanf("%d", &e.numero);
printf("Nome: ");
scanf("%s", &e.nome);
printf("Cognome: ");
scanf("%s", &e.cognome);
printf("Data: ");
scanf("%s", &e.data_ingresso);
printf("Ora di ingresso(HH:MM): ");
scanf("%s", &e.ora_ingresso);
printf("Ora di uscita(HH:MM): ");
scanf("%s", &e.ora_uscita);
e.cancellato = 0;
int cont = 0;
fIng = fopen(ingressoAperto,"r+b");
fread(&eTemp,sizeof(Ingressi),1,fIng);
while(eTemp.cancellato != 1)
{
fread(&eTemp,sizeof(Ingressi),1,fIng);
cont++;
}
int posInIngresso = cont;
fseek(fIng,cont * sizeof(Ingressi),0);
fwrite(&e,sizeof(Ingressi),1,fIng);
fclose(fIng);
Indice x;
Indice xTemp;
strcpy(x.chiave,e.cognome);
x.valore = e.numero;
fInd = fopen(indiceAperto,"r+b");
cont = 0;
fread(&xTemp,sizeof(Indice),1,fInd);
while(strcmp(xTemp.chiave,"VUOTO") != 0)
{
fread(&xTemp,sizeof(Indice),1,fInd);
cont++;
}
fseek(fInd,cont * sizeof(Indice),0);
fwrite(&x,sizeof(Indice),1,fInd);
fclose(fInd);
IndiceCodice y;
IndiceCodice yTemp;
y.chiave = e.numero;
y.valore = posInIngresso;
fInd = fopen(indiceCodiciAperto,"r+b");
cont = 0;
fread(&yTemp,sizeof(IndiceCodice),1,fInd);
while(yTemp.chiave != -1)
{
fread(&yTemp,sizeof(IndiceCodice),1,fInd);
cont++;
}
fseek(fInd,cont * sizeof(IndiceCodice),0);
fwrite(&y,sizeof(IndiceCodice),1,fInd);
fclose(fInd);
IndiceCodice ind[max];
fInd = fopen(indiceCodiciAperto,"rb");
int i;
for(i = 0; i < max; i++)
{
fread(&ind[i],sizeof(IndiceCodice),1,fInd);
}
fclose(fInd);
OrdinaIndiceCodici(ind,max);
fInd = fopen(indiceCodiciAperto,"wb");
for(i = 0; i < max; i++)
{
fwrite(&ind[i],sizeof(IndiceCodice),1,fInd);
}
fclose(fInd);
printf("Aggiornamento indici completato.\n");
}