【簡介:】本篇文章給大家談?wù)劇讹w機(jī)訂票系統(tǒng)報告緒論》對應(yīng)的知識點(diǎn),希望對各位有所幫助。本文目錄一覽:
1、飛機(jī)訂票系統(tǒng)的源代碼
2、小型飛機(jī)場訂票系統(tǒng)
3、飛機(jī)訂票系統(tǒng)設(shè)計 c語
本篇文章給大家談?wù)劇讹w機(jī)訂票系統(tǒng)報告緒論》對應(yīng)的知識點(diǎn),希望對各位有所幫助。
本文目錄一覽:
- 1、飛機(jī)訂票系統(tǒng)的源代碼
- 2、小型飛機(jī)場訂票系統(tǒng)
- 3、飛機(jī)訂票系統(tǒng)設(shè)計 c語言
- 4、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計飛機(jī)訂票系統(tǒng),求詳解,帶有報告的。
- 5、求飛機(jī)訂票系統(tǒng)設(shè)計
飛機(jī)訂票系統(tǒng)的源代碼
機(jī)票預(yù)定系統(tǒng)概要設(shè)計說明書1.引言
1.1 編寫目的
在本機(jī)票預(yù)定系統(tǒng)項目的前一階段,也就是需求分析階段中,已經(jīng)將系統(tǒng)用戶對本系統(tǒng)的需求做了詳細(xì)的闡述,這些用戶需求已經(jīng)在上一階段中對航空公司、各旅行社及機(jī)場的實地調(diào)研中獲得,并在需求規(guī)格說明書中得到詳盡得敘述及闡明。
本階段已在系統(tǒng)的需求分析的基礎(chǔ)上,對機(jī)票預(yù)定系統(tǒng)做概要設(shè)計。主要解決了實現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計問題。包括如何把該系統(tǒng)劃分成若干個模塊、決定各個模塊之間的接口、模塊之間傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊結(jié)構(gòu)的設(shè)計等。在以下的概要設(shè)計報告中將對在本階段中對系統(tǒng)所做的所有概要設(shè)計進(jìn)行詳細(xì)的說明。
在下一階段的詳細(xì)設(shè)計中,程序設(shè)計員可參考此概要設(shè)計報告,在概要設(shè)計對機(jī)票預(yù)定系統(tǒng)所做的模塊結(jié)構(gòu)設(shè)計的基礎(chǔ)上,對系統(tǒng)進(jìn)行詳細(xì)設(shè)計。在以后的軟件測試以及軟件維護(hù)階段也可參考此說明書,以便于了解在概要設(shè)計過程中所完成的各模塊設(shè)計結(jié)構(gòu),或在修改時找出在本階段設(shè)計的不足或錯誤。 1.2 項目背景 本項目(機(jī)票預(yù)定系統(tǒng))時由浙江航空公司委托,由負(fù)責(zé)開發(fā)。
機(jī)票預(yù)定系統(tǒng)將由兩部分組成:置于個旅行社定票點(diǎn)的前臺客戶程序,以及置于航空公司的數(shù)據(jù)庫服務(wù)器。本系統(tǒng)與其他系統(tǒng)的關(guān)系如下: 1.3 定義 1.3.1 專門術(shù)語
SQL SERVER: 系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。
SQL: 一種用于訪問查詢數(shù)據(jù)庫的語言
事務(wù)流:數(shù)據(jù)進(jìn)入模塊后可能有多種路徑進(jìn)行處理。
主鍵:數(shù)據(jù)庫表中的關(guān)鍵域。值互不相同。
外部主鍵:數(shù)據(jù)庫表中與其他表主鍵關(guān)聯(lián)的域。
ROLLBACK: 數(shù)據(jù)庫的錯誤恢復(fù)機(jī)制。
1
1.3.2 縮寫
系統(tǒng):若未特別指出,統(tǒng)指本機(jī)票預(yù)定系統(tǒng)。
SQL: Structured Query Language(結(jié)構(gòu)化查詢語言)。
ATM: Asynchronous Transfer Mode (異步傳輸模式)。
1.4 參考資料 以下列出在概要設(shè)計過程中所使用到的有關(guān)資料:
1. 機(jī)票預(yù)定系統(tǒng)項目計劃任務(wù)書 浙江航空公司 1999/3 2.機(jī)票預(yù)定系統(tǒng)項目開發(fā)計劃 《》軟件開發(fā)小組 1999/3
3.需求規(guī)格說明書 《》軟件開發(fā)小組 1999/3
4.用戶操作手冊(初稿) 《》軟件開發(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ī)軟件開發(fā)文檔編寫指南”。
2.任務(wù)概述
小型飛機(jī)場訂票系統(tǒng)
有償服務(wù),請聯(lián)絡(luò)我,windy5157@yahoo.com.cn,500塊以內(nèi),包文檔
5年C++開發(fā)經(jīng)驗,
飛機(jī)訂票系統(tǒng)設(shè)計 c語言
(已修改,請用最新的代碼)代碼說明:
1級菜單:選擇購買的航班號,并顯示對應(yīng)座位狀態(tài)。
(我只做測試,所以初始化initFlight函數(shù)中我只初始了2個航班,需要自己按照我的代碼添)
(注意:實際開發(fā)軟件,鏈表數(shù)據(jù)是從數(shù)據(jù)庫中讀取的,需要實時同步,如果要多次調(diào)用initFlight函數(shù),記得自己寫一個釋放內(nèi)存的函數(shù),把所有鏈表“SINFO和FLINFO”節(jié)點(diǎn)都釋放掉,釋放函數(shù)我沒寫,需要你自己寫?。。。?/p>
2級菜單:選擇購買對應(yīng)座位號,完成購買,并實時顯示購買結(jié)果。
位置編號、座位最大排數(shù)、艙室類型、折扣等參數(shù)均由常量參數(shù)空值,需要修改自行改常量。
注意:艙室類型(我默認(rèn)3個類型頭等艙、公務(wù)艙、經(jīng)濟(jì)艙)對應(yīng)折扣參數(shù):tDiscount二維數(shù)組。如要如要添加新的艙室類型,必須將參數(shù)常量TYPESIZE、typeName、types、tDiscount這4個同時修改,具體看代碼備注??!
座位票價=基礎(chǔ)票價*類型折扣*時段折扣。
因為飛機(jī)不讓吸煙,所以我沒做吸煙區(qū)(笑),如果你需要,可以作為類型自行添加!
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#includemalloc.h
#includetime.h
//-----------------------相關(guān)參數(shù),想改變,在這里修改?。。。。。?!-----------------------------
constfloattimeDiscount=1;//時段折扣,影響所有航班最終價格,默認(rèn)1
constcharcID[5]="ABCD";//位置編號
constintmaxRow=20;//位置最大排號
//注意:如果修改類型數(shù)量,types和tDiscount必須同時修改?。?!
#defineTYPESIZE3//類型數(shù)量
constchartypeName[TYPESIZE][10]={"頭等艙","公務(wù)艙","經(jīng)濟(jì)艙"};
constinttypes[TYPESIZE][2]={{1,2},{3,4},{5,20}};//排號對應(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//座位信息,一條鏈表對應(yīng)一個航班信息,鏈表順序從第一排左邊第一個開始往后A1~D1,A2~D2。。。
{
charcloID;//位置編號A、B、C、D
introw;//位置排號
inttype;//座位所屬類型:0:頭等艙、1:公務(wù)艙、2:經(jīng)濟(jì)艙,不同類型對應(yīng)不同的類型折扣tDiscount
intsell;//出售狀態(tài),0:未出售;1:已出售
structseatInfo*next;
}SINFO;
typedefstructflightInfo//航班信息
{
charfid[10];//航班號
time_ttfTime;//起飛時間
time_tldTime;//降落時間
chartoCity[20];//抵達(dá)城市
floattPrice;//基礎(chǔ)票價,不同位置具有不同折扣,座位票價=基礎(chǔ)票價*類型折扣*時段折扣
structflightInfo*next;
structseatInfo*sHead;//對應(yīng)座位鏈表的頭節(jié)點(diǎn)
}FLINFO;
voidmeError(void*p);
SINFO*getSINFO();//獲取座位鏈表
//addFLINFO:添加航班信息鏈表的節(jié)點(diǎn)flinfoHead:頭節(jié)點(diǎn)(第一次傳NULL會自動生成),flinfoTail:尾節(jié)點(diǎn),fNew:要添加的結(jié)構(gòu)信息(成員指針無需賦值)
FLINFO*addFLINFO(FLINFO**ffHead,FLINFO*flinfoTail,FLINFOfNew);//返回尾節(jié)點(diǎn)
time_tgetTime_tfromStr(char*sTime);//將YYYY-MM-DDhh:mm:ss格式的時間字符串轉(zhuǎn)換成time_t型數(shù)值
FLINFO*initFlight();//初始化航班信息,返回航班鏈表頭節(jié)點(diǎn),如果想手動輸入,請在這里添加!??!正常軟件開發(fā),這一步應(yīng)該是從數(shù)據(jù)庫讀??!
char*getTString(structtm*tm0);//通過tm獲取時間字符串
voidshowSinfo(FLINFO*flinfo);//顯示航班對應(yīng)座位信息
voidprintfFlinfo(FLINFO*flinfoHead);
FLINFO*selectFlinfo(FLINFO*flinfoHead,char*fid);//選擇航班號,返回節(jié)點(diǎn)
voidshowSinfo(FLINFO*flinfo);//顯示航班對應(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("請輸入要購買的航班號:");
scanf("%s",fid);
ffSelect=selectFlinfo(flinfoHead,fid);
if(!ffSelect)
{
printf("未找到對應(yīng)航班,按任意鍵繼續(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("未找到對應(yīng)座位或該座位已出售,請重新輸入!按任意鍵繼續(xù)-----\n");
getch();
system("cls");
continue;
}
printf("購買成功!按任意鍵繼續(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)//顯示航班對應(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)//選擇航班號,返回節(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,航班號:%s\n----起飛時間:%s,抵達(dá)時間:%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格式的時間字符串轉(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),如果想手動輸入,請在這里添加?。?!正常軟件開發(fā),這一步應(yīng)該是從數(shù)據(jù)庫讀??!
{
FLINFO*ffHead=NULL,*flinfoTail=NULL,fNew;
//--------添加一個航班信息----需要增加按照我下面調(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,"臺北");
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會自動生成),flinfoTail:尾節(jié)點(diǎn),fNew:要添加的結(jié)構(gòu)信息(成員指針無需賦值)
{
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--)//按順序生成對應(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)存申請失敗
{
if(p==NULL)
{
printf("\n異常:內(nèi)存申請失??!回車結(jié)束程序!\n");
while(getch()!='\r');
exit(0);
}
}
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計飛機(jī)訂票系統(tǒng),求詳解,帶有報告的。
可以憑借Baiduhi提示我們
有機(jī)會能夠處理你所遇到的工作
更進(jìn)一步的要求也能夠提示我們
ES:\\53ABFDD3C0894D0F9B505625D27415AF
求飛機(jī)訂票系統(tǒng)設(shè)計
兄弟(或姐妹):
在你以下的提問,我已作出評語和建議了
這問題已超乎你能力所及
試想:一個電腦操作程序、一個龐大的程序,需要好幾個光碟才能寫完
是《百度知道》收得了嗎?
即使某人能寫出這程序,他會要求版權(quán)費(fèi)...送給你?
別再鬧了,好嗎?
關(guān)于《飛機(jī)訂票系統(tǒng)報告緒論》的介紹到此就結(jié)束了。