raga sto impazzendo il 9 ho un esame sto costruendo un programma che gestisce dei treni e informazionei sono contenute in un file di record con i seguenti componenti :Codice del treno,Data di partenza,Ora di partenza,Numero di posti liberi in prima classe,numero di posti prenotati in prima classe,prezzo biglietto prima classe,numero posti liberi seconda classe,numero posti prenotati seconda classe,prezzo seconda classe.devo costruire le funzioni di inserimento calcellazione e di aggiornamento di un record ed in piu' devo fare delle funzioni prenota e cancella posto ...ho iniziato a fare il programma ma non so come costruire la funzione aggiorna e cancella record...mi date una mano?!?!??!

questo e' il codice che ho abbozzato per il momento:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

typedef struct{
char codiceTreno[10];
char cittaPartenza[15];
char dataPartenza[10];
char oraPartenza[10];
char cittaArrivo[15];
char dataArrivo[10];
char oraArrivo[10];
int numPostiPrenPclasse;
int numPostiLibPclasse;
float prezzo1;
int numPostiPrenSclasse;
int numPostiLibSclasse;
float prezzo2;
}tipoTreno;

int leggiRecord(tipoTreno tren);
void svuotabuffer();
int inserisciTreno(tipoTreno *tren, tipoTreno treno, FILE *alfa, FILE *temp);
int main(void)
{
int i=0; //contatore ciclo for del numero di treni
int totTreni; //numero totale di treni
tipoTreno treno; //record del treno
FILE*alfa; //file binario destinazione record treni
char nomeAlfa[]="treni.dat"; //nome del file di destinazione dei record
int controllo; //selezione del menu' iniziale



//selezione del menu' switch
printf("\n\n-----scegli tra le seguenti opzioni--------\n");
printf("1.riscrivi i treni\n2.visualizza treni\n::::");
scanf("%d",&controllo);



//inizio dello switch
switch(controllo)
{
//inserimento dei treni
case 1:
printf("quanti treni vuoi inserire?");
scanf("%d",&totTreni);
alfa=fopen(nomeAlfa,"wb");

//inizio del ciclo for per l'inserimento dei record
for(i=0;i<totTreni;i++)
{
printf("----INSERISCI IL %d TRENO----",i+1);
inserisciTreno(&nuovotreno,treno,alfa,temp);

fwrite(&treno,sizeof(tipoTreno),1,alfa);

}
fclose(alfa);

break;


//lettura dei record contenuti nel file treni.dat
case 2:
alfa=fopen(nomeAlfa,"rb");

while(!feof(alfa))
{
fread(&treno,sizeof(tipoTreno),1,alfa);
leggiRecord(treno);
}

fclose(alfa);

printf("\n\n\n");
system("PAUSE");
return(0);
}


//funzione inserimento record
int inserisciTreno(tipoTreno*tren, tipoTreno treno,FILE *alfa, FILE *temp)
{

svuotabuffer();
printf("\ninserisci il codice del treno:");
gets(tren->codiceTreno);
printf("inserisci la citta' di partenza:");
gets(tren->cittaPartenza);
printf("inserisci la data di partenza:");
gets(tren->dataPartenza);
printf("inserisci l'ora di partenza:");
gets(tren->oraPartenza);
printf("inserire la citta' di arrivo:");
gets(tren->cittaArrivo);
printf("inserisci la data di arrivo:");
gets(tren->dataArrivo);
printf("inserisci l'ora di arrivo:");
gets(tren->oraArrivo);
printf("inserisci il numero di posti prenotati in prima classe:");
scanf("%d",&tren->numPostiPrenPclasse);
printf("inserisci il numero di posti liberi in prima classe:");
scanf("%d",&tren->numPostiLibPclasse);
printf("inserire il prezzo del biglietto in prima classe:");
scanf("%f",&tren->prezzo1);
printf("inserisci il numero di posti prenotati della seconda classe:");
scanf("%d",&tren->numPostiPrenSclasse);
printf("inserire il numero di posti liberi della seconda classe:");
scanf("%d",&tren->numPostiLibSclasse);
printf("inserisci il prezzo del biglietto in seconda classe:");
scanf("%f",&tren->prezzo2);

}



//funzione lettura record
int leggiRecord(tipoTreno tren)
{
printf("\ncodice del treno:%s",tren.codiceTreno);
printf("\ncitta' di partenza:%s",tren.cittaPartenza);
printf("\ndata di partenza:%s",tren.dataPartenza);
printf("\nora di partenza:%s",tren.oraPartenza);
printf("\ncitta' di arrivo:%s",tren.cittaArrivo);
printf("\ndata di arrivo:%s",tren.dataArrivo);
printf("\nora di arrivo:%s",tren.oraArrivo);
printf("\nnumero posti prenotati prima classe:%d",tren.numPostiPrenPclasse);
printf("\nnumero di posti liberi prima classe:%d",tren.numPostiLibPclasse);
printf("\nprezzo biglietto prima classe:%f",tren.prezzo1);
printf("\nnumero posti prenotati seconda classe:%d",tren.numPostiPrenSclasse);
printf("\nnumero posti liberi seconda classe:%d",tren.numPostiLibSclasse);
printf("\nprezzi biglietto seconda classe:%f",tren.prezzo2);


}



//funzione svuotabuffer
void svuotabuffer()
{ char scarta;
do
{
scanf("%c",&scarta);
}while(scarta!='\n');}

}