【簡(jiǎn)介:】本篇文章給大家談?wù)劇讹w機(jī)票訂票系統(tǒng)》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。本文目錄一覽:
1、飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)言
2、請(qǐng)教下網(wǎng)上訂飛機(jī)票的程序。
3、簡(jiǎn)單的航空航天售
本篇文章給大家談?wù)劇讹w機(jī)票訂票系統(tǒng)》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。
本文目錄一覽:
- 1、飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)言
- 2、請(qǐng)教下網(wǎng)上訂飛機(jī)票的程序。
- 3、簡(jiǎn)單的航空航天售票系統(tǒng)程序,請(qǐng)用C++編寫,越簡(jiǎn)單越好
- 4、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——航空訂票系統(tǒng)(C語(yǔ)言)
- 5、C語(yǔ)言程序?qū)戯w機(jī)訂票系統(tǒng)
- 6、c語(yǔ)言程序設(shè)計(jì)飛機(jī)訂票系統(tǒng)
飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)言
(已修改,請(qǐng)用最新的代碼)代碼說(shuō)明:
1級(jí)菜單:選擇購(gòu)買的航班號(hào),并顯示對(duì)應(yīng)座位狀態(tài)。
(我只做測(cè)試,所以初始化initFlight函數(shù)中我只初始了2個(gè)航班,需要自己按照我的代碼添)
(注意:實(shí)際開發(fā)軟件,鏈表數(shù)據(jù)是從數(shù)據(jù)庫(kù)中讀取的,需要實(shí)時(shí)同步,如果要多次調(diào)用initFlight函數(shù),記得自己寫一個(gè)釋放內(nèi)存的函數(shù),把所有鏈表“SINFO和FLINFO”節(jié)點(diǎn)都釋放掉,釋放函數(shù)我沒寫,需要你自己寫?。。。?/p>
2級(jí)菜單:選擇購(gòu)買對(duì)應(yīng)座位號(hào),完成購(gòu)買,并實(shí)時(shí)顯示購(gòu)買結(jié)果。
位置編號(hào)、座位最大排數(shù)、艙室類型、折扣等參數(shù)均由常量參數(shù)空值,需要修改自行改常量。
注意:艙室類型(我默認(rèn)3個(gè)類型頭等艙、公務(wù)艙、經(jīng)濟(jì)艙)對(duì)應(yīng)折扣參數(shù):tDiscount二維數(shù)組。如要如要添加新的艙室類型,必須將參數(shù)常量TYPESIZE、typeName、types、tDiscount這4個(gè)同時(shí)修改,具體看代碼備注??!
座位票價(jià)=基礎(chǔ)票價(jià)*類型折扣*時(shí)段折扣。
因?yàn)轱w機(jī)不讓吸煙,所以我沒做吸煙區(qū)(笑),如果你需要,可以作為類型自行添加!
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#includemalloc.h
#includetime.h
//-----------------------相關(guān)參數(shù),想改變,在這里修改!?。。。。。?----------------------------
constfloattimeDiscount=1;//時(shí)段折扣,影響所有航班最終價(jià)格,默認(rèn)1
constcharcID[5]="ABCD";//位置編號(hào)
constintmaxRow=20;//位置最大排號(hào)
//注意:如果修改類型數(shù)量,types和tDiscount必須同時(shí)修改?。?!
#defineTYPESIZE3//類型數(shù)量
constchartypeName[TYPESIZE][10]={"頭等艙","公務(wù)艙","經(jīng)濟(jì)艙"};
constinttypes[TYPESIZE][2]={{1,2},{3,4},{5,20}};//排號(hào)對(duì)應(yīng)類型。1~2排頭等艙,3~4排公務(wù)艙,5~20排經(jīng)濟(jì)艙
constfloattDiscount[TYPESIZE]={1.5,1.3,1};//類型折扣。頭等艙1.5倍,公務(wù)艙1.3倍,經(jīng)濟(jì)艙1倍
//-------------------------------------------------------------------------------
typedefstructseatInfo//座位信息,一條鏈表對(duì)應(yīng)一個(gè)航班信息,鏈表順序從第一排左邊第一個(gè)開始往后A1~D1,A2~D2。。。
{
charcloID;//位置編號(hào)A、B、C、D
introw;//位置排號(hào)
inttype;//座位所屬類型:0:頭等艙、1:公務(wù)艙、2:經(jīng)濟(jì)艙,不同類型對(duì)應(yīng)不同的類型折扣tDiscount
intsell;//出售狀態(tài),0:未出售;1:已出售
structseatInfo*next;
}SINFO;
typedefstructflightInfo//航班信息
{
charfid[10];//航班號(hào)
time_ttfTime;//起飛時(shí)間
time_tldTime;//降落時(shí)間
chartoCity[20];//抵達(dá)城市
floattPrice;//基礎(chǔ)票價(jià),不同位置具有不同折扣,座位票價(jià)=基礎(chǔ)票價(jià)*類型折扣*時(shí)段折扣
structflightInfo*next;
structseatInfo*sHead;//對(duì)應(yīng)座位鏈表的頭節(jié)點(diǎn)
}FLINFO;
voidmeError(void*p);
SINFO*getSINFO();//獲取座位鏈表
//addFLINFO:添加航班信息鏈表的節(jié)點(diǎn)flinfoHead:頭節(jié)點(diǎn)(第一次傳NULL會(huì)自動(dòng)生成),flinfoTail:尾節(jié)點(diǎn),fNew:要添加的結(jié)構(gòu)信息(成員指針無(wú)需賦值)
FLINFO*addFLINFO(FLINFO**ffHead,FLINFO*flinfoTail,FLINFOfNew);//返回尾節(jié)點(diǎn)
time_tgetTime_tfromStr(char*sTime);//將YYYY-MM-DDhh:mm:ss格式的時(shí)間字符串轉(zhuǎn)換成time_t型數(shù)值
FLINFO*initFlight();//初始化航班信息,返回航班鏈表頭節(jié)點(diǎn),如果想手動(dòng)輸入,請(qǐng)?jiān)谶@里添加?。?!正常軟件開發(fā),這一步應(yīng)該是從數(shù)據(jù)庫(kù)讀??!
char*getTString(structtm*tm0);//通過(guò)tm獲取時(shí)間字符串
voidshowSinfo(FLINFO*flinfo);//顯示航班對(duì)應(yīng)座位信息
voidprintfFlinfo(FLINFO*flinfoHead);
FLINFO*selectFlinfo(FLINFO*flinfoHead,char*fid);//選擇航班號(hào),返回節(jié)點(diǎn)
voidshowSinfo(FLINFO*flinfo);//顯示航班對(duì)應(yīng)座位信息
SINFO*selectSinfo(FLINFO*flinfo,char*sid);//選擇座位,返回節(jié)點(diǎn)
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("請(qǐng)輸入要購(gòu)買的航班號(hào):");
scanf("%s",fid);
ffSelect=selectFlinfo(flinfoHead,fid);
if(!ffSelect)
{
printf("未找到對(duì)應(yīng)航班,按任意鍵繼續(xù)-----\n");
getch();
system("cls");
continue;
}
system("cls");
printf("航班號(hào):%s座位信息如下:\n",ffSelect-fid);
showSinfo(ffSelect);
printf("請(qǐng)輸入要購(gòu)買的座位編號(hào)(輸入0返回主菜單):");
scanf("%s",sid);
if(!strcmp(sid,"0"))
{
system("cls");
continue;
}
else
{
sfSelect=selectSinfo(ffSelect,sid);
if(!sfSelect||sfSelect-sell)
{
printf("未找到對(duì)應(yīng)座位或該座位已出售,請(qǐng)重新輸入!按任意鍵繼續(xù)-----\n");
getch();
system("cls");
continue;
}
printf("購(gòu)買成功!按任意鍵繼續(xù)-----");
sfSelect-sell=1;
getch();
system("cls");
}
}
return0;
}
SINFO*selectSinfo(FLINFO*flinfo,char*sid)//選擇座位,返回節(jié)點(diǎn)
{
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)//顯示航班對(duì)應(yīng)座位信息
{
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)//選擇航班號(hào),返回節(jié)點(diǎn)
{
while(flinfoHead-next)
{
if(!strcmp(flinfoHead-next-fid,fid))
returnflinfoHead-next;
flinfoHead=flinfoHead-next;
}
returnNULL;
}
voidprintfFlinfo(FLINFO*flinfoHead)
{
while(flinfoHead-next)
{
printf("目的地:%s,航班號(hào):%s\n----起飛時(shí)間:%s,抵達(dá)時(shí)間:%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)//通過(guò)tm獲取時(shí)間字符串
{
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格式的時(shí)間字符串轉(zhuǎn)換成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é)點(diǎn),如果想手動(dòng)輸入,請(qǐng)?jiān)谶@里添加?。。≌\浖_發(fā),這一步應(yīng)該是從數(shù)據(jù)庫(kù)讀?。?/p>
{
FLINFO*ffHead=NULL,*flinfoTail=NULL,fNew;
//--------添加一個(gè)航班信息----需要增加按照我下面調(diào)用方式寫--------------------------------
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,"臺(tái)北");
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é)點(diǎn)
//添加航班信息鏈表的節(jié)點(diǎn)flinfoHead:頭節(jié)點(diǎn)(第一次傳NULL會(huì)自動(dòng)生成),flinfoTail:尾節(jié)點(diǎn),fNew:要添加的結(jié)構(gòu)信息(成員指針無(wú)需賦值)
{
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--)//按順序生成對(duì)應(yīng)數(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)//內(nèi)存申請(qǐng)失敗
{
if(p==NULL)
{
printf("\n異常:內(nèi)存申請(qǐng)失敗!回車結(jié)束程序!\n");
while(getch()!='\r');
exit(0);
}
}
請(qǐng)教下網(wǎng)上訂飛機(jī)票的程序。
1、網(wǎng)上訂票流程:
登陸訂票網(wǎng)站,可以注冊(cè),也可以不注冊(cè)。然后用它們的機(jī)票信息查詢系統(tǒng),一般可選擇出發(fā)城市,目的地城市,乘機(jī)時(shí)間等,然后查詢。在查詢出來(lái)的結(jié)果后面選擇你要預(yù)訂的航班。預(yù)訂完了,如果有網(wǎng)上支付的網(wǎng)站,可以直接在網(wǎng)上支付。有些網(wǎng)站則需要通過(guò)銀行轉(zhuǎn)賬或者票到付款。
2、登機(jī)流程:
現(xiàn)在都是用電子客票,也就是說(shuō)只要你預(yù)訂了這個(gè)服務(wù),因?yàn)闄C(jī)票是實(shí)名制,與你的姓名和證件號(hào)碼對(duì)應(yīng)的,就有一個(gè)服務(wù)代碼。到了機(jī)場(chǎng),拿著你的證件,就可以辦理登機(jī)牌,然后候機(jī)登機(jī)。如果不需要報(bào)銷,這樣就可以了,如果需要報(bào)銷,就讓給你訂票的機(jī)構(gòu)送發(fā)票給你。
3、網(wǎng)上訂票可靠嗎?
掌握了嘗試,就可靠。A、選擇國(guó)內(nèi)知名的機(jī)構(gòu)就沒有問(wèn)題。如攜程、億龍、辦公通差旅等。B、選擇的機(jī)構(gòu)只要是常年服務(wù)的,就沒有問(wèn)題。他們不會(huì)因?yàn)槟愕囊粡埰本驼α俗约旱恼信?,一張票幾百元,做一個(gè)機(jī)票網(wǎng)站,運(yùn)營(yíng)幾年也不至于幾百元吧。C、選擇正規(guī)單位,唯一的標(biāo)準(zhǔn)時(shí)看他有沒有機(jī)票代理資質(zhì),你可以致電這些機(jī)構(gòu),然他們告訴你他們的機(jī)票代理資質(zhì)編號(hào)和他們單位的名稱,你可以上中國(guó)民航協(xié)會(huì)的官網(wǎng),驗(yàn)證他們的信息。
4、機(jī)票與身份確認(rèn):
在網(wǎng)站訂票,給誰(shuí)訂,就需要填寫誰(shuí)的姓名和證件號(hào)碼,如果有若干個(gè)人,一一填寫,這些信息就會(huì)和航班對(duì)應(yīng)。完了就會(huì)有對(duì)應(yīng)的信息錄入航空機(jī)票系統(tǒng)。到了機(jī)場(chǎng),憑證件就可以辦理登機(jī)了。
5、如何退票:
現(xiàn)在國(guó)內(nèi)的機(jī)票預(yù)訂網(wǎng)站一般不提供網(wǎng)上退票。但是他們都有自己的客服電話,如果需要退票,致電他們的客服就可以了。
6、網(wǎng)上預(yù)訂機(jī)票需要注意的事項(xiàng):
A、選擇合適的機(jī)構(gòu),就是上面給你的那幾個(gè)都可以。
B、網(wǎng)上訂票,很多人也會(huì)選擇網(wǎng)上支付。注意在家里的電腦上支付,不要造成密碼外泄等問(wèn)題。
C、需要不需要報(bào)銷,在預(yù)訂的時(shí)候需要說(shuō)清楚。
D、預(yù)訂時(shí)乘機(jī)人姓名和證件類型及號(hào)碼一定要說(shuō)正確。否則會(huì)造成無(wú)法登機(jī)。
簡(jiǎn)單的航空航天售票系統(tǒng)程序,請(qǐng)用C++編寫,越簡(jiǎn)單越好
#include iostream
#include string.h
#include stdio.h
using namespace std;
int main();
//*****************************************
void dingpiao()
{
cout"歡迎您訂購(gòu)飛機(jī)票!"endl;
cout"非常感謝!"endl;
cout"我們將為您提供最優(yōu)質(zhì)的服務(wù)!"endl;
cout" 0 返回上級(jí)菜單 "endl;
int i=0;
while(i)
{
cout"請(qǐng)選擇按鍵(0):";
cini;
if(i!=0)
cout" 0 返回上級(jí)菜單 "endl;
}
}
void tuipiao()
{
cout"您可以退飛機(jī)票!"endl;
cout"無(wú)論何時(shí)"endl;
cout"我們都會(huì)為您提供最優(yōu)質(zhì)的服務(wù)!"endl;
cout" 0 返回上級(jí)菜單 "endl;
int i=0;
while(i)
{
cout"請(qǐng)選擇按鍵(0):";
cini;
if(i!=0)
cout" 0 返回上級(jí)菜單 "endl;
}
}
void watch()
{
cout"您現(xiàn)在可以查看航空公司的票務(wù)情況!"endl;
cout"無(wú)論何時(shí)"endl;
cout"我們都會(huì)為您提供最優(yōu)質(zhì)的服務(wù)!"endl;
cout" 0 返回上級(jí)菜單 "endl;
int i=0;
while(i)
{
cout"請(qǐng)選擇按鍵(0):";
cini;
if(i!=0)
cout" 0 返回上級(jí)菜單 "endl;
}
}
void browseticket()
{
cout"您可以查詢航空公司的飛機(jī)航線信息!"endl;
cout"無(wú)論何時(shí)"endl;
cout"我們都會(huì)為您提供最優(yōu)質(zhì)的服務(wù)!"endl;
cout" 0 返回上級(jí)菜單 "endl;
int i=0;
while(i)
{
cout"請(qǐng)選擇按鍵(0):";
cini;
if(i!=0)
cout" 0 返回上級(jí)菜單 "endl;
}
}
void change()
{
cout"您現(xiàn)在可以修改航班信息(當(dāng)修改信息不存在時(shí),不運(yùn)行)!"endl;
cout"無(wú)論何時(shí)"endl;
cout"我們都會(huì)為您提供最優(yōu)質(zhì)的服務(wù)!"endl;
cout" 0 返回上級(jí)菜單 "endl;
int i=0;
while(i)
{
cout"請(qǐng)選擇按鍵(0):";
cini;
if(i!=0)
cout" 0 返回上級(jí)菜單 "endl;
}
}
void fn()
{
int i=1;
while(i)
{
coutendlendl;
cout"輸入航班信息:"endlendl;
cout" 1 訂購(gòu)機(jī)票(航班號(hào)為0結(jié)束輸入) "endl;
cout" 2 反退機(jī)票 "endl;
cout" 3 查看航班信息 "endl;
cout" 4 查詢航班信息 "endl;
cout" 5 修改航班信息 "endl;
cout" 0 返回主頁(yè)面 "endl;
cout"請(qǐng)選擇按鍵(0-5):";
cini;
coutendl;
if(i=0i=5)
{
switch(i)
{
case 1:dingpiao();break;
case 2:tuipiao();break;
case 3:watch();break;
case 4:browseticket();break;
case 5:change();break;
case 0:
{
cout"謝謝使用!"endl;
};break;
}
}
else
cout"按鍵錯(cuò)誤!請(qǐng)重新按鍵!"endl;
coutendl;
}
}
void fn1()
{
int i=1;
while(i)
{
coutendlendl;
cout"輸入航班信息:"endlendl;
cout" 1 訂購(gòu)機(jī)票(航班號(hào)為0結(jié)束輸入) "endl;
cout" 2 反退機(jī)票 "endl;
cout" 3 查看航班信息 "endl;
cout" 4 查詢航班信息 "endl;
cout" 0 返回主頁(yè)面 "endl;
cout"請(qǐng)選擇按鍵(0-4):";
cini;
coutendl;
if(i=0i=4)
{
switch(i)
{
case 1:dingpiao();break;
case 2:tuipiao();break;
case 3:watch();break;
case 4:browseticket();break;
case 0:
{
cout"謝謝使用!"endl;
};break;
}
}
else
cout"按鍵錯(cuò)誤!請(qǐng)重新按鍵!"endl;
coutendl;
}
}
int main()
{
int j=1;
while(j)
{
coutendlendlendl;
cout" $-----------------------------------------$ "endl;
cout" | | "endl;
cout" | ** 歡迎進(jìn)入民航管理系統(tǒng) ** | "endl;
cout" | | "endl;
cout" $-----------------------------------------$ "endl;
cout"管理員進(jìn)入請(qǐng)按1,客戶進(jìn)入請(qǐng)按2:";
cinj;
if(j=1j=2)
{
switch(j)
{
case 1:
{
char f[]= "123456";
printf("請(qǐng)輸入密碼并以回車鍵結(jié)束:");
scanf("%s",f);
if(strcmp(f,"123456")==0)
fn();
else
cout"密碼錯(cuò)誤!請(qǐng)重新選擇按鍵!"endl;
};break;
case 2:
{
cout"^_^客戶能查看和查詢航空信息^_^"endl;
fn1();
break;
};break;
}
}
}
return 0;
}
我寫了一個(gè),基本的功能都實(shí)現(xiàn)了,需要的話可以自己更改,供樓主參考。
希望能夠滿意!
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——航空訂票系統(tǒng)(C語(yǔ)言)
1、任務(wù):航空客運(yùn)定票的業(yè)務(wù)活動(dòng)包括:查詢航線、客票預(yù)定和辦理退票等。試設(shè)計(jì)一個(gè)航空客運(yùn)定票系統(tǒng),以使上述業(yè)務(wù)可以借助計(jì)算機(jī)來(lái)完成。 2、功能要求: 1) 錄入:可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具 體數(shù)據(jù)自定) 2) 查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵 達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng));可以輸入起飛抵達(dá)城市, 查詢飛機(jī)航班情況; 3) 訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果 該航班已經(jīng)無(wú)票,可以提供相關(guān)可選擇航班; 4) 退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件; 5) 客戶資料:有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào); 6) 修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件。 3、要有一個(gè)好的界面~~~~~~~~~~~~~~~~~~~~~~~~4、需求分析 系統(tǒng)需求(系統(tǒng)要求實(shí)現(xiàn)的功能的具體情況)5、 概要設(shè)計(jì) 系統(tǒng)分析(分析系統(tǒng)的功能和具體模塊的劃分) 系統(tǒng)流程(系統(tǒng)的流程圖) 程序詳細(xì)代碼:
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ì)不起沒有你要找的目的地:\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ì)不起沒有你要找的航班號(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ì)不起,沒有你要找的航班:\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("沒有人預(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ǔ)言程序設(shè)計(jì)飛機(jī)訂票系統(tǒng)
呵呵 這個(gè)也是我在網(wǎng)上搜的 挺不錯(cuò) 沒有錯(cuò)誤
#includestdio.h //標(biāo)準(zhǔn)輸入、輸出頭文件
#includestring.h //包含字符串函數(shù)處理頭文件
#includestdlib.h //包含動(dòng)態(tài)存儲(chǔ)與釋放函數(shù)頭文件
#define N 10000
struct air //定義結(jié)構(gòu)體數(shù)組
{
int num;
char start[20];
char over[20];
char time[10];
int count;
}s[N];
int i;
int m=0;
#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定義輸出格式
void input(); //輸入航班信息
void print(); //輸出航班信息
void save(); //保存航班信息
void read(); //讀取航班信息
void search(); //查找航班信息
void shanchu(); //刪除航班信息
void dingpiao(); //訂票信息
void tuipiao(); //退票信息
void xiugai(); //修改信息
void main()
{
int j;
printf(" ★---您好,歡迎進(jìn)入中國(guó)民航管理系統(tǒng)!---★\n");
printf("================================================================================\n");
do
{
printf(" -------- ☆ 1.輸入航班信息 ☆-------- \n\n"
" -------- ☆ 2.瀏覽航班信息 ☆-------- \n\n"
" -------- ☆ 3.修改航班信息 ☆-------- \n\n"
" -------- ☆ 4.查找航班信息 ☆-------- \n\n"
" -------- ☆ 5.刪除航班信息 ☆-------- \n\n"
" -------- ☆ 6.訂票信息 ☆-------- \n\n"
" -------- ☆ 7.退票信息 ☆-------- \n\n"
" -------- ☆ 0.退出 ☆-------- \n\n");
printf("================================================================================\n");
printf("請(qǐng)?jiān)?-7中選擇以回車鍵結(jié)束:\n\n");
scanf("%d",j);
switch(j)
{
case 1: input();//調(diào)用輸入模塊
break;
case 2:print();//調(diào)用打印模塊
break;
case 3:xiugai();//調(diào)用修改模塊
break;
case 4:search();//調(diào)用查找模塊
break;
case 5:shanchu(); //調(diào)用刪除模塊
break;
case 6:dingpiao();//調(diào)用訂票模塊
break;
case 7:tuipiao();//調(diào)用退票模塊
break;
case 0:;
break;
}
}while(j!=0); //判斷結(jié)束
printf("謝謝使用,再見!\n");
}//主函數(shù)結(jié)束
void input()//打印模塊程序
{
char f[]="2008china"; //設(shè)置密碼
int y;
printf("請(qǐng)輸入密碼并以回車鍵結(jié)束:\n\n");
scanf("%s",f); //讀取密碼
if(strcmp(f,"2008china")==0)
{
printf("請(qǐng)依次輸入航班信息(機(jī)票數(shù)位0結(jié)束輸入):\n\n"
"完成輸入信息請(qǐng)鍵入w以回車鍵結(jié)束\n\n"); //打印提示信息
printf("--------------------------------------------------------------------------\n");
for(i=0;iN;i++)
{
printf("請(qǐng)輸入航班號(hào):\n");
scanf("%d",s[i].num); //讀取航班號(hào)
printf("請(qǐng)輸入起始站:\n");
scanf("%s",s[i].start);//讀取起始站
printf("請(qǐng)輸入終點(diǎn)站:\n");
scanf("%s",s[i].over);//讀取終點(diǎn)站
printf("請(qǐng)輸入時(shí)間:\n");
scanf("%s",s[i].time);//讀取時(shí)間
printf("請(qǐng)輸入機(jī)票數(shù)(機(jī)票數(shù)為0結(jié)束輸入):\n",m);
scanf("%d",s[i].count);//讀取機(jī)票數(shù)
m++;
printf("第%d個(gè)信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù),按 0結(jié)束",m);
scanf("%d",y);
if(y==0)
{
save();//將結(jié)構(gòu)體信息存盤
print();//輸出輸入的航班信息
break;
}
}
}
else
printf("輸入密碼錯(cuò)誤!請(qǐng)檢查您的密碼是否正確!謝謝!再見!\n\n");
}
void save()//保存模塊程序
{
FILE *fp,*fp1;//定義文件指針
if((fp=fopen("chen.dat","wb"))==NULL)//打開文件并判斷是否出錯(cuò)
{
printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar();
return;
}
if((fp1=fopen("hao.dat","wb"))==NULL)//打開文件并判斷是否出錯(cuò)
{
printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar();
return;
}
for(i=0;im;i++)
if(fwrite(s[i],sizeof(struct air),1,fp)==0)//向文件寫入數(shù)據(jù),并判斷是否出錯(cuò)
printf("向文件輸入數(shù)據(jù)失敗!\n\n");
fprintf(fp1,"%d",m);
fclose(fp);//關(guān)閉文件
fclose(fp1);//關(guān)閉文件
}
void read()//從文件讀取信息模塊
{
FILE *fp,*fp1;//定義文件指針
if((fp=fopen("chen.dat","rb"))==NULL)//打開文件,并判斷是否出錯(cuò)
{
printf("出錯(cuò),請(qǐng)檢查文件是否存在,按任意鍵返回住菜單");//打印出錯(cuò)提示
getchar();
}
if((fp1=fopen("hao.dat","rb"))==NULL)//打開文件并判斷是否出錯(cuò)
{
printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar();
return;
}
fscanf(fp1,"%d",m);
fclose(fp1);//關(guān)閉文件
for(i=0;im;i++)
{
fread(s[i],sizeof(air),1,fp);//從文件中讀取信息
}
fclose(fp);//關(guān)閉文件
}
void print()//打印模塊
{
char w[10];
read();//調(diào)用讀取文件函數(shù)
printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 機(jī)票數(shù)\n");
for(i=0;im;i++)
{
printf(PRINT);//打印信息
}
printf("請(qǐng)按任意鍵回車鍵結(jié)束返回上層菜單以:\n");
scanf("%s",w);
}
void search()//查詢模塊
{
char name1[20];
char name2[20];
char ii[10];
int n,no;
do
{
printf("請(qǐng)選擇查找方式:\n\n");//打印查詢方式菜單
printf("1.按航班號(hào)查找\n\n"
"2.按終點(diǎn)站查找\n\n"
"3.按航線查找\n\n"
"0.返回\n\n");
printf("請(qǐng)?jiān)?-3中選擇:\n\n"
"按其他鍵以回車鍵結(jié)束返回主菜單:\n\n");
scanf("%d",n);//讀取查找方式
if(n==0)
break;
switch(n)
{
case 1:
printf("請(qǐng)輸入航班號(hào):\n");
scanf("%d",no);//航班號(hào)
break;
case 2:
printf("請(qǐng)輸入終點(diǎn)站名稱:\n");
scanf("%s",name2);//讀取終點(diǎn)站
break;
case 3:
printf("請(qǐng)輸入起始站名稱:\n");
scanf("%s",name1);//讀取起始站
printf("請(qǐng)輸入終點(diǎn)站名稱:\n");
scanf("%s",name2);//終點(diǎn)站
break;
}
read();//調(diào)用讀取函數(shù)
for(i=0;im;i++)
{
if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按終點(diǎn)站起始站判斷輸出條件
{
printf("\n查找航班信息成功!\n");
printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 機(jī)票數(shù)\n");
printf(PRINT);//打印信息
break;
}
if(s[i].num==no)//按航班號(hào)判斷輸出條件
{
printf("\n查找航班信息成功!\n");
printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 機(jī)票數(shù)\n");
printf(PRINT);//打印信息
break;
}
}
no=0;//將航班號(hào)賦值為0
printf("沒有您需要的信息或查找完畢:\n\n"
"是否繼續(xù)查找?請(qǐng)鍵入yes或no以回車鍵結(jié)束\n");
scanf("%s",ii);
}while(strcmp(ii,"yes")==0);//判斷結(jié)束
}
void shanchu()//刪除模塊
{
char name1[20];
char name2[20];
char ii[10];
char f[]="2008china";//設(shè)置密碼
int no,n;
printf("請(qǐng)輸入密碼并以回車鍵結(jié)束:\n\n");
scanf("%s",f);//讀取密碼
if(strcmp(f,"2008china")==0) //判斷密碼是否正確
{
do
{
printf("請(qǐng)選擇刪除以方式回車鍵結(jié)束:\n\n");//打印刪除方式菜單
printf("*1.按航班號(hào)刪除\n\n"
"*2.按航線刪除\n\n"
"*0.返回\n\n");
printf("請(qǐng)?jiān)?-2中選擇以回車鍵結(jié)束:\n");
scanf("%d",n);//讀取刪除方式
if(n==0)
break; //跳出循環(huán)
switch(n)
{
case 1:
printf("請(qǐng)輸入航班號(hào):\n");
scanf("%d",no);//讀取航班號(hào)
read();//調(diào)用讀取函數(shù)
break;//跳出循環(huán)
case 2:
printf("請(qǐng)輸入起始站 名稱:\n");
scanf("%s",name1);//讀取起始站
printf("請(qǐng)輸入終點(diǎn)站名稱:\n");
scanf("%s",name2);//讀取終點(diǎn)站
read();//調(diào)用讀取函數(shù)
break;//跳出循環(huán)
}
for(i=0;im;i++)
{
if(s[i].num==no||strcmp(s[i].start,name1)==0strcmp(s[i].over,name2)==0)//判斷輸入信息是否存在
{
s[i]=s[m-1];
m--;
}
}
printf("查找完畢或沒有這個(gè)信息\n\n");
printf("是否繼續(xù)刪除\n");
printf("請(qǐng)鍵入yes或no以回車鍵結(jié)束\n");
scanf("%s",ii); //讀取是否繼續(xù)信息
save(); //調(diào)用讀取函數(shù)
if(!strcmp(ii,"yes")) //判斷是否繼續(xù)刪除
printf("請(qǐng)按任意鍵以回車鍵結(jié)束返回上層菜單:\n");
break;
}while(n!=1n!=2n!=3n!=4n!=0); //判斷結(jié)束
}
else
printf("對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!謝謝!再見!\n\n");
}
void dingpiao()//訂票模塊
{
int n;
char a[10];
do
{
search();//調(diào)用查詢模塊
printf("請(qǐng)輸入您要訂的機(jī)票數(shù)以回車鍵結(jié)束:\n");
scanf("%d",n);//讀取所訂機(jī)票數(shù)
if(n0)
{
printf("請(qǐng)輸入有效的機(jī)票數(shù)!\n");//判斷機(jī)票數(shù)是否出錯(cuò)
break;
}
if(s[i].count!=0s[i].count=n)//判斷是否出錯(cuò)
{
s[i].count=s[i].count-n;
save();//調(diào)用保存函數(shù)
printf("訂票成功!\n\n");
break;
}
if(s[i].countn)//判斷是否出錯(cuò)
{
printf("請(qǐng)輸入有效的機(jī)票數(shù):\n");
break;
}
printf("是否繼續(xù)? 請(qǐng)輸入yes或no以回車鍵結(jié)束:\n");//判斷是否繼續(xù)訂票
scanf("%s",a);
}while(!strcmp(a,"yes"));//判斷結(jié)束
}
void tuipiao()//退票模塊
{
int n;
char a[10];
do
{
search();//調(diào)用查詢模塊
printf("請(qǐng)輸入您要退的機(jī)票數(shù)目:\n");
scanf("%d",n);//輸入所退票數(shù)
if(n0) //判斷票數(shù)是否有效
printf("請(qǐng)輸入有效的機(jī)票數(shù)!\n");
s[i].count=s[i].count+n;
save(); //調(diào)用保存模塊
printf("退票成功!\n\n");
printf("是否繼續(xù)? 請(qǐng)鍵入yes或no以回車鍵結(jié)束:\n\n");//判斷是否繼續(xù)退票
scanf("%s",a);
}while(!strcmp(a,"yes"));//判斷并跳出循環(huán)
getchar();
}
void xiugai() //修改模塊
{
struct xiu //定義結(jié)構(gòu)體
{
int no;
char name1[20];
char name2[20];
char time[20];
int count;
}x[1];
char j[10];
char f[]="2008china";//設(shè)置密碼
int n;
printf("請(qǐng)輸入密碼并以回車鍵結(jié)束:\n\n");
scanf("%s",f);//讀取密碼
if(strcmp(f,"2008china")==0)//判斷是否出錯(cuò)
{
read();//調(diào)用讀取模塊
do
{
printf( "請(qǐng)選擇修改方式:\n\n"
"*1,按航班號(hào)修改:\n\n"
"*2,按航線修改: \n\n");
printf("請(qǐng)?jiān)?---2中修改以回車鍵結(jié)束:\n\n");
scanf("%d",n);//讀取修改方式
switch(n)
{
case 1:printf("請(qǐng)輸入航班號(hào):\n");
scanf("%d",x[0].no);//讀取航班號(hào)
break;
case 2:printf("請(qǐng)輸入起始站:\n");
scanf("%s",x[0].name1);//讀取起始站
printf("請(qǐng)輸入終點(diǎn)站:\n");
scanf("%s",x[0].name2);//讀取終點(diǎn)站
break;
}
for(i=0;im;i++)
{
if(strcmp(s[i].over,x[0].name1)==0strcmp(s[i].over,x[0].name2)==0)//判斷輸出條件
{
printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 機(jī)票數(shù)\n");
printf(PRINT);
break;
}
if(s[i].num==x[0].no)//判斷輸出條件
{
printf("航班號(hào) 起始站 終點(diǎn)站 時(shí)間 機(jī)票數(shù)\n");
printf(PRINT);
break;
}
}
x[0].no=0; //將結(jié)構(gòu)體中的號(hào)為零
printf("請(qǐng)輸入新航班號(hào)、起始站、終點(diǎn)站、時(shí)間(星期幾)、機(jī)票數(shù):\n");
scanf("%d%s%s%s%d",x[0].no,x[0].name1,x[0].name2,x[0].time,x[0].count);//定義輸入格式
s[i].num=x[0].no;//替換航班號(hào)
strcpy(s[i].start,x[0].name1);//替換其始站
strcpy(s[i].over,x[0].name2);//替換終點(diǎn)站
strcpy(s[i].time,x[0].time);//替換時(shí)間
s[i].count=x[0].count;//替換機(jī)票數(shù)
save();//調(diào)用保存模塊
printf("是否繼續(xù)?請(qǐng)鍵入yes或no以回車鍵結(jié)束:\n\n");
scanf("%s",j);
}while(strcmp(j,"yes")==0); //判斷結(jié)束
}
else
printf("對(duì)不起密碼錯(cuò)誤!您不是管理員,不能使用此項(xiàng)功能!謝謝!再見!\n\n");
}
關(guān)于《飛機(jī)票訂票系統(tǒng)》的介紹到此就結(jié)束了。