-
大小: 15KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2024-01-27
- 語言: C/C++
- 標(biāo)簽:
資源簡介
1. 查詢航線:根據(jù)旅客提出的終點名 輸出下列信息:終點站名,航班號,飛機號,星期幾,6. 乘員定額,余票量,已訂票的客戶名9.單(包括姓名,訂票量,航船艙等級1 2或3)以及等候替補的客戶名單姓名,需求量;
2.由于公司的發(fā)展添加航線,增加對某個地區(qū)的航班,和取消對某地的航班。
3.承辦訂票義務(wù):根據(jù)客戶提出的要求(航班號,訂票數(shù)額)查詢該航班票額情況,若尚有余票,則客戶辦理訂票手續(xù),輸出座位號;若已滿員或余票額少于訂票額,則需要重新詢問客戶要求。若需要,可登記排隊后補;
4.承辦退票業(yè)務(wù):根據(jù)客戶提供的情況為客戶辦理退票手續(xù),然后查詢該航班是否有人排隊后補,30.首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問排在他后面的候補客戶。
代碼片段和文件信息
#include?
#include
#include?
#include?
#include?
#define?TRUE???1
#define?FALSE??0
#define?OK?????1
#define?ERROR??0
#define?INFEASIBLE??-1
#define?OVERFLOW????-2
#define?MAXSIZE?2
#define?MAXCHAR?20
typedef?struct?PassengerNode????
{
??char??name[MAXCHAR];???
??char??ID[MAXCHAR];?????
??char??phoneno[20];?????
??int???booknum;????????
??int???grade;???????????
??PassengerNode?*next;
}PassengerNode;????//已訂票客戶結(jié)點
typedef?struct
?{
???PassengerNode?*passenger;
???int??????length;??//單鏈表的長度
}passengerlink;????//已訂票客戶單鏈表(按ID有序)
typedef?struct?WPassengerNode
{
??char??name[20];????//待訂票客戶的姓名
??char??ID[20];??????//待訂票客戶的身份證號
??char??phoneno[20];?//待訂票客戶電話號碼
??int????neednum;????//待訂票客戶機票需求量
??WPassengerNode?*next;
}WPassengerNode;???//待訂票客戶結(jié)點
typedef?struct?????
{???
????WPassengerNode?*front;
????WPassengerNode?*rear;
}WpassengerQueue;???//侍訂票客戶鏈隊列
typedef?struct?flightnode?
{?
??char??cityname[20];????//終點站名稱
??int????number;??????//航班編號
??char??flight_no[20];???//飛機編號
??int????weekday;?????//星期幾
??int????total;???????//飛機能載最大人數(shù)
??int????remain;??????//還余下多少張票
??flightnode????*next;
??WpassengerQueue??npassenger;??//侍訂票客戶鏈隊列
??passengerlink????passenger;???//已訂票客戶單鏈表??
}flightnode;//航班結(jié)點
typedef?struct
{
???flightnode?*flight;
???int??length;
}SqFlight;//航班順序線性表
int?InitList_Sq(SqFlight?&LF)????//構(gòu)造一個空的線性表LF
{
????LF.flight=(flightnode*)malloc(sizeof(flightnode));
????if(!LF.flight)exit(ERROR);
????LF.length=0;
????LF.flight->next=NULL;
????return(OK);
}//InitList_Sq
int?InitList_pa(passengerlink?&PA)??//為客戶鏈表建一個空鏈表
{?
????PA.passenger=(PassengerNode*)malloc(sizeof(PassengerNode));
????if(!PA.passenger)exit(ERROR);
????PA.length=0;
????PA.passenger->next=NULL;
????return(OK);
}//InitList_CL
int?InitList_WPQ(WpassengerQueue?&WPQ)//為待票客戶建一個空的隊列
{?
????WPQ.front=WPQ.rear=(WPassengerNode*)malloc(sizeof(WPassengerNode));
????if(!WPQ.front)exit(ERROR);
????WPQ.front->next=NULL;
????return(OK);
}//InitList_WCQ
int?InitFlightNode(SqFlight?&LF)?//對航線結(jié)點賦值并接到航班順序表
{??
????flightnode?*p;
????passengerlink?PAL1;
????InitList_pa(PAL1);
????WpassengerQueue?WPQ1;
????InitList_WPQ(WPQ1);
????p=(flightnode*)malloc(sizeof(flightnode));
if(!p){printf(“無法找到指向航線結(jié)點的指針\n“);exit(ERROR);}
????strcpy(p->cityname“連云港--北京“);????//頭結(jié)點賦值
????p->passenger=PAL1;
strcpy(p->flight_no“LYG127“);
????p->npassenger=WPQ1;
????p->number=747;
????p->remain=200;
????p->total=200;
????p->weekday=1;
p->next=LF.flight->next;
????LF.flight->next=p;
????p=(flightnode*)malloc(sizeof(flightnode));
????if(!p){printf(“申請不到航線結(jié)點\n“);exit(ERROR);}????
????passengerlink?PAL2;
????InitList_pa(PAL2);
????WpassengerQueue?WPQ2;
????InitList_WPQ(WPQ2);
????strcpy(p->cityname“連云港--北京“);?????//結(jié)點1賦值
????p->passenger=PAL2;
strcpy(p->flight_no“LYG225“);
????p->npassenger=WPQ2;
????p->number=380;
????p->remain=180;
????p->total=180;
????p-
評論
共有 條評論