-
大小: 16KB文件類型: .cpp金幣: 1下載: 0 次發布日期: 2024-02-01
- 語言: C/C++
- 標簽:
資源簡介
訂票系統(A類)
功能要求:
(1)錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)
(2)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);
可以輸入起飛抵達城市,查詢飛機航班情況;
(3)訂票:(訂票情況可以存在一個數據文件中,結構自己設定)
可以訂票,如果該航班已經無票,可以提供相關可選擇航班;
(4)退票: 可退票,退票后修改相關數據文件;
客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。
(5)修改航班信息:
當航班信息改變可以修改航班數據文件
代碼片段和文件信息
#include?“stdio.h“
#include?“stdlib.h“
#define?OK?????1
#define?ERROR??0
typedef?int?Status;
typedef?struct?ClientNode
{ //已訂票客戶結點
char??name[20];
char??ID[20];?????//客戶的身份證號
int???booknum;
int???grade;
ClientNode?*next;
}ClientNode;
typedef?struct?
{ //已訂票客戶單鏈表(按ID有序)
ClientNode?*client;
int??????length;
}Clientlink;
typedef?struct?WClientNode
{ //侍訂票客戶結點
char??name[20];
char??ID[20];
char??phoneno[15];
int????neednum;
WClientNode?*next;
}WClientNode;
typedef?struct
{ //侍訂票客戶鏈隊列
????WClientNode?*front;?//對頭指針
????WClientNode?*rear;??//隊尾指針
}WClientQueue;
typedef?struct?flightnode?
{ //航班結點
char??*airline;
int????number;
char??*flight_no;
int????weekday;
int????total;
int????remain;
flightnode????*next;
Clientlink????client;
WClientQueue??nclient;
}flightnode;
typedef?struct
{ //航班順序線性表
flightnode?*flight;
int??length;
}SqFlight;
Status?InitList_Sq(SqFlight?&LF)
{
????//構造一個空的線性表LF
????LF.flight=(flightnode*)malloc(sizeof(flightnode));?//數組指針指向flight指向線性表的基地址
????if(!LF.flight)
exit(ERROR);
????LF.length=0;
????LF.flight->next=NULL;
????return(OK);
}
Status?InitList_CL(Clientlink?&CL)
{ //為客戶鏈表建一個空鏈表
????CL.client=(ClientNode*)malloc(sizeof(ClientNode));
????if(!CL.client)
exit(ERROR);
????CL.length=0;
????CL.client->next=NULL;
????return(OK);
}
Status?InitList_WCQ(WClientQueue?&WCQ)
{ //為待票客戶建一個空的隊列
????WCQ.front=WCQ.rear=(WClientNode*)malloc(sizeof(WClientNode));
????if(!WCQ.front)
exit(ERROR);
????WCQ.front->next=NULL;
????return(OK);
}
Status?InitFlightNode(SqFlight?&LF)
{???//對航線結點賦值并接到航班順序表
????flightnode?*p*q;
????Clientlink?CL1;???????//訂票客戶
????InitList_CL(CL1);
????WClientQueue?WCQ1;
????InitList_WCQ(WCQ1);
????if(!LF.flight)
{
printf(“無法找到指向航線結點的指針\n“);
exit(ERROR);
}?
????LF.flight->airline=“Xiamen--Tokyo“;????//頭結點賦值
????LF.flight->client=CL1;
????LF.flight->flight_no=“FU127“;
????LF.flight->nclient=WCQ1;
????LF.flight->number=8427;
????LF.flight->remain=200;
????LF.flight->total=200;
????LF.flight->weekday=1;
????p=(flightnode*)malloc(sizeof(flightnode));
????if(!p)
{
printf(“申請不到航線結點\n“);
exit(ERROR);
}
????LF.flight->next=p;?????
????Clientlink?CL2;
????InitList_CL(CL2);
????WClientQueue?WCQ2;
????InitList_WCQ(WCQ2);
????p->airline=“Xiamen--Tokyo“;?????//結點1賦值
????p->client=CL2;
????p->flight_no=“BU127“;
????p->nclient=WCQ2;
????p->number=8757;
????p->remain=180;
????p->total=180;
????p->weekday=5;
????q=p;
????p=NULL;
????p=(flightnode*)malloc(sizeof(flightnode));
????if(!p)
{
printf(“申請不到航線結點\n“);
exit(ERROR);
}
????q->next=p;??????????
????Clientlink?CL3;
????InitList_CL(CL3);
????WClientQueue?WCQ3;
????InitList_WCQ(WCQ3);
????p->airline=“Fuzhou--Shenzhen“;??//結點2賦值
????p->client=CL3;
????p->flight_no=“FU786“;
????p->nclient=WCQ3;
????p->number=3216;
????p->remain=200;
????p->total=200;
????p->weekday=2;
????q=p;
????p=NULL;
- 上一篇:MFC實現的紅綠燈程序
- 下一篇:基于遺傳算法的機器人路徑規劃
評論
共有 條評論