【簡介:】本篇文章給大家談談《飛機訂票程序》對應的知識點,希望對各位有所幫助。本文目錄一覽:
1、飛機訂票系統(tǒng)設計 c語言
2、國內的C艙是什么艙位,和F有區(qū)別嗎
3、c語言如何編寫
本篇文章給大家談談《飛機訂票程序》對應的知識點,希望對各位有所幫助。
本文目錄一覽:
飛機訂票系統(tǒng)設計 c語言
(已修改,請用最新的代碼)代碼說明:
1級菜單:選擇購買的航班號,并顯示對應座位狀態(tài)。
(我只做測試,所以初始化initFlight函數(shù)中我只初始了2個航班,需要自己按照我的代碼添)
(注意:實際開發(fā)軟件,鏈表數(shù)據是從數(shù)據庫中讀取的,需要實時同步,如果要多次調用initFlight函數(shù),記得自己寫一個釋放內存的函數(shù),把所有鏈表“SINFO和FLINFO”節(jié)點都釋放掉,釋放函數(shù)我沒寫,需要你自己寫?。。。?/p>
2級菜單:選擇購買對應座位號,完成購買,并實時顯示購買結果。
位置編號、座位最大排數(shù)、艙室類型、折扣等參數(shù)均由常量參數(shù)空值,需要修改自行改常量。
注意:艙室類型(我默認3個類型頭等艙、公務艙、經濟艙)對應折扣參數(shù):tDiscount二維數(shù)組。如要如要添加新的艙室類型,必須將參數(shù)常量TYPESIZE、typeName、types、tDiscount這4個同時修改,具體看代碼備注??!
座位票價=基礎票價*類型折扣*時段折扣。
因為飛機不讓吸煙,所以我沒做吸煙區(qū)(笑),如果你需要,可以作為類型自行添加!
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#includemalloc.h
#includetime.h
//-----------------------相關參數(shù),想改變,在這里修改?。。。。。?!-----------------------------
constfloattimeDiscount=1;//時段折扣,影響所有航班最終價格,默認1
constcharcID[5]="ABCD";//位置編號
constintmaxRow=20;//位置最大排號
//注意:如果修改類型數(shù)量,types和tDiscount必須同時修改?。?!
#defineTYPESIZE3//類型數(shù)量
constchartypeName[TYPESIZE][10]={"頭等艙","公務艙","經濟艙"};
constinttypes[TYPESIZE][2]={{1,2},{3,4},{5,20}};//排號對應類型。1~2排頭等艙,3~4排公務艙,5~20排經濟艙
constfloattDiscount[TYPESIZE]={1.5,1.3,1};//類型折扣。頭等艙1.5倍,公務艙1.3倍,經濟艙1倍
//-------------------------------------------------------------------------------
typedefstructseatInfo//座位信息,一條鏈表對應一個航班信息,鏈表順序從第一排左邊第一個開始往后A1~D1,A2~D2。。。
{
charcloID;//位置編號A、B、C、D
introw;//位置排號
inttype;//座位所屬類型:0:頭等艙、1:公務艙、2:經濟艙,不同類型對應不同的類型折扣tDiscount
intsell;//出售狀態(tài),0:未出售;1:已出售
structseatInfo*next;
}SINFO;
typedefstructflightInfo//航班信息
{
charfid[10];//航班號
time_ttfTime;//起飛時間
time_tldTime;//降落時間
chartoCity[20];//抵達城市
floattPrice;//基礎票價,不同位置具有不同折扣,座位票價=基礎票價*類型折扣*時段折扣
structflightInfo*next;
structseatInfo*sHead;//對應座位鏈表的頭節(jié)點
}FLINFO;
voidmeError(void*p);
SINFO*getSINFO();//獲取座位鏈表
//addFLINFO:添加航班信息鏈表的節(jié)點flinfoHead:頭節(jié)點(第一次傳NULL會自動生成),flinfoTail:尾節(jié)點,fNew:要添加的結構信息(成員指針無需賦值)
FLINFO*addFLINFO(FLINFO**ffHead,FLINFO*flinfoTail,FLINFOfNew);//返回尾節(jié)點
time_tgetTime_tfromStr(char*sTime);//將YYYY-MM-DDhh:mm:ss格式的時間字符串轉換成time_t型數(shù)值
FLINFO*initFlight();//初始化航班信息,返回航班鏈表頭節(jié)點,如果想手動輸入,請在這里添加?。。≌\浖_發(fā),這一步應該是從數(shù)據庫讀??!
char*getTString(structtm*tm0);//通過tm獲取時間字符串
voidshowSinfo(FLINFO*flinfo);//顯示航班對應座位信息
voidprintfFlinfo(FLINFO*flinfoHead);
FLINFO*selectFlinfo(FLINFO*flinfoHead,char*fid);//選擇航班號,返回節(jié)點
voidshowSinfo(FLINFO*flinfo);//顯示航班對應座位信息
SINFO*selectSinfo(FLINFO*flinfo,char*sid);//選擇座位,返回節(jié)點
intmain()
{
FLINFO*flinfoHead=initFlight(),*ffSelect=NULL;
SINFO*sfSelect=NULL;
charfid[10]={0},sid[10]={10};
while(1)
{
ffSelect=NULL;
sfSelect=NULL;
memset(fid,0,10);
memset(sid,0,10);
printfFlinfo(flinfoHead);
printf("請輸入要購買的航班號:");
scanf("%s",fid);
ffSelect=selectFlinfo(flinfoHead,fid);
if(!ffSelect)
{
printf("未找到對應航班,按任意鍵繼續(xù)-----\n");
getch();
system("cls");
continue;
}
system("cls");
printf("航班號:%s座位信息如下:\n",ffSelect-fid);
showSinfo(ffSelect);
printf("請輸入要購買的座位編號(輸入0返回主菜單):");
scanf("%s",sid);
if(!strcmp(sid,"0"))
{
system("cls");
continue;
}
else
{
sfSelect=selectSinfo(ffSelect,sid);
if(!sfSelect||sfSelect-sell)
{
printf("未找到對應座位或該座位已出售,請重新輸入!按任意鍵繼續(xù)-----\n");
getch();
system("cls");
continue;
}
printf("購買成功!按任意鍵繼續(xù)-----");
sfSelect-sell=1;
getch();
system("cls");
}
}
return0;
}
SINFO*selectSinfo(FLINFO*flinfo,char*sid)//選擇座位,返回節(jié)點
{
SINFO*sinfoHead=flinfo-sHead;
while(sinfoHead-next)
{
if(sinfoHead-next-cloID==sid[0]sinfoHead-next-row==atoi(sid+1))
returnsinfoHead-next;
sinfoHead=sinfoHead-next;
}
returnNULL;
}
voidshowSinfo(FLINFO*flinfo)//顯示航班對應座位信息
{
SINFO*sinfoHead=flinfo-sHead,*sfp=NULL;
inti,j,k,row=maxRow,clo=strlen(cID);
chartypeStr[10]={0};
for(i=0;irow;i++)
{
//---------讀取座位所屬艙室------------
memset(typeStr,0,10);
for(k=0;kTYPESIZE;k++)
if(i+1=types[k][0]i+1=types[k][1])
strcpy(typeStr,typeName[k]);
//--------------------------------------
printf("\n");
for(j=0;jclo;j++)
printf("-------------");
printf("\n");
sfp=sinfoHead;
for(j=0;jclo;j++)
{
printf("|%c%02d|",sfp-next-cloID,sfp-next-row);
sfp=sfp-next;
}
printf("\n");
sfp=sinfoHead;
for(j=0;jclo;j++)
{
printf("|%c|",sfp-next-sell?2:1);
sfp=sfp-next;
}
printf("\n");
sfp=sinfoHead;
for(j=0;jclo;j++)
{
printf("|%6s:%4.0f|",typeStr,flinfo-tPrice*tDiscount[sfp-next-type]*timeDiscount);
sfp=sfp-next;
}
printf("\n");
sinfoHead=sfp;
}
for(j=0;iclo;j++)
printf("-------");
printf("\n");
}
FLINFO*selectFlinfo(FLINFO*flinfoHead,char*fid)//選擇航班號,返回節(jié)點
{
while(flinfoHead-next)
{
if(!strcmp(flinfoHead-next-fid,fid))
returnflinfoHead-next;
flinfoHead=flinfoHead-next;
}
returnNULL;
}
voidprintfFlinfo(FLINFO*flinfoHead)
{
while(flinfoHead-next)
{
printf("目的地:%s,航班號:%s\n----起飛時間:%s,抵達時間:%s\n\n",flinfoHead-next-toCity,flinfoHead-next-fid,getTString(localtime(flinfoHead-next-tfTime)),getTString(localtime(flinfoHead-next-ldTime)));
flinfoHead=flinfoHead-next;
}
}
char*getTString(structtm*tm0)//通過tm獲取時間字符串
{
char*str=(char*)malloc(sizeof(char)*20),num[5]={0};
meError(str);
memset(str,0,20);
sprintf(num,"%4d",tm0-tm_year+1900);
strcat(str,num);
strcat(str,"-");
memset(num,0,5);
sprintf(num,"%02d",tm0-tm_mon);
strcat(str,num);
strcat(str,"-");
memset(num,0,5);
sprintf(num,"%02d",tm0-tm_mday);
strcat(str,num);
strcat(str,"");
memset(num,0,5);
sprintf(num,"%02d",tm0-tm_hour);
strcat(str,num);
strcat(str,":");
memset(num,0,5);
sprintf(num,"%02d",tm0-tm_min);
strcat(str,num);
strcat(str,":");
memset(num,0,5);
sprintf(num,"%02d",tm0-tm_sec);
strcat(str,num);
returnstr;
}
time_tgetTime_tfromStr(char*sTime)//將YYYY-MM-DDhh:mm:ss格式的時間字符串轉換成time_t型數(shù)值
{
time_trt;
structtm*tm1=NULL;
rt=time(NULL);
tm1=localtime(rt);
sscanf(sTime,("%4d-%2d-%2d%2d:%2d:%2d"),tm1-tm_year,tm1-tm_mon,tm1-tm_mday,tm1-tm_hour,tm1-tm_min,tm1-tm_sec);
tm1-tm_year-=1900;
tm1-tm_mon--;
rt=mktime(tm1);
returnrt;
}
FLINFO*initFlight()//初始化航班信息,返回航班鏈表頭節(jié)點,如果想手動輸入,請在這里添加!?。≌\浖_發(fā),這一步應該是從數(shù)據庫讀取!
{
FLINFO*ffHead=NULL,*flinfoTail=NULL,fNew;
//--------添加一個航班信息----需要增加按照我下面調用方式寫--------------------------------
strcpy(fNew.fid,"CI502");
fNew.tfTime=getTime_tfromStr("2019-02-2003:30:30");
fNew.ldTime=getTime_tfromStr("2019-02-2005:20:30");
strcpy(fNew.toCity,"臺北");
fNew.tPrice=1000;
fNew.next=NULL;
flinfoTail=addFLINFO(ffHead,flinfoTail,fNew);
//--------------------------------------------------------------------------------------------
strcpy(fNew.fid,"9C8921");
fNew.tfTime=getTime_tfromStr("2019-02-2014:30:30");
fNew.ldTime=getTime_tfromStr("2019-02-2016:40:30");
strcpy(fNew.toCity,"香港");
fNew.tPrice=500;
fNew.next=NULL;
flinfoTail=addFLINFO(ffHead,flinfoTail,fNew);
returnffHead;
}
FLINFO*addFLINFO(FLINFO**ffHead,FLINFO*flinfoTail,FLINFOfNew)//返回尾節(jié)點
//添加航班信息鏈表的節(jié)點flinfoHead:頭節(jié)點(第一次傳NULL會自動生成),flinfoTail:尾節(jié)點,fNew:要添加的結構信息(成員指針無需賦值)
{
FLINFO*flinfoHead=*ffHead;
if(flinfoHead==NULL)
{
*ffHead=(FLINFO*)malloc(sizeof(FLINFO));
flinfoHead=*ffHead;
meError(flinfoHead);
flinfoHead-next=NULL;
}
FLINFO*flinfoNew=(FLINFO*)malloc(sizeof(FLINFO));
meError(flinfoNew);
flinfoNew-next=NULL;
flinfoNew-fid[0]=0;
strcpy(flinfoNew-fid,fNew.fid);
flinfoNew-ldTime=fNew.ldTime;
flinfoNew-tfTime=fNew.tfTime;
flinfoNew-toCity[0]=0;
strcpy(flinfoNew-toCity,fNew.toCity);
flinfoNew-tPrice=fNew.tPrice;
flinfoNew-sHead=getSINFO();
if(flinfoHead-next==NULL)
flinfoHead-next=flinfoNew;
else
flinfoTail-next=flinfoNew;
flinfoTail=flinfoNew;
returnflinfoTail;
}
SINFO*getSINFO()//獲取座位鏈表
{
intmaxClo=strlen(cID),cnt=maxClo*maxRow,clo=0,row=1,i;
SINFO*sinfoHead=(SINFO*)malloc(sizeof(SINFO)),*sinfoTail=NULL;
meError(sinfoHead);
sinfoHead-next=NULL;
SINFO*sinfoNew=NULL;
while(cnt--)//按順序生成對應數(shù)量的座位鏈表
{
if(clo==maxClo)
clo=0,row++;
if(row==maxRow+1)
row=1;
sinfoNew=(SINFO*)malloc(sizeof(SINFO));
meError(sinfoNew);
sinfoNew-cloID=cID[clo];
sinfoNew-row=row;
for(i=0;iTYPESIZE;i++)
if(row=types[i][0]row=types[i][1])
{
sinfoNew-type=i;
break;
}
sinfoNew-sell=0;
sinfoNew-next=NULL;
if(sinfoHead-next==NULL)
sinfoHead-next=sinfoNew;
else
sinfoTail-next=sinfoNew;
sinfoTail=sinfoNew;
clo++;
}
returnsinfoHead;
}
voidmeError(void*p)//內存申請失敗
{
if(p==NULL)
{
printf("\n異常:內存申請失??!回車結束程序!\n");
while(getch()!='\r');
exit(0);
}
}
國內的C艙是什么艙位,和F有區(qū)別嗎
F艙為頭等艙公布價,
C艙為公務艙公布價。
機票中艙位的不同:
只有三種艙位,頭等艙、公務艙和經濟艙,對于普通旅客來講前兩種艙位是不打折的,而這個所謂艙位用旅客的話講就是對應的折扣,對于售票處不同的折扣用不同的艙位表示以但于其訂座,代表字母分別是F和C,這三種艙位根據位置空間的大小和服務的不同而區(qū)分;而通常所說的折扣機票,是一種抽象的概念。
實際在飛機上海南航空的Q艙代表的是經濟艙六折艙位
經濟艙里面又分不同的座位等級(艙位代碼為B,價格也不一樣)折扣艙依次往下排列,這些價格雖然都屬于經濟艙,這種代碼每個航空公司的標識都不相同、E不等;
1、國際客票的艙位等級主要分為頭等艙(艙位代碼為F A)、公務艙(艙位代碼為C)、M、X、經濟艙(艙位代碼為Y)、公務艙(艙位代碼為C D J)。但是在大多數(shù)航線上會以5.5折的價格出售,顯示為Q1.
2、國內客票的艙位等級主要分為頭等艙(艙位代碼為F)、H、L,但是低艙位的價格享受的服務和高艙位的不大一樣,最明顯的就是提前預訂機上座位與餐食服務(意思就是即使是提前預訂好了座位與餐食、經濟艙(艙位代碼為Y),也有不能退票的規(guī)定、K頭等艙與經濟艙有著實質的不同。
像波音737、757這樣的飛機,頭等艙一排4個座位,經濟艙一排六個座位,可見頭等艙是寬座位的。另外頭等艙餐飲也要比經濟艙好許多,報刊雜志也豐富些,空姐對頭等艙的旅客服務要更周到、完美些。在飛行過程中頭等艙與經濟艙用一塊布簾隔離開。
經濟艙再分成幾個艙,那只是概念上的,沒有實質性的不同,整個飛行過程一切待遇都是一樣的。只因購票時的折扣價不同而分的艙位,而折扣票也僅是退票、延期、簽轉等有較多的限制。
c語言如何編寫飛機訂票系統(tǒng)?
#includestdio.h
#includestring.h
#includeconio.h
#includectype.h
#includestdlib.h
#includemalloc.h
#includemath.h//overflow
#defineok1
typedefstructYidingkehu
{//單鏈表
charname[15];//已訂票的客戶姓名
intdingpiaoshu;//已訂票數(shù)量
structYidingkehu*next1;//
}Yidingkehu,*Link;
typedefstructWeidingkehu
{//單鏈隊
charname[15];//預訂票的客戶姓名
intyudingpiao;//要訂票數(shù)量
structWeidingkehu*next2;//下一個鏈隊結點指針
}Weidingkehu,*Qptr;
typedefstructHangxian
{//創(chuàng)建一個含有六個信息的結構體
charhangbanhao[15];//航班號-
charfeijihao[15];//飛機號
intfeixingriqi;//起飛時間
intchenkerenshu;//座位數(shù)
intyupiao;//余票
charzhongdianzhai[15];//降落城市
structHangxian*next;//指向下一個鏈結點的指針
structYidingkehu*yiding;//定義一個指向已訂票客戶的頭結點指針
structWeidingkehu*yudingqueue;
}Hangxian,*Linklist;
LinklistInitLinklist();//01
intInsertLinklist(Linklisthead1);//02
voidhbhchaxun();//通過航班號查詢
voidmddchaxun();//通過目的地查詢
voidlurugongneng();//初始化錄入功能
voidchaxungongnen();//查詢功能
voiddingpiaogongnen();//訂票功能
voidtuipiaogongnen();//退票功能
voidmain()
{
intn;
do{//打印主界面
printf("\t歡迎使用航空客運訂票系統(tǒng)\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1.錄入功能==\n");
printf("\t==2.查詢功能==\n");
printf("\t==3.訂票功能==\n");
printf("\t==4.退票功能==\n");
printf("\t==5.退出==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請選擇:");
scanf("%d",n);printf("\n");
switch(n)
{
case1:lurugongneng();//錄入功能
break;
case2:chaxungongnen();//查詢功能
break;
case3:dingpiaogongnen();//訂票功能
break;
case4:tuipiaogongnen();//退票功能
break;
default:exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
voidlurugongneng()//初始化的單鏈表*********************************************************錄入功能
{
Linklistp;
//intm,n;
if(!p)exit(OVERFLOW);
printf("\t請依次輸入下面幾項內容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xiàn)象
printf("航班號\n");
gets(p-hangbanhao);//這里的二個gets主要是因為在回車鍵的輸入,其中的第一個是來接收上次的回車
gets(p-hangbanhao);
printf("飛機號\n");
gets(p-feijihao);
printf("終點站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
voidchaxungongnen()//******************************************************************查詢功能
{
intn;
printf("\t查找航線信息\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1.通過目的地查詢==\n");
printf("\t==2.通過航班號查詢==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case1:mddchaxun();
break;
case2:hbhchaxun();
break;
default:break;
}
}
voidmddchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=L;
printf("\t請輸入要查詢的目的地:");
gets(c);
gets(c);//原因同上
do{
p=p-next;
if(p)
{
m=strcmpi((*p).zhongdianzhai,c);//如果==的話則m=0;
if(m==0)
{
printf("\t航班信息:\n");
printf("\t航班號:%s\n",p-hangbanhao);
printf("\t飛機號:%s\n",p-feijihao);
printf("\t飛行時間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對不起沒有你要找的目的地:\n\n");m=0;
}
}while(m!=0);
}
voidhbhchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=L;
printf("\t請輸入要查詢的航班號:");
gets(c);gets(c);printf("\n");
do{
p=p-next;
if(p)
{
m=strcmpi((*p).hangbanhao,c);//如果==的話則m=0;這里的(*p).與p-的作用是一樣的
if(m==0)
{
printf("\t航班信息:\n");
printf("\t航班號:%s\n",p-hangbanhao);
printf("\t飛機號:%s\n",p-feijihao);
printf("\t飛行時間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對不起沒有你要找的航班號:\n");m=0;
}
}while(m!=0);
}
voiddingpiaogongnen()//***************************************************************訂票功能
{
charc[15];
intm=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請輸入終點站名:");gets(c);printf("\n");
p=L-next;
if(p){
do{//查找一下,是否有這個航班
if(!p)
{
printf("對不起,沒有你要找的航班:\n\n");
gotoloop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號:%s\n",p-hangbanhao);
printf("飛機號:%s\n",p-feijihao);
printf("飛行時間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
elsep=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請輸入你要訂的票數(shù):");scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(structYidingkehu*)malloc(sizeof(Yidingkehu));
printf("請輸入你的名字:");
gets(h-name);gets(h-name);
h-dingpiaoshu=piao;
h-next1=h1-next1;
h1-next1=h;
p-yupiao=p-yupiao-piao;
printf("訂票成功:\n");m=2;
}
}
else
{
printf("余票量:%d\n",p-yupiao);
printf("對不起,余票%d張不足,不能完成訂票\n\n",p-yupiao);
printf("是否要重新訂票?\n");
printf("需要請輸入1否則請按2預訂請輸入3:");
scanf("%d",m);
printf("\n");
if(m==3)gotoloop3;
}
}while(m==1);
}
}
elseif(!p)
{
loop3:structWeidingkehu*q3;
printf("對不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear)printf("沒有人預訂票,是否要預訂?\n");
elseif(q.front!=q.rear)printf("已有人預訂票,是否要預訂?\n");
printf("預訂請輸入1否則輸入2:");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請輸入你的姓名");gets(q3-name);gets(q3-name);//q3不能指向name???
printf("請輸入訂票數(shù)");scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf("你已經預訂了!\n");
}
}
loop1:;
}
voidtuipiaogongnen()//***************************************************************退票功能
{
}
///////////以下是人家的要求//////////
1、本系統(tǒng)采用一個包含N個數(shù)據的結構體數(shù)組,每個數(shù)據的結構應當包括:起飛地、目的地航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。
2、本系統(tǒng)顯示這樣的菜單:
(1)輸入航班信息
(2)輸出航班信息
(3)查找航班信息
a.顯示空座的數(shù)量
b.顯示空座的信息
c.顯示已訂座的信息
d.起飛時間
(4)訂票預約
(5)刪除定票預約
(6)退出系統(tǒng)
1、本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。
2、查找航班信息既可按線路查,也可按目的地查。
4、在兩次運行之間,數(shù)據被保存于一個文件里,當本程序重新開
始的時候,它首先從該文件讀入數(shù)據
關于《飛機訂票程序》的介紹到此就結束了。