第一篇:4 飛機(jī)訂票系統(tǒng)系統(tǒng)概要設(shè)計(jì)說(shuō)明書
文檔編號(hào): 版本號(hào):V1.0
概要設(shè)計(jì)說(shuō)明書
項(xiàng)目名稱
飛機(jī)訂票系統(tǒng) 項(xiàng)目負(fù)責(zé)人
何柳青 本文檔編寫者 李欣純 項(xiàng)目開發(fā)者 計(jì)算機(jī)081第二組
2010年11月7日 目錄
1.引言.....................................................................1
1.1 編寫目的......................................................................................................................................1 1.2 背景.............................................................................................................................................1 1.3 定義.............................................................................................................................................1 1.4參考資料.......................................................................................................................................1
2.任務(wù)概述...............................................................2
2.1目標(biāo)...............................................................................................................................................2 2.2運(yùn)行環(huán)境.......................................................................................................................................2
2.2.1設(shè)備........................................................................................................................2
2.2.2支持軟件................................................................................................................2 2.3需求概要.......................................................................................................................................2 2.4條件與限制...................................................................................................................................2 3.總體設(shè)計(jì).................................................................3
3.1處理流程.......................................................................................................................................3 3.2總體結(jié)構(gòu)和模塊外部設(shè)計(jì)...........................................................................................................4
4.接口設(shè)計(jì).................................................................4
4.1 硬件接口......................................................................................................................................4 4.2 軟件接口......................................................................................................................................4
5.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì).............................................................5
5.1 邏輯結(jié)構(gòu)設(shè)計(jì)..............................................................................................................................5 5.2 物理結(jié)構(gòu)設(shè)計(jì)..............................................................................................................................5 5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系..............................................................................................................5
6.運(yùn)行設(shè)計(jì).................................................................5
6.1 運(yùn)行模塊的組合..........................................................................................................................5 6.2 運(yùn)行控制......................................................................................................................................5 6.3 運(yùn)行時(shí)間......................................................................................................................................5
7.出錯(cuò)處理設(shè)計(jì).............................................................6
7.1 出錯(cuò)輸出信息..............................................................................................................................6 7.2 出錯(cuò)處理對(duì)策..............................................................................................................................6
8.安全保密設(shè)計(jì).............................................................6 9.維護(hù)設(shè)計(jì).................................................................6
1.引言
1.1 編寫目的
從該階段正式進(jìn)入軟件的實(shí)際開發(fā)階段,本文檔將對(duì)《飛機(jī)訂票系統(tǒng)》的軟件功能進(jìn)行描述。本階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的系統(tǒng)結(jié)構(gòu)圖。本概要設(shè)計(jì)說(shuō)明書的目的就是進(jìn)一步細(xì)化軟件設(shè)計(jì)階段得出的軟件總體概貌,把它加工成在程序細(xì)節(jié)上非常接近于源程序的軟件表示。本文檔的讀者是項(xiàng)目策劃、設(shè)計(jì)和評(píng)審人員。
1.2 背景
開發(fā)軟件名稱:飛機(jī)票訂系統(tǒng)。
//(1)項(xiàng)目任務(wù)提出者:中國(guó)民航及中國(guó)國(guó)際旅游開發(fā)公司。(2)項(xiàng)目開發(fā)者:何柳靑,陸銀琳,李欣純,單國(guó)英,阿依古麗
(3)項(xiàng)目與其他軟件,系統(tǒng)的關(guān)系:本項(xiàng)目采用客戶機(jī)/服務(wù)器原理,客戶端的程序是建立在Windows NT 系統(tǒng)上以Microsoft Visual C++為開發(fā)軟件的應(yīng)用程序,服務(wù)器端采用Linux 為操作系統(tǒng)的工作站,是采用Oracle 8的為開發(fā)軟件的數(shù)據(jù)庫(kù)服務(wù)程序。
1.3 定義
概要設(shè)計(jì)說(shuō)明書中的專門術(shù)語(yǔ)有:數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),總體設(shè)計(jì),接口設(shè)計(jì),運(yùn)行設(shè)計(jì),系統(tǒng)出錯(cuò)處理設(shè)計(jì)。
1.4參考資料
《軟件工程導(dǎo)論》 清華大學(xué)出版社 張海藩 編著 《實(shí)用軟件工程》 清華大學(xué)出版社 鄭人杰 等 編著
《數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)》 高等教育出版社 薩師煊 王珊等編著 《實(shí)用軟件文檔寫作》 清華大學(xué)出版社 肖剛等 編著 《軟件工程》第3版 人民郵電出版社 張海藩等 編著 2.任務(wù)概述
2.1目標(biāo)
該階段目的在于明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件結(jié)構(gòu),此外總體設(shè)計(jì)還將給出內(nèi)部軟件和外部系統(tǒng)部分之間的接口定義,各個(gè)軟件模塊的功能說(shuō)明,數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)以及具體的裝配要求。
2.2運(yùn)行環(huán)境
2.2.1設(shè)備
硬件最低要求:內(nèi)存128MB,硬盤20G以上PC機(jī)
2.2.2支持軟件
vc++.net 傳感器windows系列os 如 win98/me/2000pro server/xp/server2003/win7 2.3需求概要
系統(tǒng)主要的輸入輸出:
1.乘客通過(guò)登錄用戶界面輸入姓名和密碼,進(jìn)行登錄,查詢信息等; 2.操作人員根據(jù)乘客的要求輸入信息到數(shù)據(jù)庫(kù)中進(jìn)行相應(yīng)的查詢及修3.4.5.改;
操作人員或用戶登錄相應(yīng)的界面輸入基本信息,例如姓名,性別,年齡,身份證號(hào)等;
公告信息的輸出,公告信息的回復(fù);
航班具體情況的輸出,剩余票數(shù)的輸出,及臨時(shí)調(diào)整的輸出。
2.4條件與限制
為了評(píng)價(jià)該設(shè)計(jì)階段的設(shè)計(jì)表示的“優(yōu)劣程度”,必須遵循以下幾個(gè)準(zhǔn)則:
(1)軟件設(shè)計(jì)應(yīng)當(dāng)表現(xiàn)出層次結(jié)構(gòu),它應(yīng)巧妙地利用各個(gè)軟件部件之間的控制關(guān)系;
(2)設(shè)計(jì)應(yīng)當(dāng)是模塊化的,即該軟件應(yīng)當(dāng)從邏輯上被劃分成多個(gè)部件,分別實(shí)現(xiàn)各種特定功能和子功能;(3)設(shè)計(jì)最終應(yīng)當(dāng)給出具體的模塊(例如子程序或過(guò)程),這些模塊就具有獨(dú)立的功能特性;
(4)應(yīng)當(dāng)應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來(lái)獲得設(shè)計(jì)。
3.總體設(shè)計(jì)
3.1處理流程
系統(tǒng)的總體處理流程如下圖:
開始進(jìn)入用戶登錄界面是否為后臺(tái)數(shù)據(jù)管理員NO YES是否訂票NOYES查看航班信息YESNO是否改簽NOYES查詢顯示航班信息YES是否修改退票改簽訂票修改信息NO結(jié)束圖3.1 流程圖 3.2總體結(jié)構(gòu)和模塊外部設(shè)計(jì)
模塊是軟件是軟件結(jié)構(gòu)的基礎(chǔ),軟件結(jié)構(gòu)的好壞完全由模塊的屬性體現(xiàn)出來(lái),把軟件模塊化的目的是為了降低軟件復(fù)雜性,使軟件設(shè)計(jì)、測(cè)試、調(diào)試、維護(hù)等工作變得簡(jiǎn)易,但隨著模塊數(shù)目的增加,通過(guò)接口連接這些模塊的工作量也隨之增加。
從系統(tǒng)的層次圖中可以看出,訂票以及退票的信息輸入輸出功能是由航班數(shù)據(jù)管理系統(tǒng)進(jìn)行的。
飛機(jī)訂票系統(tǒng)登錄驗(yàn)證乘客信息修改訂票管理航班信息查詢航班信息調(diào)整后臺(tái)管理員驗(yàn)證用戶身份驗(yàn)證乘客基本信息錄入乘客基本信息修改乘客票務(wù)信息修改乘客訂票改簽退票按時(shí)間查詢按目的地查詢按航班號(hào)查詢?cè)黾有潞桨嘈薷脑泻桨鄤h除航班圖3.2系統(tǒng)層次圖
4.接口設(shè)計(jì)
4.1 硬件接口
本軟件不需要特定的硬件或硬件接口進(jìn)行支持。
4.2 軟件接口
可以運(yùn)行于Windows等操作系統(tǒng)之上。5.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
5.1 邏輯結(jié)構(gòu)設(shè)計(jì)
1.航空公司表:AIRLINE 2.客戶表CUSTOMER 3.飛機(jī)表PLANE 4.航線表LINE 5.航班表FLIGHT 6.訂票表BOOKTICKET 5.2 物理結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的物理結(jié)構(gòu)具體由數(shù)據(jù)庫(kù)來(lái)設(shè)計(jì)與生成的。
5.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系
系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)由標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言SQL生成。
6.運(yùn)行設(shè)計(jì)
6.1 運(yùn)行模塊的組合
具體軟件的運(yùn)行模塊組合為程序多窗口的運(yùn)行環(huán)境,各個(gè)模塊在軟件運(yùn)行過(guò)程中能較好的交換信息,處理數(shù)據(jù)。
6.2 運(yùn)行控制
軟件運(yùn)行時(shí)有較友好的界面,基本能夠?qū)崿F(xiàn)用戶的數(shù)據(jù)處理要求。
6.3 運(yùn)行時(shí)間
系統(tǒng)的運(yùn)行時(shí)間基本可以達(dá)到用戶所提出來(lái)的要求。7.出錯(cuò)處理設(shè)計(jì)
7.1 出錯(cuò)輸出信息
用戶使用錯(cuò)誤的數(shù)據(jù)或訪問(wèn)沒(méi)有權(quán)限的數(shù)據(jù)后,系統(tǒng)給出提示:“對(duì)不起,你無(wú)法使用數(shù)據(jù),沒(méi)有權(quán)限!”而且用戶的密碼管理可以允許用戶修改自己的密碼,不允許用戶的匿名登錄。
7.2 出錯(cuò)處理對(duì)策
由于數(shù)據(jù)在數(shù)據(jù)庫(kù)中已經(jīng)有備份,故在系統(tǒng)出錯(cuò)后可以依靠數(shù)據(jù)庫(kù)恢復(fù)功能,并且依靠日志文件使系統(tǒng)再啟動(dòng),就算系統(tǒng)崩潰用戶的數(shù)據(jù)也不會(huì)丟失或遭到破壞。但有可能占用更多的數(shù)據(jù)存儲(chǔ)空間,權(quán)衡措施由用戶來(lái)決定。
8.安全保密設(shè)計(jì)
系統(tǒng)的系統(tǒng)用戶管理保證了只有授權(quán)的用戶才能進(jìn)入系統(tǒng)進(jìn)行數(shù)據(jù)操作,而且對(duì)一些重要的數(shù)據(jù),系統(tǒng)設(shè)置為只有最高權(quán)限的人員方可讀取或是操作。系統(tǒng)安全保密性較高。
9.維護(hù)設(shè)計(jì)
由于系統(tǒng)較小沒(méi)有加外加維護(hù)模塊,因?yàn)橄到y(tǒng)維護(hù)工作比較簡(jiǎn)單,僅靠數(shù)據(jù)庫(kù)的一些基本維護(hù)。
第二篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 飛機(jī)訂票系統(tǒng)
飛機(jī)訂票系統(tǒng)
1.需求分析
描述要求編程解決的問(wèn)題。以無(wú)歧義的陳述說(shuō)明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么?明確規(guī)定:
(a)輸入的形式和輸入值的范圍;
(b)輸出的形式;
(c)程序所能達(dá)到的功能;
(d)測(cè)試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。
2.概要設(shè)計(jì)
給出程序要達(dá)到的具體的要求。描述解決相應(yīng)問(wèn)題算法的設(shè)計(jì)思想。描述所設(shè)計(jì)程序的各個(gè)模塊(即函數(shù))功能。說(shuō)明本程序中用到的所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。
3.詳細(xì)設(shè)計(jì)
實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類型,對(duì)每個(gè)操作只需要寫出流程或偽碼算法;對(duì)主程序和其他模塊也都需要寫出流程或偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計(jì)算機(jī)鍵盤直接輸入高級(jí)程序設(shè)計(jì)語(yǔ)言程序);畫出函數(shù)的調(diào)用關(guān)系圖。給出所使用的基本抽象數(shù)據(jù)類型,所定義的具體問(wèn)題的數(shù)據(jù)類型,以及新定義的抽象數(shù)據(jù)類型。設(shè)計(jì)出良好的輸入輸出界面(清晰易懂)。
4.調(diào)試分析 內(nèi)容包括:
(a)調(diào)試過(guò)程中遇到的問(wèn)題是如何解決的以及對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析;
(b)算法的時(shí)空分析(包括基本操作和其他算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析)和改進(jìn)設(shè)想;
(c)經(jīng)驗(yàn)和體會(huì)等。
5.用戶使用說(shuō)明
說(shuō)明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。
6.測(cè)試結(jié)果
設(shè)計(jì)測(cè)試數(shù)據(jù),或具體給出測(cè)試數(shù)據(jù)。要求測(cè)試數(shù)據(jù)能全面地測(cè)試所設(shè)計(jì)程序的功能。列出你的測(cè)試結(jié)果,包括輸入和輸出。這里的測(cè)試數(shù)據(jù)應(yīng)該完整和嚴(yán)格,最好多于需求分析中所列。
7.測(cè)試情況:給出程序的測(cè)試情況,并分析運(yùn)行結(jié)果
附錄(非必須,按照需要添加)
帶注釋的源程序。可以只列出程序文件名的清單。
需求分析
任務(wù):通過(guò)此系統(tǒng)可以實(shí)現(xiàn)如下功能: 錄入:
可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)
查詢:
可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng)); 可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;
訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無(wú)票,可以提供相關(guān)可選擇航班;
退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;
客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。
概要設(shè)計(jì)
詳細(xì)設(shè)計(jì)
詳列函數(shù) void list(){
struct airline *info;
int i=0;
info=start;
printf(“起點(diǎn)城市t終點(diǎn)城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”);
while(i { display(info); info++; i++; } printf(“nn”);} 查詢函數(shù) void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請(qǐng)輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入要抵達(dá)城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒(méi)有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請(qǐng)輸入航班號(hào):”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒(méi)有這條航線!n”); return NULL;} 訂票函數(shù) void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請(qǐng)輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請(qǐng)輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); printf(“請(qǐng)輸入您的身份證號(hào):”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號(hào)是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } 退票函數(shù) void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒(méi)有訂過(guò)票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} 存儲(chǔ)結(jié)構(gòu) typedef struct passenger { char name[10]; int tickets; char id[30]; struct passenger *next;} linklist;typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo;調(diào)試分析 查看航線信息 查詢航線 ① 輸入起飛城市 ② 輸入抵達(dá)城市 ③ 輸出航班信息 辦理訂票業(yè)務(wù) ① 查詢符合的航班 ② 查詢余票量 ③ 輸出航班信息 辦理退票業(yè)務(wù) 源代碼 #include char name[10]; int tickets; char id[30]; struct passenger *next;} linklist; typedef struct airline { char qi_name[10]; char jiang_name[10]; char air_num[10]; char qi_time[10]; char jiang_time[10]; int ticket_all; int ticket_left; linklist *order;} lineinfo; struct airline *start; void display(struct airline *info){ printf(“%st %10st %10st %10st %10st %5dt %5dn”,info->qi_name,info->jiang_name,info->air_num,info->qi_time,info->jiang_time,info->ticket_all,info->ticket_left);} void list(){ struct airline *info; int i=0; info=start; printf(“起點(diǎn)城市t終點(diǎn)城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); while(i { display(info); info++; i++; } printf(“nn”);} void search(){ struct airline *info,*find(); char qiname[10]; char jiangname[10]; int i=0; info=start; printf(“請(qǐng)輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入要抵達(dá)城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒(méi)有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號(hào)t起飛時(shí)間t降落時(shí)間t總票數(shù)t余票數(shù)n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請(qǐng)輸入航班號(hào):”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒(méi)有這條航線!n”); return NULL;} linklist *insertlink(linklist *head,int amount,char name[],char id[]){ linklist *p1,*new1; p1=head; new1=(linklist*)malloc(sizeof(linklist)); strcpy(new1->name,name); new1->tickets=amount; new1->next=NULL; strcpy(new1->id,id); if(head==NULL) { head=new1; new1->next=NULL; } else { while(p1->next!=NULL) p1=p1->next; p1->next=new1; } return head;} void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請(qǐng)輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請(qǐng)輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請(qǐng)輸入您需要的票數(shù):”); scanf(“%d”,&amount); int i=1; while(i<5) { if(!strcmp(info->qi_name,qiname)&&!strcmp(info->jiang_name,jiangname)) { if(amount<=info->ticket_left) { int i; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); printf(“請(qǐng)輸入您的身份證號(hào):”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號(hào)是:%dn”,name,info->ticket_all-info->ticket_left+i+1); } info->ticket_left-=amount; printf(“訂票成功!n”); break; } else { info++; i++; } } else { info++; i++; } } } void returnticket(){ struct airline *info; linklist *p1,*p2,*head; char name[10]; if(!(info=find())) { return; } head=info->order; p1=head; printf(“請(qǐng)輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒(méi)有訂過(guò)票!n”); return; } else { if(p1==head) { head=p1->next; } else { p2->next=p1->next; } info->ticket_left+=p1->tickets; printf(“%s退票成功!n”,p1->name); free(p1); } info->order=head;} int menu_select(){ int c; char s[20]; printf(“ 訂票系統(tǒng)n”); printf(“-------------n”); printf(“ 1.查看航線信息 printf(” 2.查詢航線 printf(“ 3.辦理訂票業(yè)務(wù) printf(” 4.辦理退票業(yè)務(wù) printf(“ 5.退出系統(tǒng) printf(”-------------n“); do { printf(”請(qǐng)選擇(1-5):“); scanf(”%s“,s); c=atoi(s); } while(c<1||c>6); return c; n”);n“);n”);n“); n”); } int main(){ struct airline air[MAXSIZE]= { {“harbin”,“beijing”,“1”,“12:00”,“14:00”,30,30},{“harbin”,“shanghai”,“2”,“10:00”,“13:00”,20,20},{“harbin”,“beijing”,“3”,“13:30”,“10:00”,50,50},{“harbin”,“guangzhou”,“4”,“17:00”,“21:00”,50,50},{“harbin”,“dalian”,“5”,“14:00”,“17:00”,40,40} }; start=air; while(1) { system(“cls”); switch(menu_select()) { case 1: list(); break; case 2: search(); break; case 3: order(); break; case 4: returnticket(); break; case 5: exit(0); } getch(); } } 經(jīng)驗(yàn)體會(huì) 1、通過(guò)設(shè)計(jì)飛機(jī)訂票系統(tǒng),加深了對(duì)鏈表的運(yùn)用和理解。 2、通過(guò)多組測(cè)試數(shù)據(jù),發(fā)現(xiàn)了程序的問(wèn)題,并做了調(diào)整、3、通過(guò)設(shè)計(jì)選擇菜單,對(duì)選擇結(jié)構(gòu)有更深刻的了解。 飛機(jī)訂票系統(tǒng) 1.概述(設(shè)計(jì)題目與可行性分析) 1.1設(shè)計(jì)題目:飛機(jī)訂票系統(tǒng) 1.2可行性分析 飛機(jī)訂票系統(tǒng)是為機(jī)場(chǎng)工作人員和客戶提供訂票退票等與機(jī)票相關(guān)內(nèi)容的管理系統(tǒng),方便機(jī)場(chǎng)工作人員對(duì)機(jī)票的管理,以提高機(jī)場(chǎng)工作人員對(duì)機(jī)票管理工作的效率。當(dāng)前飛機(jī)訂票問(wèn)題:手工訂票所產(chǎn)生的客座率低。而我們的目標(biāo)是:建立一個(gè)飛機(jī)訂票系統(tǒng)數(shù)據(jù)庫(kù)。 1.2.1研究現(xiàn)有系統(tǒng),畫現(xiàn)有系統(tǒng)的流程圖 了解當(dāng)前系統(tǒng)能夠完成的功能及組成 航班管理:票據(jù)管理 售票點(diǎn):直接面向用戶 航班管理 票據(jù)管理 票庫(kù) 訂票庫(kù) 訂票管理 出售管理 打印機(jī)票 售票點(diǎn)1 售票點(diǎn)n 現(xiàn)有系統(tǒng):票據(jù)都分布在各個(gè)售票點(diǎn) 1.2.2導(dǎo)出新系統(tǒng)的高層邏輯結(jié)構(gòu) 數(shù)據(jù)流圖的基本符號(hào): 數(shù)據(jù)源/終點(diǎn)(人機(jī)界面): 加工處理: 文件名 文件: 數(shù)據(jù)流名 數(shù)據(jù)流: 票價(jià)信息 機(jī)票 查訂票號(hào) 訂票處理 客戶信息 出票處理 訂票記錄 顧客 訂票信息 訂票號(hào) 庫(kù)存信息 票價(jià)信息 票價(jià)管理 航班管理 航班信息 操作員 航班信息 保存 新系統(tǒng)的數(shù)據(jù)流圖: 說(shuō)明:流向文件的數(shù)據(jù)流的名可以省略 1.2.3可行性分析報(bào)告 隨著Internet的迅速發(fā)展和用戶數(shù)量的急劇增加,互聯(lián)網(wǎng)對(duì)于企業(yè)和事業(yè)單位的運(yùn)營(yíng)和發(fā)展日益重要,網(wǎng)上交易也逐漸被人們認(rèn)可,并成為未來(lái)交易的發(fā)展方向。在這種情況下,很多原有的C/S模式的系統(tǒng)也逐步向B/S模式靠攏,飛機(jī)訂票系統(tǒng)也不例外。 飛機(jī)訂票系統(tǒng)是飛機(jī)旅游服務(wù)信息系統(tǒng)的一個(gè)重要組成部分。為旅客提供優(yōu)質(zhì)便捷的服務(wù),為了提高飛機(jī)客運(yùn)的售票效率,豐富飛機(jī)客運(yùn)的營(yíng)銷手段,飛機(jī)售票總站的下屬代售點(diǎn)可以通過(guò)公用的互聯(lián)網(wǎng)資源,建立數(shù)據(jù)庫(kù),實(shí)現(xiàn)網(wǎng)上的售票,查詢及管理工作。 2.系統(tǒng)目標(biāo)和設(shè)計(jì)原則 2.1系統(tǒng)目標(biāo): 建立一個(gè)飛機(jī)訂票系統(tǒng)數(shù)據(jù)庫(kù)。 2.1.1系統(tǒng)簡(jiǎn)介: 本系統(tǒng)是專為乘坐飛機(jī)的旅客準(zhǔn)備的,旅客只需把自己的信息(姓名.性別.工作單位.身份證號(hào).旅行時(shí)間.旅行目的地)預(yù)先交給旅行社,旅行社就可以將信息輸入本系統(tǒng),系統(tǒng)就可以為旅客安排航班,打印出取票通知和帳單。旅客只要在飛機(jī)起飛的前一天憑取票通知單和帳單交款取單,系統(tǒng)校對(duì)無(wú)誤即印出機(jī)票給旅客。 2.2設(shè)計(jì)原則 2.2.1根據(jù)實(shí)際情況考慮三種可行性 技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性 2.2.2提出侯選方案、提出各種各樣的實(shí)現(xiàn)方案 主機(jī)(純主機(jī)型、C/S型)、開發(fā)環(huán)境、網(wǎng)絡(luò)方案、對(duì)提出的每個(gè)方案進(jìn)行成本估計(jì) 硬件、軟件費(fèi)用投資(根據(jù)各公司的報(bào)價(jià))開發(fā)成本估計(jì)(任務(wù)估算法) 運(yùn)行費(fèi)用、投資回收期 純收入:通過(guò)本系統(tǒng)的運(yùn)行、投資回收后的收入 3、描述推薦理由:分別從技術(shù)、經(jīng)濟(jì)、用戶、投資方的不同角度考慮 3.支撐環(huán)境規(guī)劃 3.1整體系統(tǒng)運(yùn)作圖 3.2運(yùn)行環(huán)境 服務(wù)器:硬件配置:CPU Intel P4 1.2G以上 內(nèi)存256 硬盤 80G以上 軟件配置:Windows 2000/2003 SERVER SQL SERVER 2000 4.系統(tǒng)功能結(jié)構(gòu) 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ù)文件; 客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。 5、修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件。 5.數(shù)據(jù)庫(kù)設(shè)計(jì) 5.1概念結(jié)構(gòu)設(shè)計(jì) E-R圖如下: 5.2邏輯結(jié)構(gòu)設(shè)計(jì) 1.航空公司表:AIRLINE 2.客戶表CUSTOMER 3、飛機(jī)表PLANE 4.航線表LINE 5.航班表FLIGHT 6.訂票表BOOKTICKET 5.3實(shí)現(xiàn)設(shè)計(jì) 實(shí)現(xiàn)以下操作: 1、注冊(cè)航空公司: 2、增加飛機(jī): 3、增加航線: 4、增加航班: 5、增加客戶: 6、建立一個(gè)訂票的存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程名為Book_Ticket,請(qǐng)完成以下存儲(chǔ)過(guò)程,實(shí)現(xiàn)訂票的操作: a)指定要訂的航班號(hào)(HID)及客戶的編號(hào)(KID); b)先查看客戶是否為特殊客戶,如果不是,票價(jià)不打折扣; c)否則如果客戶航程超過(guò)5萬(wàn)公里,票價(jià)7折,超過(guò)15萬(wàn)公里,票價(jià)打5折; d)查看客戶訂票以后,所有乘客的票數(shù)是否超過(guò)總的座位數(shù),如果超過(guò),回滾訂票操作; e)要求在操作過(guò)程中使用到事務(wù)技術(shù)。 CREATE PROCEDURE Book_ticket @HID VARCHAR(20) @HID VARCHAR(20) AS DECLARE @TRANS_NAME VARCHAR(20)select @TRANS_NAME=’ ’ BEGIN TRANSACTION DECLARE @Bookid int,@seats int,@IsSpec char(1)/*定義訂票里程DIST、折扣率discount、總的訂票里程distance、票價(jià)PRICE(實(shí)型)*/ select @Isspec=Isspec,@distance=Points FROM Customer where select @discount=1 IF @ BEGIN END /*選擇出票價(jià)*/ SELECT @PRICE=PRICE FROM FLIGHT WHERE /*加入客戶訂票信息*/ /*將客戶新訂票里程的信息累計(jì)到用戶信息里面*/ UPDATE SET WHERE /*查看客戶訂票后,是否超過(guò)可容納的座位數(shù)目,如果超過(guò),取消所有操作*/ SELECT booked=count(*)FROM WHERE FID= /*查看額定座位容量*/ SELECT @seats=seatsnum FROM WHERE IF @BOOKED>@SEATS ELSE COMMIT TRANSACTION GO 7.運(yùn)行這個(gè)訂票操作的存儲(chǔ)過(guò)程(自己設(shè)定客戶及航班) book_ticket , 8.事務(wù)運(yùn)行成功后,再顯示各表的數(shù)據(jù),按表分別寫出來(lái)。 6.總體實(shí)施計(jì)劃 6.1可行性研究: 研究現(xiàn)有系統(tǒng),畫現(xiàn)有系統(tǒng)的流程圖,編寫可行性分析報(bào)告 6.2進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì): 概念結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì),實(shí)現(xiàn)設(shè)計(jì) 6.3概要設(shè)計(jì): 從數(shù)據(jù)流圖導(dǎo)出初始結(jié)構(gòu)圖,設(shè)計(jì)優(yōu)化 6.4詳細(xì)設(shè)計(jì): 結(jié)構(gòu)化的程序設(shè)計(jì),采用流程圖的形式 6.5保密設(shè)計(jì) 1.每個(gè)用戶需要注冊(cè)才能進(jìn)入航空訂票信息系統(tǒng),并進(jìn)行網(wǎng)上訂票的。用戶必須 用自己真實(shí)的身份進(jìn)行注冊(cè)。 2.系統(tǒng)要另外在備一份數(shù)據(jù)庫(kù),防止系統(tǒng)出現(xiàn)錯(cuò)誤而使數(shù)據(jù)信息丟失的可能性。 3.系統(tǒng)要安裝防火墻,防止黑客入侵破壞系統(tǒng)。還有就是安裝殺毒軟件,防止 病毒入侵而導(dǎo)致系統(tǒng)癱瘓。 6.6維護(hù)設(shè)計(jì) 系統(tǒng)設(shè)置提供管理員操作頁(yè)面: 1.提供管理員密碼,方便維護(hù)操作.2.固定時(shí)間對(duì)系統(tǒng)進(jìn)行維護(hù)和檢測(cè).3.若系統(tǒng)出現(xiàn)癱瘓時(shí),可出動(dòng)備用系統(tǒng)維持運(yùn)轉(zhuǎn).4.定期對(duì)系統(tǒng)進(jìn)行更新整頓清空.7.總結(jié) 這次數(shù)據(jù)庫(kù)課程設(shè)計(jì)的“飛機(jī)訂票系統(tǒng)”,通過(guò)近一周的上機(jī)操作,充分應(yīng)用了所學(xué)的數(shù)據(jù)庫(kù)的知識(shí),并去圖書館查閱了一些書集和上網(wǎng)搜索一部分相當(dāng)資料,粗略設(shè)計(jì)出該系統(tǒng)。總體上來(lái)說(shuō),這次課程設(shè)計(jì)還是比較成功的,充分運(yùn)用了所學(xué)的軟件工程設(shè)計(jì)、數(shù)據(jù)庫(kù)的設(shè)計(jì),設(shè)計(jì)出E-R圖、流程圖、數(shù)據(jù)庫(kù)基本表,從整體規(guī)劃出了系統(tǒng)的運(yùn)行環(huán)境和系統(tǒng)實(shí)現(xiàn)的功能。 當(dāng)然,由于學(xué)藝不精,在課程設(shè)計(jì)的過(guò)程也碰到的一些問(wèn)題。其中,畫E-R圖時(shí),各實(shí)體中的關(guān)系的確定,由于對(duì)系統(tǒng)還不夠了解而找不到一個(gè)準(zhǔn)確的詞來(lái)形容;總體規(guī)劃時(shí),材料太多,不易整理;相關(guān)數(shù)據(jù)庫(kù)技術(shù)方面沒(méi)有多注意,這次課程設(shè)計(jì)的重點(diǎn)只在對(duì)整個(gè)系統(tǒng)的總體思路設(shè)計(jì)。 其實(shí)這些通過(guò)最近的課程設(shè)計(jì)覺(jué)得最重要一點(diǎn)就是:我們一定要自己動(dòng)手,這樣才能真正的學(xué)到東西。書本知識(shí)固然重要,但我們更要學(xué)會(huì)將書本知識(shí)應(yīng)用到實(shí)際的工作中。實(shí)踐中才會(huì)發(fā)現(xiàn)錯(cuò)誤,也才能改進(jìn),才能達(dá)到學(xué)習(xí)的最終目的。 最后感謝在這次課程設(shè)計(jì)中幫助過(guò)我的老師,同學(xué)!8.參考文獻(xiàn) 物流信息系統(tǒng) 趙剛 四川大學(xué)人民出版社 2002/9 物流信息管理 尹濤 東北財(cái)經(jīng)大學(xué)出版社 2005/1 數(shù)據(jù)庫(kù)系統(tǒng)概論 王珊 薩師煊 高等教育出版社 2006/5 數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用-Access2000篇 郭力平人民郵電出版社 2002/8 軟件設(shè)計(jì)師教程 陳平禇華 清華大學(xué)出版社 2006/6 文章引用自: 飛機(jī)訂票系統(tǒng) —項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告 本文檔的范圍和目的 本文主要針對(duì)飛機(jī)訂票系統(tǒng)軟件開發(fā)涉及到的風(fēng)險(xiǎn),包括在軟件開發(fā)周期過(guò)程中可能出現(xiàn)的風(fēng)險(xiǎn)以及軟件實(shí)施過(guò)程中外部環(huán)境的變化可能引起的風(fēng)險(xiǎn)等進(jìn)行評(píng)估。在文中對(duì)所提到的風(fēng)險(xiǎn)都一一做了詳細(xì)的分析,并提出了相應(yīng)的風(fēng)險(xiǎn)回避措施。主要風(fēng)險(xiǎn)綜述 任何軟件的開發(fā),其主要風(fēng)險(xiǎn)均來(lái)自于兩個(gè)方面,一是軟件管理,二是軟件體系結(jié)構(gòu)。軟件產(chǎn)品的開發(fā)是工程技術(shù)與個(gè)人創(chuàng)作的有機(jī)結(jié)合。軟件開發(fā)是人的集體智慧按照工程化的思想進(jìn)行發(fā)揮的過(guò)程。軟件管理是保證軟件開發(fā)工程化的手段。軟件體系結(jié)構(gòu)的合理程度是取決于集體智慧發(fā)揮的程度和經(jīng)驗(yàn)的運(yùn)用。 1、軟件是否能夠按工期的要求完成:時(shí)間定為2個(gè)月,能按期完成。 2、軟件需求的調(diào)研是否深入透徹:軟件的需求的調(diào)研花了一個(gè)月,已了解大致的需求。 3、軟件的實(shí)現(xiàn)技術(shù)手段是否能夠同時(shí)滿足性能要求:由于是第一次,所以難免會(huì)有一些不足,但會(huì)盡力去客服。 4、軟件的可伸縮性:預(yù)設(shè)計(jì)為滿足未來(lái)3-5年的需要。 5、軟件的可維護(hù)性:軟件的維護(hù)也是必然的事情,為了保證軟件的較長(zhǎng)使用壽命,軟件就必須適應(yīng)不斷的業(yè)務(wù)需求變化,根據(jù)業(yè)務(wù)需求的變化對(duì)軟件進(jìn)行修改,軟件代碼無(wú)需修改,僅僅是在系統(tǒng)提供的配置文件中進(jìn)行適當(dāng)?shù)男薷模缓筌浖匦录虞d進(jìn)入運(yùn)行狀態(tài),就完成了系統(tǒng)部分功能和性能要求的變化。對(duì)于重大改動(dòng),需要打開源代碼進(jìn)行修改的,也僅僅是先繼承原先的代碼,然后用新的功能接替原先的調(diào)用接口,這樣將把軟件改動(dòng)量減小到最低。 項(xiàng)目管理的風(fēng)險(xiǎn) 一般參與軟件開發(fā)的人員和其責(zé)任如下: 由于軟件開發(fā)小組共有5人,項(xiàng)目經(jīng)理1人 主要職責(zé):進(jìn)行全局把握 制定項(xiàng)目開發(fā)計(jì)劃和開發(fā)策略,參與項(xiàng)目核心系統(tǒng)的分析設(shè)計(jì),同時(shí)努力保證開發(fā)計(jì)劃的按時(shí)完成和開發(fā)策略的真正貫徹落實(shí)。 其他4人 主要職責(zé):進(jìn)行軟件系統(tǒng)的分析和設(shè)計(jì)工作,書寫軟件需求分析和系統(tǒng)設(shè)計(jì)相關(guān)文檔,進(jìn)行詳細(xì)設(shè)計(jì),和軟件系統(tǒng)的代碼實(shí)現(xiàn),并進(jìn)行適當(dāng)?shù)陌缀袦y(cè)試。 軟件技術(shù)風(fēng)險(xiǎn) 本系統(tǒng)擬訂采用的兩個(gè)重大的軟件技術(shù)是面向?qū)ο蟮臉?gòu)件和基于微軟的COM組件技術(shù)。組件和構(gòu)件技術(shù)都是為了提高軟件的可靠性和軟件的可擴(kuò)展性而采用的技術(shù)手段。從技術(shù)成熟度上說(shuō)不存在風(fēng)險(xiǎn),但為了實(shí)現(xiàn)良好的軟件構(gòu)架和穩(wěn)定的組件,與傳統(tǒng)開發(fā)方法比較,有相當(dāng)?shù)亩嗟念~外工作需要做,這會(huì)給項(xiàng)目工期帶來(lái)較大的風(fēng)險(xiǎn)。 回避和控制這部分風(fēng)險(xiǎn)的辦法是在項(xiàng)目進(jìn)行的過(guò)程不斷的對(duì)該階段進(jìn)行風(fēng)險(xiǎn)估計(jì)和指定有效的里程碑。同時(shí)采用“范例”方式提高開發(fā)人員的構(gòu)件組件的分析識(shí)別能力,適時(shí)調(diào)整構(gòu)件組件的數(shù)量和粒度。 軟件需求階段的風(fēng)險(xiǎn) 軟件的開發(fā)是以用戶的需求開始,以書面的形式形成《用戶需求》這一重要的文檔。需求分析更多的是開發(fā)方確認(rèn)需求的可行性和一致性的過(guò)程,在此階段需要和用戶進(jìn)行廣泛的交流和確認(rèn)。需求和需求分析的任何疏漏造成的損失會(huì)在軟件系統(tǒng)的后續(xù)階段被一級(jí)一級(jí)地放大,因此本階段的風(fēng)險(xiǎn)最大。 設(shè)計(jì)階段的風(fēng)險(xiǎn) 設(shè)計(jì)的主要目的在于軟件的功能正確的反映了需求。可見需求的不完整和對(duì)需求分析的不完整和錯(cuò)誤,在設(shè)計(jì)階段被成倍地放大。設(shè)計(jì)階段的主要任務(wù)是完成系統(tǒng)體系結(jié)構(gòu)的定義,使之能夠完 成需求階段的即定目標(biāo);另一方面也是檢驗(yàn)需求的一致性和需求分析的完整性和正確性。 設(shè)計(jì)本身的風(fēng)險(xiǎn)主要來(lái)自于系統(tǒng)分析人員。分析人員在設(shè)計(jì)系統(tǒng)結(jié)構(gòu)時(shí)過(guò)于定制,系統(tǒng)的可擴(kuò)展性較弱,會(huì)給后期維護(hù)帶來(lái)巨大的負(fù)擔(dān),和維護(hù)成本的激增。對(duì)用戶來(lái)說(shuō)系統(tǒng)的使用比例會(huì)有明顯的折扣,甚至造成軟件壽命過(guò)短。反之,軟件結(jié)構(gòu)的過(guò)于靈活和通用,必然引起軟件實(shí)現(xiàn)的難度增加,系統(tǒng)的復(fù)雜度會(huì)上升,這又會(huì)在實(shí)現(xiàn)和測(cè)試階段帶來(lái)風(fēng)險(xiǎn),系統(tǒng)的穩(wěn)定性也會(huì)受到影響。 設(shè)計(jì)階段蘊(yùn)涵的另一種風(fēng)險(xiǎn)來(lái)自于設(shè)計(jì)文檔。文檔的不健全不僅會(huì)造成實(shí)現(xiàn)階段的困難,更會(huì)在后期的測(cè)試和維護(hù)造成災(zāi)難性的后果,所以我們會(huì)在整個(gè)設(shè)計(jì)過(guò)程中對(duì)文檔的編寫非常重視。 實(shí)現(xiàn)階段引入的風(fēng)險(xiǎn) 軟件的實(shí)現(xiàn)從某種意義上講是軟件代碼的生產(chǎn)。原代碼本身也是文檔的一部分,同時(shí)它又是將來(lái)運(yùn)行于計(jì)算機(jī)系統(tǒng)之上的實(shí)體。源代碼書寫的規(guī)范性,可讀性是該階段的主要風(fēng)險(xiǎn)來(lái)源。規(guī)范的代碼生產(chǎn)會(huì)把屬于程序員自身個(gè)性風(fēng)格的成分引入代碼的比例降到最低限度,從而減小了系統(tǒng)整合的風(fēng)險(xiǎn)。 概要設(shè)計(jì)說(shuō)明書 1. 引言 1.1 編寫目的 在人事管理系統(tǒng)項(xiàng)目的前一階段,也就是需求分析階段中,已經(jīng)將系統(tǒng)用戶對(duì)本系統(tǒng)的需求做了詳細(xì)的闡述,本階段已在系統(tǒng)的需求分析的基礎(chǔ)上,該文檔的目的是描述企業(yè)人事管理系統(tǒng)項(xiàng)目的概要設(shè)計(jì),其內(nèi)容包括: 系統(tǒng)功能簡(jiǎn)介 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 系統(tǒng)接口設(shè)計(jì) 數(shù)據(jù)設(shè)計(jì) 模塊設(shè)計(jì) 界面設(shè)計(jì) 本文檔的預(yù)期的讀者是: XX有限公司的領(lǐng)導(dǎo) 技術(shù)人員 XX有限公司的領(lǐng)導(dǎo) 相關(guān)項(xiàng)目組的所有成員 1.2 項(xiàng)目背景 國(guó)外企業(yè)關(guān)于人事信息的管理,主要是利用人力資源方面管理系統(tǒng)來(lái)實(shí)現(xiàn)的因?yàn)檫@類系統(tǒng)同IT、通信等領(lǐng)域技術(shù)的發(fā)展存在密切的聯(lián)系,因此在計(jì)算機(jī)、網(wǎng)絡(luò)等技術(shù)發(fā)展相對(duì)快的國(guó)家,基本上創(chuàng)建了一套人力資源管理系統(tǒng),人力資源方面的信息能夠在其本國(guó)范圍內(nèi)被授權(quán)查閱。無(wú)論人才流動(dòng)到哪里,在人們進(jìn)行求職、貸款以及辦理保險(xiǎn)之時(shí),具備查閱權(quán)限的機(jī)構(gòu)都能夠查閱該人的信息,以衡量為該人辦理有關(guān)手續(xù)的潛在風(fēng)險(xiǎn),或者是否可以錄用。 1.3 定義 1.3.1 專門術(shù)語(yǔ) C/S:Client/Server客戶機(jī)/服務(wù)器。 可修改性:容許對(duì)系統(tǒng)進(jìn)行修改而不增加原系統(tǒng)的復(fù)雜性。 有效性:軟件系統(tǒng)能有效地利用計(jì)算機(jī)的時(shí)間資源與空間資源的能力。 可適應(yīng)性:軟件在不同的系統(tǒng)約束條件下使用戶需求得到滿足的難易程度。可移植性:軟件從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境搬到另一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境的難易程度。主鍵:數(shù)據(jù)庫(kù)表中的關(guān)鍵域。 1.3.2 縮寫 系統(tǒng):若未特別指出,統(tǒng)指本機(jī)票預(yù)定系統(tǒng)。 SQL: Structured Query Language(結(jié)構(gòu)化查詢語(yǔ)言)。ATM: Asynchronous Transfer Mode(異步傳輸模式)。 1.4 參考資料 以下列出在概要設(shè)計(jì)過(guò)程中所使用到的有關(guān)資料: [1]韓萬(wàn)江 《軟件工程案例教程》機(jī)械工業(yè)出版社 [2]李金勇 曹軍生,《SQL sever 2000實(shí)用教程》,北京理工大學(xué)出版社 [3]林鄧偉 等,《JAVA程序設(shè)計(jì)項(xiàng)目教程》,北京理工大學(xué)出版社 [4]孫峰,《數(shù)據(jù)庫(kù)原理及應(yīng)用》。天津大學(xué)出版社 [5]軟件工程文檔編制國(guó)際標(biāo)準(zhǔn):GB8567—88 2. 總體設(shè)計(jì) 2.1 需求規(guī)定 數(shù)據(jù)庫(kù)分析是數(shù)據(jù)庫(kù)管理系統(tǒng)開發(fā)周期中的一個(gè)重要的階段,也是工作量比較大的一 項(xiàng)活動(dòng)。隨著現(xiàn)代軟件的發(fā)展,手工分析方式已經(jīng)很難滿足數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)分析的要 求,必須借助相應(yīng)的工具。 設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)應(yīng)首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來(lái)可能增 加的需求。用戶需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu) 能充分滿足各種信息的輸入和輸出。通過(guò)對(duì)書店管理工作過(guò)程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì) 數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。 通過(guò)與企業(yè)的溝通和需求分析,要求系統(tǒng)具有以下功能。1.新員工資料的添加、修改、刪除和查詢。2.部門信息的添加、修改、刪除和查詢。3.自動(dòng)分配員工編號(hào)和部門編號(hào)。 4.人事調(diào)動(dòng)的詳細(xì)記錄,包括部門、職位和職稱的調(diào)整,以及人員離職。 5.添加/修改日常出勤記錄,這里重點(diǎn)實(shí)現(xiàn)可按全體員工、部門員工和所選員工添加/修改 日常出勤記錄,以方便用戶操作。員工日常公出/請(qǐng)假信息的添加、修改、刪除和查詢。每月工資信息的批量添加、修改、刪除和查詢。 2.2 運(yùn)行環(huán)境 2.2.1 設(shè)備 1.Web服務(wù)器1臺(tái) 2.?dāng)?shù)據(jù)庫(kù)服務(wù)器1臺(tái) 3.備份服務(wù)器1臺(tái) 4.開發(fā)服務(wù)器1臺(tái) 5.軟件防火墻服務(wù)器1臺(tái) 6.千兆路由器1臺(tái) 7. 10M網(wǎng)絡(luò)寬帶1條 2.2.2 軟件環(huán)境 本系統(tǒng)的的軟件環(huán)境如下 1.My Eclipese 10開發(fā)工具 2.SQL Server2008數(shù)據(jù)庫(kù)系統(tǒng) 3.Windows xp操作系統(tǒng);4.防火墻,殺毒軟件 2.3 基本設(shè)計(jì)概念和處理流程 概念模型是對(duì)信息世界的建模,所以概念模型應(yīng)該能夠方便、準(zhǔn)確的表示出信息世界 中的常用概念。實(shí)體--關(guān)系模型(Entity-Relationship Module,簡(jiǎn)稱E-R圖)是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)常用的方法。得到了數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體以及它們之間的關(guān)系,為后面邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這些實(shí)體包含各種具體信息,通過(guò)相互之間的作用形成數(shù)據(jù)的流動(dòng)。根據(jù)需求分析和功能分析,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體分別為員工實(shí)體,部門實(shí)體,工資實(shí)體,出勤實(shí)體,公出請(qǐng)假實(shí)體,人事調(diào)動(dòng)實(shí)體,福利實(shí)體,員工離職實(shí)體等員工實(shí)體包括ID、編號(hào)、姓名、性別、身份證號(hào)、出生年月、年齡、民族、婚姻狀況、政治面貌、如黨團(tuán)時(shí)間、籍貫、聯(lián)系電話和手機(jī)號(hào)碼等屬性。員工實(shí)體E-R圖如圖2.1所示: 部門實(shí)體包括部門編號(hào)、部門名稱、部門經(jīng)理、部門地址和部門電話屬性。 部門實(shí)體E-R圖如圖2.2所示:。 公出實(shí)體包括ID、所屬工資月份、員工編號(hào)、員工姓名、基本工資、加班費(fèi)、工齡工 資、全勤獎(jiǎng)、獎(jiǎng)勵(lì)總額、職務(wù)津貼、請(qǐng)假扣除等屬性。工資實(shí)體E-R圖如圖2.3所示: 2.4 結(jié)構(gòu) 本系統(tǒng)的實(shí)現(xiàn)采用典型的三層模式、B/S結(jié)構(gòu)來(lái)實(shí)現(xiàn),不同的客戶端程序共同訪問(wèn)中心數(shù)據(jù)庫(kù),系統(tǒng)結(jié)構(gòu)如圖1: 圖1:系統(tǒng)結(jié)構(gòu) 系統(tǒng)基本功能圖解體系基本結(jié)構(gòu)圖 2.5功能需求與系統(tǒng)模塊的關(guān)系 各項(xiàng)功能需求的實(shí)現(xiàn)同各個(gè)塊程序的分配關(guān)系: 2.5.1登錄頁(yè)面 需要登陸的人員,對(duì)于不同的身份,他們的權(quán)限是不一樣 的。當(dāng)用戶輸入ID 和密碼時(shí),查詢數(shù)據(jù)庫(kù),若用戶名和密 碼正確,則進(jìn)入相應(yīng)的員工信息頁(yè)面,若不正確,則提示用戶名或密碼錯(cuò)誤,人顯示當(dāng)前頁(yè)面。 功能描述: 用戶管理 配置管理 數(shù)據(jù)備份 數(shù)據(jù)維護(hù) 1.2.3.4.2.5.2員工注冊(cè) 功能描述: 新員工注冊(cè),輸入員工的注冊(cè)信息,包括(登錄賬號(hào),登錄密碼,核對(duì)密碼,聯(lián)系電話,聯(lián)系地址,電子郵箱)。 注冊(cè)信息的修改。 用例圖 2.5.3員工的登錄和登出 功能描述: 員工登陸 員工退出 用例圖: 2.5.4信息查詢 功能描述: 查看公司內(nèi)部相關(guān)信息 查看個(gè)人信息 查看其他員工的部分信息 用例圖 2.5.5人事檔案 1增加員工檔案信息 2修改員工檔案信息 3刪除員工檔案信息 4查詢員工檔案信息 5打印員工檔案信息 用例圖 2.5.6工資信息管理 功能描述: 1.工資信息模塊 2.計(jì)發(fā)工資信息 3.查詢工資信息 4.保險(xiǎn)/福利 5.打印工資信息 用例圖 2.5.7員工培訓(xùn) 功能描述: 1.員工培訓(xùn)模塊主要包括: 2.培訓(xùn)信息的錄入 3.培訓(xùn)信息的刪除 4.培訓(xùn)信息的修改 5.培訓(xùn)信息的查詢 6.履歷表的打印 用例圖 2.5.8公司招聘 功能描述: 1.錄入招聘信息 2.查詢招聘信息 3.修改招聘信息 4.刪除招聘信息 5.查詢應(yīng)聘者信息 6.刪除應(yīng)聘者信息 用例圖 2.6 人工處理工程 創(chuàng)建用戶(注冊(cè)新用戶):用戶信息需要手工輸入計(jì)算機(jī)。更新部門、員工資料:需要手動(dòng)輸入更新內(nèi)容。 2.7 尚未解決的問(wèn)題 由于數(shù)據(jù)的傳輸上需要通過(guò)網(wǎng)絡(luò)傳輸,為了客戶資料進(jìn)行保密,需要在網(wǎng)絡(luò)的傳輸過(guò)程中對(duì)數(shù)據(jù)進(jìn)行加密。 這個(gè)工作主要是在準(zhǔn)備網(wǎng)絡(luò)包,及解開網(wǎng)絡(luò)包這兩個(gè)模塊完成,它們各對(duì)數(shù)據(jù)進(jìn)行加密及解密還原工作。 在加密算法選擇上將使用RSA 加密算法。具體算法可參照參考資料中《Computer Network》p.598。 3.接口設(shè)計(jì) 3.1用戶接口設(shè)計(jì) 3.2外部接口 3.3內(nèi)部接口 4.運(yùn)行設(shè)計(jì) 4.1運(yùn)行模塊組合 施加不同的外界運(yùn)行控制時(shí)所引起的各種不同的運(yùn)行模塊組合如下表所示: 4.2運(yùn)行控制 5.系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn) 根據(jù)設(shè)計(jì)好的E-R圖在企業(yè)人事管理系統(tǒng)中創(chuàng)建各表。 員工信息表用于儲(chǔ)存員工基本信息和單位相關(guān)信息,改數(shù)據(jù)表結(jié)構(gòu)如表2.1所示: 部門表用于存儲(chǔ)部門編號(hào)、部門名稱等信息,該數(shù)據(jù)表結(jié)構(gòu)如表2.2所示。 工資表用于存儲(chǔ)每月每個(gè)員工的詳細(xì)工資信息該數(shù)據(jù)表結(jié)構(gòu)如表2.3所示。 6.系統(tǒng)出錯(cuò)處理設(shè)計(jì) 6.1出錯(cuò)信息 程序在運(yùn)行時(shí)主要會(huì)出現(xiàn)兩種錯(cuò)誤: 1、由于輸入信息,或無(wú)法滿足要求時(shí)產(chǎn)生的錯(cuò)誤,稱為軟錯(cuò)誤。 2、由于其他問(wèn)題,如網(wǎng)絡(luò)傳輸超時(shí)等,產(chǎn)生的問(wèn)題,稱為硬錯(cuò)誤。 對(duì)于軟錯(cuò)誤,須在定票/領(lǐng)票操作成功判斷及輸入數(shù)據(jù)驗(yàn)證模塊由數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,判斷錯(cuò)誤類型,再生成相應(yīng)的錯(cuò)誤提示語(yǔ)句,送到輸出模塊中。 對(duì)與硬錯(cuò)誤,可在出錯(cuò)的相應(yīng)模塊中輸出簡(jiǎn)單的出錯(cuò)語(yǔ)句,并將程序重置。返回輸入階段。 6.2補(bǔ)救措施 所有的客戶機(jī)及服務(wù)器都必須安裝不間斷電源以防止停電或電壓不穩(wěn)造成的數(shù)據(jù)丟失的損失。若真斷電時(shí),客戶機(jī)上將不會(huì)有太大的影響,主要是服務(wù)器上:在斷電后恢復(fù)過(guò)程可采用 SQL SERVER 的日志文件,對(duì)其進(jìn)行ROLLBACK 處理,對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。 在網(wǎng)絡(luò)傳輸方面,可考慮建立一條成本較低的后備網(wǎng)絡(luò),以保證當(dāng)主網(wǎng)絡(luò)斷路時(shí)數(shù)據(jù)的通信。 在硬件方面要選擇較可靠、穩(wěn)定的服務(wù)器機(jī)種,保證系統(tǒng)運(yùn)行時(shí)的可靠性。 6.3系統(tǒng)維護(hù)設(shè)計(jì) 維護(hù)方面主要為對(duì)服務(wù)器上的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行維護(hù)。可使用 SQL SERVER 的數(shù)據(jù)庫(kù)維護(hù)功能機(jī)制。例如,定期為數(shù)據(jù)庫(kù)進(jìn)行Backup,維護(hù)管理數(shù)據(jù)庫(kù)死鎖問(wèn)題和維護(hù)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的一致性等。第三篇:數(shù)據(jù)庫(kù)課程設(shè)計(jì)+飛機(jī)訂票系統(tǒng)
第四篇:飛機(jī)訂票系統(tǒng)風(fēng)險(xiǎn)評(píng)估
第五篇:人事管理系統(tǒng)概要設(shè)計(jì)說(shuō)明書范文