【簡(jiǎn)介:】本篇文章給大家談?wù)劇讹w機(jī)訂票系統(tǒng)報(bào)告緒論》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。本文目錄一覽:
1、飛機(jī)訂票系統(tǒng)的源代碼
2、小型飛機(jī)場(chǎng)訂票系統(tǒng)
3、飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)
本篇文章給大家談?wù)劇讹w機(jī)訂票系統(tǒng)報(bào)告緒論》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。
本文目錄一覽:
- 1、飛機(jī)訂票系統(tǒng)的源代碼
- 2、小型飛機(jī)場(chǎng)訂票系統(tǒng)
- 3、飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)言
- 4、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng),求詳解,帶有報(bào)告的。
- 5、求飛機(jī)訂票系統(tǒng)設(shè)計(jì)
飛機(jī)訂票系統(tǒng)的源代碼
機(jī)票預(yù)定系統(tǒng)概要設(shè)計(jì)說(shuō)明書(shū)1.引言
1.1 編寫(xiě)目的
在本機(jī)票預(yù)定系統(tǒng)項(xiàng)目的前一階段,也就是需求分析階段中,已經(jīng)將系統(tǒng)用戶(hù)對(duì)本系統(tǒng)的需求做了詳細(xì)的闡述,這些用戶(hù)需求已經(jīng)在上一階段中對(duì)航空公司、各旅行社及機(jī)場(chǎng)的實(shí)地調(diào)研中獲得,并在需求規(guī)格說(shuō)明書(shū)中得到詳盡得敘述及闡明。
本階段已在系統(tǒng)的需求分析的基礎(chǔ)上,對(duì)機(jī)票預(yù)定系統(tǒng)做概要設(shè)計(jì)。主要解決了實(shí)現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計(jì)問(wèn)題。包括如何把該系統(tǒng)劃分成若干個(gè)模塊、決定各個(gè)模塊之間的接口、模塊之間傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊結(jié)構(gòu)的設(shè)計(jì)等。在以下的概要設(shè)計(jì)報(bào)告中將對(duì)在本階段中對(duì)系統(tǒng)所做的所有概要設(shè)計(jì)進(jìn)行詳細(xì)的說(shuō)明。
在下一階段的詳細(xì)設(shè)計(jì)中,程序設(shè)計(jì)員可參考此概要設(shè)計(jì)報(bào)告,在概要設(shè)計(jì)對(duì)機(jī)票預(yù)定系統(tǒng)所做的模塊結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì)。在以后的軟件測(cè)試以及軟件維護(hù)階段也可參考此說(shuō)明書(shū),以便于了解在概要設(shè)計(jì)過(guò)程中所完成的各模塊設(shè)計(jì)結(jié)構(gòu),或在修改時(shí)找出在本階段設(shè)計(jì)的不足或錯(cuò)誤。 1.2 項(xiàng)目背景 本項(xiàng)目(機(jī)票預(yù)定系統(tǒng))時(shí)由浙江航空公司委托,由負(fù)責(zé)開(kāi)發(fā)。
機(jī)票預(yù)定系統(tǒng)將由兩部分組成:置于個(gè)旅行社定票點(diǎn)的前臺(tái)客戶(hù)程序,以及置于航空公司的數(shù)據(jù)庫(kù)服務(wù)器。本系統(tǒng)與其他系統(tǒng)的關(guān)系如下: 1.3 定義 1.3.1 專(zhuān)門(mén)術(shù)語(yǔ)
SQL SERVER: 系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。
SQL: 一種用于訪(fǎng)問(wèn)查詢(xún)數(shù)據(jù)庫(kù)的語(yǔ)言
事務(wù)流:數(shù)據(jù)進(jìn)入模塊后可能有多種路徑進(jìn)行處理。
主鍵:數(shù)據(jù)庫(kù)表中的關(guān)鍵域。值互不相同。
外部主鍵:數(shù)據(jù)庫(kù)表中與其他表主鍵關(guān)聯(lián)的域。
ROLLBACK: 數(shù)據(jù)庫(kù)的錯(cuò)誤恢復(fù)機(jī)制。
1
1.3.2 縮寫(xiě)
系統(tǒng):若未特別指出,統(tǒng)指本機(jī)票預(yù)定系統(tǒng)。
SQL: Structured Query Language(結(jié)構(gòu)化查詢(xún)語(yǔ)言)。
ATM: Asynchronous Transfer Mode (異步傳輸模式)。
1.4 參考資料 以下列出在概要設(shè)計(jì)過(guò)程中所使用到的有關(guān)資料:
1. 機(jī)票預(yù)定系統(tǒng)項(xiàng)目計(jì)劃任務(wù)書(shū) 浙江航空公司 1999/3 2.機(jī)票預(yù)定系統(tǒng)項(xiàng)目開(kāi)發(fā)計(jì)劃 《》軟件開(kāi)發(fā)小組 1999/3
3.需求規(guī)格說(shuō)明書(shū) 《》軟件開(kāi)發(fā)小組 1999/3
4.用戶(hù)操作手冊(cè)(初稿) 《》軟件開(kāi)發(fā)小組 1999/4
5.軟件工程及其應(yīng)用 周蘇、王文等 天津科學(xué)技術(shù)出版社 1992/1
6.軟件工程 張海藩 清華大學(xué)出版社 1990/11
7.Computer Network A.S.Tanenbaun Prentice Hall 1996/01
文檔所采用的標(biāo)準(zhǔn)是參照《軟件工程導(dǎo)論》沈美明著 的“計(jì)算機(jī)軟件開(kāi)發(fā)文檔編寫(xiě)指南”。
2.任務(wù)概述
小型飛機(jī)場(chǎng)訂票系統(tǒng)
有償服務(wù),請(qǐng)聯(lián)絡(luò)我,windy5157@yahoo.com.cn,500塊以?xún)?nèi),包文檔
5年C++開(kāi)發(fā)經(jīng)驗(yàn),
飛機(jī)訂票系統(tǒng)設(shè)計(jì) c語(yǔ)言
(已修改,請(qǐng)用最新的代碼)代碼說(shuō)明:
1級(jí)菜單:選擇購(gòu)買(mǎi)的航班號(hào),并顯示對(duì)應(yīng)座位狀態(tài)。
(我只做測(cè)試,所以初始化initFlight函數(shù)中我只初始了2個(gè)航班,需要自己按照我的代碼添)
(注意:實(shí)際開(kāi)發(fā)軟件,鏈表數(shù)據(jù)是從數(shù)據(jù)庫(kù)中讀取的,需要實(shí)時(shí)同步,如果要多次調(diào)用initFlight函數(shù),記得自己寫(xiě)一個(gè)釋放內(nèi)存的函數(shù),把所有鏈表“SINFO和FLINFO”節(jié)點(diǎn)都釋放掉,釋放函數(shù)我沒(méi)寫(xiě),需要你自己寫(xiě)?。。。?/p>
2級(jí)菜單:選擇購(gòu)買(mǎi)對(duì)應(yīng)座位號(hào),完成購(gòu)買(mǎi),并實(shí)時(shí)顯示購(gòu)買(mǎi)結(jié)果。
位置編號(hào)、座位最大排數(shù)、艙室類(lèi)型、折扣等參數(shù)均由常量參數(shù)空值,需要修改自行改常量。
注意:艙室類(lèi)型(我默認(rèn)3個(gè)類(lèi)型頭等艙、公務(wù)艙、經(jīng)濟(jì)艙)對(duì)應(yīng)折扣參數(shù):tDiscount二維數(shù)組。如要如要添加新的艙室類(lèi)型,必須將參數(shù)常量TYPESIZE、typeName、types、tDiscount這4個(gè)同時(shí)修改,具體看代碼備注?。?/p>
座位票價(jià)=基礎(chǔ)票價(jià)*類(lèi)型折扣*時(shí)段折扣。
因?yàn)轱w機(jī)不讓吸煙,所以我沒(méi)做吸煙區(qū)(笑),如果你需要,可以作為類(lèi)型自行添加!
#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)
//注意:如果修改類(lèi)型數(shù)量,types和tDiscount必須同時(shí)修改?。?!
#defineTYPESIZE3//類(lèi)型數(shù)量
constchartypeName[TYPESIZE][10]={"頭等艙","公務(wù)艙","經(jīng)濟(jì)艙"};
constinttypes[TYPESIZE][2]={{1,2},{3,4},{5,20}};//排號(hào)對(duì)應(yīng)類(lèi)型。1~2排頭等艙,3~4排公務(wù)艙,5~20排經(jīng)濟(jì)艙
constfloattDiscount[TYPESIZE]={1.5,1.3,1};//類(lèi)型折扣。頭等艙1.5倍,公務(wù)艙1.3倍,經(jīng)濟(jì)艙1倍
//-------------------------------------------------------------------------------
typedefstructseatInfo//座位信息,一條鏈表對(duì)應(yīng)一個(gè)航班信息,鏈表順序從第一排左邊第一個(gè)開(kāi)始往后A1~D1,A2~D2。。。
{
charcloID;//位置編號(hào)A、B、C、D
introw;//位置排號(hào)
inttype;//座位所屬類(lèi)型:0:頭等艙、1:公務(wù)艙、2:經(jīng)濟(jì)艙,不同類(lèi)型對(duì)應(yīng)不同的類(lèi)型折扣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à)*類(lèi)型折扣*時(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)谶@里添加?。?!正常軟件開(kāi)發(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)買(mǎi)的航班號(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)買(mǎi)的座位編號(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)買(mǎi)成功!按任意鍵繼續(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)谶@里添加?。?!正常軟件開(kāi)發(fā),這一步應(yīng)該是從數(shù)據(jù)庫(kù)讀??!
{
FLINFO*ffHead=NULL,*flinfoTail=NULL,fNew;
//--------添加一個(gè)航班信息----需要增加按照我下面調(diào)用方式寫(xiě)--------------------------------
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)失??!回車(chē)結(jié)束程序!\n");
while(getch()!='\r');
exit(0);
}
}
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng),求詳解,帶有報(bào)告的。
可以憑借Baiduhi提示我們
有機(jī)會(huì)能夠處理你所遇到的工作
更進(jìn)一步的要求也能夠提示我們
ES:\\53ABFDD3C0894D0F9B505625D27415AF
求飛機(jī)訂票系統(tǒng)設(shè)計(jì)
兄弟(或姐妹):
在你以下的提問(wèn),我已作出評(píng)語(yǔ)和建議了
這問(wèn)題已超乎你能力所及
試想:一個(gè)電腦操作程序、一個(gè)龐大的程序,需要好幾個(gè)光碟才能寫(xiě)完
是《百度知道》收得了嗎?
即使某人能寫(xiě)出這程序,他會(huì)要求版權(quán)費(fèi)...送給你?
別再鬧了,好嗎?
關(guān)于《飛機(jī)訂票系統(tǒng)報(bào)告緒論》的介紹到此就結(jié)束了。