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