void assign_seat(struct planestats p[], int n) { int number, seat; show_empty(p,n); puts("Enter the seat ID (1 ~ 12) you choice:"); while(scanf("%d",&number) != 1 || number < 1 || number > 12) { scanf("%*s"); puts("Enter number (1 ~ 12)"); } while(getchar() != '\n'); for(seat = 0; seat < n; seat++) if(p[seat].seat_id == number) { if(p[seat].status == TAKEN) printf("NO.%d seat is already assigned!\n",p[seat].seat_id); else { puts("Enter firstname:"); gets(p[seat].first_name); puts("Enter lastname:"); gets(p[seat].last_name); p[seat].status = TAKEN; printf("assign NO.%d seat successfully!\n",p[seat].seat_id); } } }
int main(void) { struct planestats plane[SEATS]; int choice; int i; size_t size = sizeof(struct planestats); FILE *fp; if((fp = fopen("air.dat","rb")) == NULL) { fprintf(stderr, "Can't open file %s","air.dat\n"); if((fp = fopen("air.dat","wb")) == NULL) { exit(1); } for(i = 0; i < SEATS; i++) { plane[i].seat_id = i + 1; plane[i].status = 0; } fwrite(plane, size , SEATS, fp); puts("We created the file air.dat now."); exit(1); } for(i = 0; i < SEATS; i++) { plane[i].seat_id = i + 1; plane[i].status = 0; } fread(plane, size , SEATS, fp); fclose(fp); while((choice = getmenu()) != 'f') { switch(choice) { case 'a': printf("%d seat is empty!\n",empty_seat(plane,SEATS)); break; case 'b': show_empty(plane,SEATS); break; case 'c': show_seats(plane,SEATS); break; case 'd': assign_seat(plane,SEATS); break; case 'e': delet_seat(plane,SEATS); break; } } if((fp = fopen("air.dat","wb")) == NULL) { fprintf(stderr, "Can't open file %s","air.dat"); exit(1); } fwrite(plane, size , SEATS, fp); fclose(fp); puts("Bye!"); return 0; }
int main(void) { struct seat seats[12]; struct seat temp; FLAG select; FILE * fp; int pointer; int i; char seat_no = 1, key = 'L'; for(i = 0; i < 12; i++, seat_no++) { seats[i].isAssigned = 0; seats[i].first_n[0] = '\0'; seats[i].last_n[0] = '\0'; if(i == 6) { key = 'R'; seat_no = 1; } sprintf(seats[i].seat_num, "%c%d", key, seat_no); } if((fp = fopen("seats.bin", "rb")) == NULL) { fclose(fp); if((fp = fopen("seats.bin", "wb")) == NULL) { puts("Fail to create \"seats.bin\" file."); exit(EXIT_FAILURE); } fclose(fp); } else { while(fread(&temp, sizeof(struct seat), 1, fp) == 1) { /* if(seats[i].seat_num[0] == 'L') pointer = atoi(&seats[i].seat_num[1]) - 1; else pointer = 5 + atoi(&seats[i].seat_num[1]); statuses[pointer].isUsed = 1; i++; */ if(temp.seat_num[0] == 'L') pointer = atoi(&temp.seat_num[1]) - 1; else pointer = 5 + atoi(&temp.seat_num[1]); seats[pointer] = temp; } /*while(i < 12) { if(seats[i].isAssigned = 0) for(int j = 0; j < 12; j++) { if(statuses[j].isUsed == 0) { strcpy(seats[i].seat_num, statuses[j].seat_num); break; } } i++; } */ } menu(); while(select = getchar()) { fflush(stdin); switch(select) { case 'a': show_empty(seats); break; case 'b': show_list(seats); break; case 'c': show_alpha(seats); break; case 'd': add_cust(seats); break; case 'e': del_seat(seats); break; case 'f': return 0; } menu(); } }