【簡(jiǎn)介:】本篇文章給大家談?wù)劇稒C(jī)票預(yù)定系統(tǒng)代碼》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。本文目錄一覽:
1、飛機(jī)票訂票退票系統(tǒng)源程序代碼
2、誰(shuí)有關(guān)于航空公司訂票管理系統(tǒng)的c語(yǔ)言代碼
本篇文章給大家談?wù)劇稒C(jī)票預(yù)定系統(tǒng)代碼》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。
本文目錄一覽:
- 1、飛機(jī)票訂票退票系統(tǒng)源程序代碼
- 2、誰(shuí)有關(guān)于航空公司訂票管理系統(tǒng)的c語(yǔ)言代碼啊
- 3、C語(yǔ)言程序?qū)戯w機(jī)訂票系統(tǒng)
- 4、c語(yǔ)言編程:飛機(jī)訂票系統(tǒng),c++運(yùn)行
飛機(jī)票訂票退票系統(tǒng)源程序代碼
全國(guó)統(tǒng)一客服熱線:【400-889-3533】業(yè)務(wù)范圍:預(yù)訂/退票/改簽
您好!【400-889-3533】親,就打這個(gè)客服熱線,希望能幫到您。
百度安全認(rèn)證客服:【400-889-3533】業(yè)務(wù)范圍:預(yù)訂/退票/改簽
( 受理業(yè)務(wù):改簽-退票-訂票. ){400-889-3533}
請(qǐng)務(wù)必按照系統(tǒng)操作辦理!遵守訂票程序!感謝您的合作!
1、查詢某次航班的電子客票
2、務(wù)必將乘機(jī)人信息詳細(xì)準(zhǔn)確說(shuō)清楚
3、票款在銀行網(wǎng)站完成
4、工作人員為您成功下定單,然后提供航空局客運(yùn)部票務(wù)科指定帳戶給您支付票款。
5、在我們收到票款以后,會(huì)通過(guò)郵件或方式,把您的電子機(jī)票定單號(hào)發(fā)給您。
6、你可以根據(jù)發(fā)給您的電子票定單號(hào)在網(wǎng)上查詢您的信息。
7、訂票旅客持本人有效證件,提前30分鐘取票。
8、旅客必須在60分鐘內(nèi)支付票款;然后下定單否則系統(tǒng)就會(huì)凍結(jié)或取消您預(yù)訂的.
誰(shuí)有關(guān)于航空公司訂票管理系統(tǒng)的c語(yǔ)言代碼啊
沒(méi)分啊,那我就拷一個(gè)還看得過(guò)去的給你吧:
#includestdio.h
#includestring.h
struct inf
{
char name[20];
long ID;
};
struct inf T[3232];
void main()
{
int c,d2,g,h,h2,i,j,k,n2,n3,x,y,z;
int n4,n9,n55,add1,add5,add6,add7,add9;
long ID2,d1;
int n[3][7];
int k2[4][8];
char s[15];
char s2[15],s3[15];
char a,d,f,add2,add3,add4,add8,add10;
int l[3232]={0},a3[100],a4[100],p3[100],a7[100],s22[100];
int n5[100],n6[100],t2[100],p2[100],a2[100],s33[100],t3[100];
int n7[10][10][10];
for(i=0;i=2;i++)
for(j=0;j=6;j++)
n[i][j]=100;
/************************************開(kāi)頭****************************************************/
loop2:
printf("\n***************************************\n");
printf(" 歡迎使用航空售票系統(tǒng) \n");
printf("***************************************\n");
printf("\n1.訂票\n2.退票\n3.查票\n4.查詢\n5.退出\n");
printf("請(qǐng)輸入您的選擇(1-5):\n");
do{ scanf("%c",a);}
while(a!='1'a!='2'a!='3'a!='4'a!='5');
/********************************************訂票*******************************************/
if(a=='1')
{loop1:
{
printf("共有三個(gè)航班,請(qǐng)您輸入您的選擇(1-3):\n");
do{scanf("%d",i);}
while(i3||i1);
printf("請(qǐng)輸入你旅行的周日代碼(1-7):\n");
do{scanf("%ld",j);}
while(j7||j1);
printf("本航班當(dāng)天余票為%d張!\n",n[i-1][j-1]);
printf("\n請(qǐng)輸入您想訂的座位號(hào)(1-100):\n");
do{scanf("%d",k);}
while(k100||k1);
h=i+4*j+32*k;
while(l[h]==1)
{
do{printf("該票已經(jīng)被訂,請(qǐng)重新輸入:\n");
scanf("%d",k);h=i+4*j+32*k;}
while(k100||k1);}
printf("請(qǐng)輸入您的姓名:\n");
scanf("%s",T[h].name);
printf("\n請(qǐng)輸入您的身份證號(hào)碼:\n");
scanf("%ld",T[h].ID);
do
{
printf("\n請(qǐng)輸入您的目的地(1-5):\n");
printf("1.天堂\n2.地獄\n3.蓬萊仙島\n4.臺(tái)灣\n5.美國(guó)\n");
scanf("%d",c);
}
while(c5||c1);
switch(c)
{
case 1:strcpy (s,"天堂");break;
case 2:strcpy (s,"地獄");break;
case 3:strcpy (s,"蓬萊仙島");break;
case 4:strcpy (s,"臺(tái)灣");break;
case 5:strcpy (s,"美國(guó)");break;
}
printf("\n您的訂票信息如下:\n");
printf("姓名 身份證號(hào) 航班號(hào) 飛行時(shí)間 目的地\n");
printf("\n%s%10ld 偏見(jiàn)%d號(hào) 周%d%13s\n",T[h].name,T[h].ID,i,j,s);
printf("\n");
printf("\n 請(qǐng)?jiān)俅螜z查您的信息。\n\n如果正確無(wú)誤,請(qǐng)輸入y.\n\n重新填寫,請(qǐng)輸入r.\n\n放棄訂票,回主選單輸入q。\n");
do
{
scanf("%c",d);
}
while(d!='r'd!='q'd!='y');
}
if(d=='y')
{
n[i-1][j-1]--;
l[h]=1;
printf("\n訂票成功!!\n");
goto loop2;
}
else if(d=='r')
goto loop1;
else goto loop2;
}
/********************************************退票*******************************************/
if(a=='2')
{
printf("\n請(qǐng)?zhí)顚懲似痹敿?xì)信息.\n");
printf("\n請(qǐng)輸入航班號(hào)(1-3):\n");
do{scanf("%d",x);}
while(x3||x1);
printf("\n請(qǐng)輸入旅行周日(1-7):\n");
do{scanf("%d",y);}
while(y7||y1);
printf("\n請(qǐng)輸入座位號(hào):\n");
do{scanf("%d",z);}
while(z100||z1);
printf("\n請(qǐng)輸入您的姓名:\n");
scanf("%s",s2);
printf("\n請(qǐng)輸入您的身份證號(hào):\n");
scanf("%ld",ID2);
h2=x+4*y+32*z;
if(T[h2].ID==0)
{
printf("\n該票沒(méi)有被定出!\n");
goto loop2;
}
else
{
if(T[h2].ID!=ID2||strcmp(s2,T[h2].name))
{
printf("信息出現(xiàn)矛盾!無(wú)法退票!\n");goto loop2;}
else
{
printf("\n請(qǐng)輸入y確認(rèn)退票!回主選單請(qǐng)輸入q!\n");
scanf("%c",f);
while(f!='y'f!='q')
{scanf("%c",f);}
if(f=='y')
{
printf("退票成功!\n");
l[h2]=0;
n[x-1][y-1]++;}
else goto loop2;
}
}
goto loop2;
}
/*************************************查票系統(tǒng)************************************************/
if(a=='3')
{loop4:
printf("\n請(qǐng)輸入查詢方式:\n");
printf("\n1.輸入身份證號(hào)查詢。\n2.輸入座位號(hào)碼查詢。\n3.輸入姓名查詢。\n4.返回。\n");
do
{scanf("%d",g);}
while(g4||g1);
/******************身份證號(hào)查詢**********************/
if(g==1)
{loop6:
printf("\n請(qǐng)您輸入您要查詢的身份證號(hào):\n");
do{scanf("%ld",d1);}
while(d1==0);
n3=0;
i=36;
while(i=3231)
{
if(T[i].ID==d1l[i]==1)
{
n3++;a3[n3]=i;
}
i++;
}
if(n3==0){printf("\n沒(méi)有找到您輸入的身份證號(hào)!\n");
goto loop4;
}
else
{
for(i=1;i=n3;i++)
{
s33[i]=a3[i]/32;
t3[i]=(a3[i]-s33[i]*32)/4;
p3[i]=a3[i]-s33[i]*32-t3[i]*4;
}
printf("\n您所查找的的信息為:\n");
printf("\n姓名 身份證號(hào) 航班號(hào) 座位號(hào) 飛行日\(chéng)n");
for(i=1;i=n3;i++)
printf("%s%10ld 偏見(jiàn)%d號(hào)%7d 周%d\n",T[a3[i]].name,T[a3[i]].ID,p3[i],s33[i],t3[i]);
}
printf("\n繼續(xù)查找請(qǐng)輸入y,返回輸入q.\n");
do{scanf("%c",add3);}
while(add3!='y'add3!='q');
if(add3=='y')
goto loop6;
else goto loop4;
}
/***********************名字查詢***************************/
if(g==3)
{loop5:
printf("\n請(qǐng)您輸入您要查詢的名字:\n");
scanf("%s",s3);
n2=0;
i=37;
while(i=3231)
{
while(T[i].name==NULL) i++;
if(strcmp(T[i].name,s3)==0l[i]!=0)
{
a2[n2+1]=i;
n2++;
}
i++;
}
if(n2==0)
{
printf("\n沒(méi)有找到您輸入的姓名!\n");
goto loop4;
}
else
{
for(i=1;i=n2;i++)
{
s22[i]=a2[i]/32;
t2[i]=(a2[i]-s22[i]*32)/4;
p2[i]=a2[i]-s22[i]*32-t2[i]*4;
}
printf("\n您所查找的的信息為:\n");
printf("姓名 身份證號(hào) 航班號(hào) 座位號(hào) 飛行日\(chéng)n");
for(i=1;i=n2;i++)
printf("%s%10ld 偏見(jiàn)%d號(hào)%7d 周%d\n",s3,T[a2[i]].ID,p2[i],s22[i],t2[i]);
}
printf("\n繼續(xù)查找請(qǐng)輸入y,返回輸入q.\n");
do{scanf("%c",add2);}
while(add2!='y'add2!='q');
if(add2=='y')
goto loop5;
else
goto loop4;
}
/************************座位號(hào)碼查詢*****************************/
if(g==2)
{loop7:
printf("\n請(qǐng)您輸入您要查詢的座位號(hào):\n");
do{ scanf("%d",d2);}
while(d21||d2100);
for(i=1;i=3;i++)
for(j=1;j=7;j++)
k2[i][j]=d2*32+4*j+i;
i=1;
n4=0;
while(i=3)
{
j=1;
while(j=7)
{
if(T[k2[i][j]].ID!=0l[k2[i][j]]!=0)
{
n4++;
n5[n4]=i;
n6[n4]=j;
n7[n4][n5[n4]][n6[n4]]=k2[i][j];
}
j++;
}
i++;
}
if(n4==0){printf("\n該座位號(hào)碼沒(méi)有被定出!\n");
goto loop4;
}
else
{
printf("\n您所輸入的座位號(hào)信息是:\n");
printf("姓名 身份證號(hào) 航班號(hào) 座位號(hào) 飛行日\(chéng)n");
for(i=1;i=n4;i++)
printf("%s%10ld 偏見(jiàn)%d號(hào)%7d 周%d\n",T[n7[i][n5[i]][n6[i]]].name,T[n7[i][n5[i]][n6[i]]].ID,n5[i],d2,n6[i]);
}
printf("\n繼續(xù)查找請(qǐng)輸入y,返回輸入q.\n");
do{scanf("%c",add4);}
while(add4!='y'add4!='q');
if(add4=='q')
goto loop4;
if(add4=='y')
goto loop7;
}
else
goto loop2;
}
/*****************************************查詢系統(tǒng)****************************************************/
if(a=='4')
{loop8:
printf("\n1.查詢特定航班的余票情況。\n2.查詢特定航班的乘客情況。\n3.返回主選單。\n");
printf("\n請(qǐng)輸入您的選擇(1-3):\n");
do
{scanf("%d",add1);}
while(add13||add11);
if(add1==3)goto loop2;
/*******************************查余票*****************************/
if(add1==1)
{loop9:
printf("\n請(qǐng)輸入您要查詢的航班號(hào)(1-3):\n");
do{scanf("%d",add5);}
while(add53||add51);
printf("\n請(qǐng)輸入您要查詢的飛行期(1-7):\n");
do{scanf("%d",add6);}
while(add67||add61);
i=37;
n55=0;
while(i=3231)
{
if((T[i].ID==0||l[i]==0)(i-add5-add6*4)%32==0)
{
n55++;
a4[n55]=i;
}
i++;
}
printf("\n第%d航班飛機(jī)周%d的余票情況是:\n",add5,add6);
i=0;
for(j=i+1;j=n55;j++)
{
{
for(i=j;i=j+9;i++)
printf("%5d",a4[i]/32);
}
printf("\n");j=i-1;
}
printf("\n繼續(xù)查找請(qǐng)輸入y,返回輸入q.\n");
do{scanf("%c",add8);}
while(add8!='y'add8!='q');
if(add8=='y')
goto loop9;
else
goto loop8;
}
/*******************查詢已訂票信息**********************/
if(add1==2)
{loop10:
printf("\n請(qǐng)輸入您要查詢的航班號(hào)(1-3):\n");
do{scanf("%d",add7);}
while(add73||add71);
printf("\n請(qǐng)輸入您要查詢的飛行期(1-7):\n");
do{scanf("%d",add9);}
while(add97||add91);
n9=0;
i=37;
while(i=3231)
{
if(T[i].ID!=0(i-add7-add9*4)%32==0l[i]!=0)
{
n9++;
a7[n9]=i;
}
i++;
}
if(n9==0)
printf("\n該航班滿票,沒(méi)有被定出!\n");
if(n9!=0)
{
printf("\n第%d航班飛機(jī)周%d的訂票情況是:\n",add7,add9);
printf("\n姓名 身份證號(hào) 航班號(hào) 座位號(hào) 飛行日\(chéng)n");
for(i=1;i=n9;i++)
printf("%S%10ld 偏見(jiàn)%d號(hào)%7d 周%d\n",T[a7[i]].name,T[a7[i]].ID,add7,(a7[i]-add7-4*add9)/32,add9);
}
printf("\n繼續(xù)查找請(qǐng)輸入y,返回輸入q.\n");
do{scanf("%c",add10);}
while(add10!='y'add10!='q');
if(add10=='y')
goto loop10;
else
goto loop8;
}
}
}
C語(yǔ)言程序?qū)戯w機(jī)訂票系統(tǒng)
#include stdio.h
#include string.h
#include conio.h
#include ctype.h
#include stdlib.h
#include malloc.h
#include math.h//overflow
#define ok 1
typedef struct Yidingkehu
{//單鏈表
char name[15];//已訂票的客戶姓名
int dingpiaoshu;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊(duì)
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個(gè)鏈隊(duì)結(jié)點(diǎn)指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個(gè)含有六個(gè)信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號(hào)-
char feijihao[15];//飛機(jī)號(hào)
int feixingriqi;//起飛時(shí)間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個(gè)鏈結(jié)點(diǎn)的指針
struct Yidingkehu *yiding;//定義一個(gè)指向已訂票客戶的頭結(jié)點(diǎn)指針
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通過(guò)航班號(hào)查詢
void mddchaxun();//通過(guò)目的地查詢
void lurugongneng();//初始化錄入功能
void chaxungongnen();//查詢功能
void dingpiaogongnen();//訂票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 歡迎使用航空客運(yùn)訂票系統(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請(qǐng)選擇:");
scanf("%d",n);printf("\n");
switch(n)
{
case 1: lurugongneng();//錄入功能
break;
case 2: chaxungongnen();//查詢功能
break;
case 3: dingpiaogongnen();//訂票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的單鏈表*********************************************************錄入功能
{
Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf("\t請(qǐng)依次輸入下面幾項(xiàng)內(nèi)容:\n\n");//這里的輸入采用一個(gè)個(gè)單獨(dú)輸入,避免了亂賦值的現(xiàn)象
printf("航班號(hào)\n");
gets(p-hangbanhao);//這里的二個(gè)gets主要是因?yàn)樵诨剀囨I的輸入,其中的第一個(gè)是來(lái)接收上次的回車
gets(p-hangbanhao);
printf("飛機(jī)號(hào)\n");
gets(p-feijihao);
printf("終點(diǎn)站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查詢功能
{
int n;
printf("\t 查 找 航 線 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通過(guò)目的地查詢 ==\n");
printf("\t==2. 通過(guò)航班號(hào)查詢 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請(qǐng)選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的目的地:");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的航班號(hào):");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的航班號(hào):\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************訂票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請(qǐng)輸入終點(diǎn)站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有這個(gè)航班
if(!p)
{
printf("對(duì)不起,沒(méi)有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號(hào):%s\n",p-hangbanhao);
printf("飛機(jī)號(hào):%s\n",p-feijihao);
printf("飛行時(shí)間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請(qǐng)輸入你要訂的票數(shù):"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("請(qǐng)輸入你的名字:");
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("對(duì)不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);
printf(" 是否要重新訂票?\n");
printf("需要請(qǐng)輸入1 否則請(qǐng)按2 預(yù)訂請(qǐng)輸入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("對(duì)不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("沒(méi)有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請(qǐng)輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請(qǐng)輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請(qǐng)輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
請(qǐng)采納答案,支持我一下。
c語(yǔ)言編程:飛機(jī)訂票系統(tǒng),c++運(yùn)行
#include stdio.h
#include string.h
#include conio.h
#include ctype.h
#include stdlib.h
#include malloc.h
#include math.h//overflow
#define ok 1
typedef struct Yidingkehu
{//單鏈表
char name[15];//已訂票的客戶姓名
int dingpiaoshu;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊(duì)
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個(gè)鏈隊(duì)結(jié)點(diǎn)指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個(gè)含有六個(gè)信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號(hào)-
char feijihao[15];//飛機(jī)號(hào)
int feixingriqi;//起飛時(shí)間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個(gè)鏈結(jié)點(diǎn)的指針
struct Yidingkehu *yiding;//定義一個(gè)指向已訂票客戶的頭結(jié)點(diǎn)指針
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通過(guò)航班號(hào)查詢
void mddchaxun();//通過(guò)目的地查詢
void lurugongneng();//初始化錄入功能
void chaxungongnen();//查詢功能
void dingpiaogongnen();//訂票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 歡迎使用航空客運(yùn)訂票系統(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請(qǐng)選擇:");
scanf("%d",n);printf("\n");
switch(n)
{
case 1: lurugongneng();//錄入功能
break;
case 2: chaxungongnen();//查詢功能
break;
case 3: dingpiaogongnen();//訂票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的單鏈表*********************************************************錄入功能
{
Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf("\t請(qǐng)依次輸入下面幾項(xiàng)內(nèi)容:\n\n");//這里的輸入采用一個(gè)個(gè)單獨(dú)輸入,避免了亂賦值的現(xiàn)象
printf("航班號(hào)\n");
gets(p-hangbanhao);//這里的二個(gè)gets主要是因?yàn)樵诨剀囨I的輸入,其中的第一個(gè)是來(lái)接收上次的回車
gets(p-hangbanhao);
printf("飛機(jī)號(hào)\n");
gets(p-feijihao);
printf("終點(diǎn)站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查詢功能
{
int n;
printf("\t 查 找 航 線 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通過(guò)目的地查詢 ==\n");
printf("\t==2. 通過(guò)航班號(hào)查詢 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請(qǐng)選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的目的地:");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的航班號(hào):");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的航班號(hào):\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************訂票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請(qǐng)輸入終點(diǎn)站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有這個(gè)航班
if(!p)
{
printf("對(duì)不起,沒(méi)有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號(hào):%s\n",p-hangbanhao);
printf("飛機(jī)號(hào):%s\n",p-feijihao);
printf("飛行時(shí)間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請(qǐng)輸入你要訂的票數(shù):"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("請(qǐng)輸入你的名字:");
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("對(duì)不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);
printf(" 是否要重新訂票?\n");
printf("需要請(qǐng)輸入1 否則請(qǐng)按2 預(yù)訂請(qǐng)輸入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("對(duì)不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("沒(méi)有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請(qǐng)輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請(qǐng)輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請(qǐng)輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
///////////以下是人家的要求//////////
1、本系統(tǒng)采用一個(gè)包含N個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:起飛地、目的地 航班號(hào)、座次號(hào)碼、座次訂出與否標(biāo)記、訂座者的姓名和訂座者的身份證號(hào)碼。
2、本系統(tǒng)顯示這樣的菜單:
(1) 輸入航班信息
(2) 輸出航班信息
(3) 查找航班信息
a.顯示空座的數(shù)量
b.顯示空座的信息
c.顯示已訂座的信息
d.起飛時(shí)間
(4)訂票預(yù)約
(5)刪除定票預(yù)約
(6)退出系統(tǒng)
1、 本系統(tǒng)成功執(zhí)行菜單的每個(gè)信息,選項(xiàng)4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。
2、 查找航班信息既可按線路查,也可按目的地查。
4、在兩次運(yùn)行之間,數(shù)據(jù)被保存于一個(gè)文件里,當(dāng)本程序重新開(kāi)
始的時(shí)候,它首先從該文件讀入數(shù)據(jù)
關(guān)于《機(jī)票預(yù)定系統(tǒng)代碼》的介紹到此就結(jié)束了。