typedef struct volo { char nome[20]; char cognome[20]; char data[16]; char codice[10]; int classe; // 1=first, 2=business, 3=economy char posto[4]; } t_volo;
int nonprenotati(t_volo v[], int n) { int num = 0; int i = 0; for(i=0; i<n; i++) { if (strcmp(v[i].posto,"") == 0) { num++; } } return num; }
void ordinaprenotazioni(t_volo v[], int n, t_volo p[], int *m) { int i,j; *m=n; for(i=0; i<n; i++) { p[i] = v[i]; } for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { // scambio se non ordinati if (p[i].classe > p[j].classe) { t_volo app = p[i]; p[i] = p[j]; p[j] = app; } } } }
void esporta(char *nomefile, t_volo v[], int n) { if (strlen(nomefile) > 0) { FILE *f; f = fopen(nomefile, "wb"); if (f != NULL) { int i; for(i=0; i<n; i++) { fwrite(&v[i], sizeof(t_volo), 1, f); } } fclose(f); } }
void importa(char *nomefile, t_volo v[], int *n) { if (strlen(nomefile) > 0) { FILE *f; f = fopen(nomefile, "r"); if (f != NULL) { int i = 0; while(fscanf(f, "%[^;];%[^;];%[^;];%[^;];%d;%[^;];\n", v[i].nome, v[i].cognome, v[i].data, v[i].codice, &v[i].classe, v[i].posto) != EOF) { i++; } *n = i; } fclose(f); } }