www.pudn.com > v4670_flight.rar > Book.c
/*Please run Chinese a system,then you can read the comment. */ /* 文件名: book.c 说明: 订票系统模块 作者: 01090B1 赵晋辉 4号 创建日期:2003/7/3 修改日期:2003/7/9 */ #include#include #include "datatype.h" #include "book.h" void Book(FLIGHT fltlist[], PNODE psglist) { char c = 'y'; BOOL b; while (c == 'y' || c == 'Y') { int i; PASSENGER psg; printf("请输入航班号:"); scanf("%d", &psg.m_fltno); while (psg.m_fltno >= 10000 || psg.m_fltno < 0) { printf("请重新输入:"); scanf("%d", &psg.m_fltno); } for(i = 0; i < 40; i++) { if(fltlist[i].m_fltno == psg.m_fltno) { PNODE p; BOOL *q; int j; printf("请输入订票日期:(yyyy,mm,dd)"); scanf("%d,%d,%d", &psg.m_Date.m_year, &psg.m_Date.m_month, &psg.m_Date.m_day); q = NEW(int, fltlist[i].m_people); for (j = 0; j < fltlist[i].m_people; j++) q[j] = FALSE; for (p = psglist->next; p != NULL; p = p->next) { if(datecmp(&p->m_psg.m_Date, &psg.m_Date) && psg.m_fltno == p->m_psg.m_fltno) q[p->m_psg.m_seatno - 1] = TRUE; } printf("以下座位尚未有人订:"); for (j=0; j < fltlist[i].m_people; j++) { if (!q[j]) printf("%d ", j + 1); } printf("\n请输入订票座位号:"); scanf("%d", &psg.m_seatno); b = FALSE; do { int k; if (psg.m_seatno > 0 && psg.m_seatno <= fltlist[i].m_people + 1) { if (!q[psg.m_seatno - 1]) { b = TRUE; break; } else printf("这个座位有人了!"); } else printf("数据非法!"); scanf("%d", &psg.m_seatno); } while (!b); printf("请输入乘客姓名:") ; scanf("%s", psg.m_szName); printf("请输入乘客单位:"); scanf("%s", psg.m_szCorp); printf("请输入乘客身份证号:"); scanf("%s", psg.m_szNumber); AddPassenger(psglist, &psg); printf("您的订票已成功。"); free(q); } } c = getchar(); } }