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(); 
  } 
}