第一篇:1 飛機訂票系統可行性研究報告
文檔編號: 版本號:v1.0
可行性研究報告
項目名稱
飛機訂票系統 項目負責人
何柳青 文檔編寫者
阿依古麗.麥麥提 項目開發者
計算機081第二組
2010年9月26日 目錄
1.引言.....................................................................1
1.1編寫目的:...................................................................................................................................1 1.2 項目背景:..................................................................................................................................1 1.3 參考資料:..................................................................................................................................1
2.可行性研究的前提.........................................................1
2.1要求...............................................................................................................................................1 2.2目標:...........................................................................................................................................2 2.3條件,假定和限制.......................................................................................................................2 2.4 進行可行性研究的方法..............................................................................................................2
3.技術可行性分析...........................................................2
3.1系統簡要描述...............................................................................................................................2 3.2處理流程和數據流程...................................................................................................................3 3.3 人員..............................................................................................................................................3 3.4 設備..............................................................................................................................................3 3.5 局限性..........................................................................................................................................3
4.投資及效益分析...........................................................4
4.1支出...............................................................................................................................................4 4.2效益...............................................................................................................................................4 4.3投資回收周期...............................................................................................................................4 4.5敏感性分析...................................................................................................................................4
5、社會因素方面的可行性....................................................4
5.1 法律方面的可行性......................................................................................................................4 5.2使用方面的可行性.......................................................................................................................4
6.項目開發計劃.............................................................5
6.1實施計劃.......................................................................................................................................5 6.2 支持條件......................................................................................................................................5
7.結論意見.................................................................1.引言
1.1編寫目的:
可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內確定問題是否可解。
經過對此項目進行詳細調查研究,初擬系統實現報告,對軟件開發中將要面臨的問題及其解決方案進行初步設計及合理安排。明確開發風險及其所帶來的經濟效益。本報告經審核后,交軟件經理審查。
1.2 項目背景:
本項目的名稱:飛機訂票系統
//項目任務提出者:中國民航及中國國際旅游開發公司。項目開發者:何柳靑,陸銀琳,李欣純,單國英,阿依古麗 項目與其他軟件,系統的關系:
本項目采用客戶機/服務器原理,客戶端的程序是建立在Windows NT 系統上以Microsoft Visual C++為開發軟件的應用程序,服務器端采用Linux 為操作系統的工作站,是采用Oracle 8的為開發軟件的數據庫服務程序。
1.3 參考資料:
《軟件工程導論》 清華大學出版社 張海藩 編著 《實用軟件工程》 清華大學出版社 鄭人杰 等 編著
《數據庫系統概論(第三版)》 高等教育出版社 薩師煊 王珊等編著 《實用軟件文檔寫作》 清華大學出版社 肖剛等 編著 《軟件工程》第3版 人民郵電出版社 張海藩等 編著
2.可行性研究的前提
2.1要求
為了方便旅客,該飛機訂票系統應達到以下要求:
功能:能夠按照顧客提供的信息提供訂票服務,例如按給定的起飛城市,到達城市,起飛日期,艙位類型等訂票。
(1)提供出票的功能。即打印機票的功能,根據需要打印出所需機票。
(2)提供其他的功能。在顧客需要的情況下,提供各種查詢功能。例如航班時 刻查詢,包括起飛時間,到達時間,航班的其他基本信息查詢,即查詢某班的座位出售情況,所剩余座位數量,各個類型艙位的機票價格等。(3)提供退票功能。能夠在有效地時間內為顧客提供退票功能。(4)系統維護功能。包括價目的調整,航班的增刪及用戶的管理等。(5)輸入 錄入的航班信息的數據要求完整,詳實。(6)輸出 簡捷,快速,實時。
(7)安全與保密要求 服務器的管理員享有對機場航班信息及機票信息庫和訂票信息庫的管理與修改,售票員只享有對訂票信息庫的部分修改(寫入與讀出)(8)完成期限
2.2目標:
系統實現后,大大提高航空公司訂票環節的服務效率,改進管理信息服務。降低售票服務中的錯誤發生率,減少信息交流的煩瑣過程及其帶來的開銷。
2.3條件,假定和限制
硬件條件:服務器sun工作站,終端為pc機。運行環境:windows 2000/XP/2003/7等操作系統
可利用的資源為學校圖書館資料,我們的指導老師,能力較強的同學 項目開發限制:要在給定的項目經費內完 系統投入使用的最晚時間為12月底
2.4 進行可行性研究的方法
調查方法:填寫調查報告的方法,上網收集資料,翻閱相關書籍。
系統評價角度:功能的齊全程度,操作的可行性,界面的友好性,完成軟件系統的實際經費開銷情況,完成軟件的時間長度。
3.技術可行性分析
3.1系統簡要描述
在航空公司的終端是安裝了Windows NT的PC機,主要目的是向機場的服務器傳遞數據。當顧客在前臺進行咨詢時,終端向服務器發出查詢請求,服務器根據航班信息庫的實時數據,向終端發送數據,顯示在終端的屏幕上。當顧客向售票員訂票時,終端向服務器發出詳盡的一份定單,服務器核對后,存入定票信息庫,并修改機票信息庫。當顧客再次來取票時,終端向服務器發出查詢定票請求,服務器接收后,查詢定票信息庫,核對后,傳送機票確認表單,終端打印出機票。3.2處理流程和數據流程
本系統處理流程如圖1所示。
圖1 系統處理數據流圖
3.3 人員
該系統的運行界面較為人性化,操作簡便易懂,非專業人員都能輕松掌握進行操作,而且要求操作的人員數目較少,可以大大節約成本。此系統的維護就是一般的軟件編程人員都能輕松應付。
3.4 設備
個人計算機
3.5 局限性
功能并非非常完善,對于很多突發狀況還是需要依靠管理員。對于此系統所依附的媒介——個人計算機,存在死機、中毒、存儲容量有限的外在因素,會造成數據庫中數據的丟失或者服務暫停。4.投資及效益分析
4.1支出
寢室電力資源消耗及人員時間消耗。
4.2效益
無
4.3投資回收周期
在系統運轉后不久,訂票系統的效益就可以體現出來:低成本、高效率、反應速度快都將成為本系統立足于長期發展的支柱,其收益很快會超過支出,并逐漸實現盈。
4.5敏感性分析
所謂敏感性分析是指一些關鍵性因素如系統生命期長度、系統的工作負荷量、工作負荷的類型與這些不同類型之間的合理搭配、處理速度要求、設備和軟件的配置等變化時,對開支和收益的影響最靈敏的范圍的估計。在敏感性分析的基礎上做出的選擇當然會比單一選擇的結果要好一些。
5、社會因素方面的可行性
5.1 法律方面的可行性
合同責任: 侵犯專利權:無 侵犯版權:無
5.2使用方面的可行性
其專供飛機票務公司及航空公司使用,完全按照航空公司訂票流程研制而成,符合訂票規程,為航空公司訂票工作提供便利。
此系統界面簡易美觀,對于航空公司的前臺訂票員以及后臺管理人員,只要是具備相應的專業知識就能很好的駕馭它。6.項目開發計劃
6.1實施計劃
1)工作任務的分解與人員分工
文件的編制:小組分塊完成審批、打印、分發工作:組長 2)進度
總時間:一學期
順序安排:可行性研究報告—>開發計劃—>軟件需求說明書—>概要設計說明書—>詳細設計說明書—>開發總結報告
時間安排:每星期按順序完成一塊說明書
6.2 支持條件
1)計算機系統支持
計算機,數據庫,C語言,C++語言,xp操作系統
7.結論意見
飛機訂票系統的開發主要包括后臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。
經過全方位的可行性研究報告表明,此系統投資效益比較大,技術、經濟、操作都有可行性,可以進行開發,所以可以立即開始進行。
第二篇:數據結構課程設計 飛機訂票系統
飛機訂票系統
1.需求分析
描述要求編程解決的問題。以無歧義的陳述說明程序設計的任務,強調的是程序要做什么?明確規定:
(a)輸入的形式和輸入值的范圍;
(b)輸出的形式;
(c)程序所能達到的功能;
(d)測試數據:包括正確的輸入及其輸出結果和含有錯誤的輸入及其輸出結果。
2.概要設計
給出程序要達到的具體的要求。描述解決相應問題算法的設計思想。描述所設計程序的各個模塊(即函數)功能。說明本程序中用到的所有抽象數據類型的定義、主程序的流程以及各程序模塊之間的層次(調用)關系。
3.詳細設計
實現概要設計中定義的所有數據類型,對每個操作只需要寫出流程或偽碼算法;對主程序和其他模塊也都需要寫出流程或偽碼算法(偽碼算法達到的詳細程度建議為:按照偽碼算法可以在計算機鍵盤直接輸入高級程序設計語言程序);畫出函數的調用關系圖。給出所使用的基本抽象數據類型,所定義的具體問題的數據類型,以及新定義的抽象數據類型。設計出良好的輸入輸出界面(清晰易懂)。
4.調試分析 內容包括:
(a)調試過程中遇到的問題是如何解決的以及對設計與實現的回顧討論和分析;
(b)算法的時空分析(包括基本操作和其他算法的時間復雜度和空間復雜度的分析)和改進設想;
(c)經驗和體會等。
5.用戶使用說明
說明如何使用你編寫的程序,詳細列出每一步的操作步驟。
6.測試結果
設計測試數據,或具體給出測試數據。要求測試數據能全面地測試所設計程序的功能。列出你的測試結果,包括輸入和輸出。這里的測試數據應該完整和嚴格,最好多于需求分析中所列。
7.測試情況:給出程序的測試情況,并分析運行結果
附錄(非必須,按照需要添加)
帶注釋的源程序。可以只列出程序文件名的清單。
需求分析
任務:通過此系統可以實現如下功能: 錄入:
可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)
查詢:
可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉); 可以輸入起飛抵達城市,查詢飛機航班情況;
訂票:(訂票情況可以存在一個數據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;
退票: 可退票,退票后修改相關數據文件;
客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。
概要設計
詳細設計
詳列函數 void list(){
struct airline *info;
int i=0;
info=start;
printf(“起點城市t終點城市t航班號t起飛時間t降落時間t總票數t余票數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(“請輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請輸入要抵達城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號t起飛時間t降落時間t總票數t余票數n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請輸入航班號:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒有這條航線!n”); return NULL;} 訂票函數 void order(){ struct airline *info; char qiname[10]; char jiangname[10]; int amount; char name[10]; char id[30]; info=start; printf(“請輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請輸入您需要的票數:”); 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(“請輸入您的姓名:”); scanf(“%s”,name); printf(“請輸入您的身份證號:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號是:%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(“請輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒有訂過票!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;} 存儲結構 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;調試分析 查看航線信息 查詢航線 ① 輸入起飛城市 ② 輸入抵達城市 ③ 輸出航班信息 辦理訂票業務 ① 查詢符合的航班 ② 查詢余票量 ③ 輸出航班信息 辦理退票業務 源代碼 #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(“起點城市t終點城市t航班號t起飛時間t降落時間t總票數t余票數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(“請輸入要起飛城市的名稱:”); scanf(“%s”,qiname); printf(“請輸入要抵達城市的名稱:”); scanf(“%s”,jiangname); while(i { if(!strcmp(jiangname,info->jiang_name)) { break; } info++; i++; } if(i>=MAXSIZE) { printf(“沒有這條航線!n”); } else { printf(“起飛城市t降落城市t航班號t起飛時間t降落時間t總票數t余票數n”); display(info); } } struct airline *find(){ struct airline *info; char number[10]; int i=0; info=start; printf(“請輸入航班號:”); scanf(“%s”,number); while(i { if(!strcmp(number,info->air_num)) { return info; } info++; i++; } printf(“沒有這條航線!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(“請輸入您的起飛城市:”); scanf(“%s”,qiname); printf(“請輸入您的降落城市:”); scanf(“%s”,jiangname); printf(“請輸入您需要的票數:”); 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(“請輸入您的姓名:”); scanf(“%s”,name); printf(“請輸入您的身份證號:”); scanf(“%s”,id); info->order=insertlink(info->order,amount,name,id); printf(“您的航班信息為:n”); display(info); for(i=0;i { printf(“%s的座位號是:%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(“請輸入您的姓名:”); scanf(“%s”,name); while(p1!=NULL) { if(!strcmp(name,p1->name)) { break; } p2=p1; p1=p1->next; } if(p1==NULL) { printf(“您沒有訂過票!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(“ 訂票系統n”); printf(“-------------n”); printf(“ 1.查看航線信息 printf(” 2.查詢航線 printf(“ 3.辦理訂票業務 printf(” 4.辦理退票業務 printf(“ 5.退出系統 printf(”-------------n“); do { printf(”請選擇(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(); } } 經驗體會 1、通過設計飛機訂票系統,加深了對鏈表的運用和理解。 2、通過多組測試數據,發現了程序的問題,并做了調整、3、通過設計選擇菜單,對選擇結構有更深刻的了解。 飛機訂票系統 1.概述(設計題目與可行性分析) 1.1設計題目:飛機訂票系統 1.2可行性分析 飛機訂票系統是為機場工作人員和客戶提供訂票退票等與機票相關內容的管理系統,方便機場工作人員對機票的管理,以提高機場工作人員對機票管理工作的效率。當前飛機訂票問題:手工訂票所產生的客座率低。而我們的目標是:建立一個飛機訂票系統數據庫。 1.2.1研究現有系統,畫現有系統的流程圖 了解當前系統能夠完成的功能及組成 航班管理:票據管理 售票點:直接面向用戶 航班管理 票據管理 票庫 訂票庫 訂票管理 出售管理 打印機票 售票點1 售票點n 現有系統:票據都分布在各個售票點 1.2.2導出新系統的高層邏輯結構 數據流圖的基本符號: 數據源/終點(人機界面): 加工處理: 文件名 文件: 數據流名 數據流: 票價信息 機票 查訂票號 訂票處理 客戶信息 出票處理 訂票記錄 顧客 訂票信息 訂票號 庫存信息 票價信息 票價管理 航班管理 航班信息 操作員 航班信息 保存 新系統的數據流圖: 說明:流向文件的數據流的名可以省略 1.2.3可行性分析報告 隨著Internet的迅速發展和用戶數量的急劇增加,互聯網對于企業和事業單位的運營和發展日益重要,網上交易也逐漸被人們認可,并成為未來交易的發展方向。在這種情況下,很多原有的C/S模式的系統也逐步向B/S模式靠攏,飛機訂票系統也不例外。 飛機訂票系統是飛機旅游服務信息系統的一個重要組成部分。為旅客提供優質便捷的服務,為了提高飛機客運的售票效率,豐富飛機客運的營銷手段,飛機售票總站的下屬代售點可以通過公用的互聯網資源,建立數據庫,實現網上的售票,查詢及管理工作。 2.系統目標和設計原則 2.1系統目標: 建立一個飛機訂票系統數據庫。 2.1.1系統簡介: 本系統是專為乘坐飛機的旅客準備的,旅客只需把自己的信息(姓名.性別.工作單位.身份證號.旅行時間.旅行目的地)預先交給旅行社,旅行社就可以將信息輸入本系統,系統就可以為旅客安排航班,打印出取票通知和帳單。旅客只要在飛機起飛的前一天憑取票通知單和帳單交款取單,系統校對無誤即印出機票給旅客。 2.2設計原則 2.2.1根據實際情況考慮三種可行性 技術可行性、經濟可行性、操作可行性 2.2.2提出侯選方案、提出各種各樣的實現方案 主機(純主機型、C/S型)、開發環境、網絡方案、對提出的每個方案進行成本估計 硬件、軟件費用投資(根據各公司的報價)開發成本估計(任務估算法) 運行費用、投資回收期 純收入:通過本系統的運行、投資回收后的收入 3、描述推薦理由:分別從技術、經濟、用戶、投資方的不同角度考慮 3.支撐環境規劃 3.1整體系統運作圖 3.2運行環境 服務器:硬件配置:CPU Intel P4 1.2G以上 內存256 硬盤 80G以上 軟件配置:Windows 2000/2003 SERVER SQL SERVER 2000 4.系統功能結構 1、錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定) 2、查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況; 3、訂票:(訂票情況可以存在一個數據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班; 4、退票:可退票,退票后修改相關數據文件; 客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。 5、修改航班信息:當航班信息改變可以修改航班數據文件。 5.數據庫設計 5.1概念結構設計 E-R圖如下: 5.2邏輯結構設計 1.航空公司表:AIRLINE 2.客戶表CUSTOMER 3、飛機表PLANE 4.航線表LINE 5.航班表FLIGHT 6.訂票表BOOKTICKET 5.3實現設計 實現以下操作: 1、注冊航空公司: 2、增加飛機: 3、增加航線: 4、增加航班: 5、增加客戶: 6、建立一個訂票的存儲過程,存儲過程名為Book_Ticket,請完成以下存儲過程,實現訂票的操作: a)指定要訂的航班號(HID)及客戶的編號(KID); b)先查看客戶是否為特殊客戶,如果不是,票價不打折扣; c)否則如果客戶航程超過5萬公里,票價7折,超過15萬公里,票價打5折; d)查看客戶訂票以后,所有乘客的票數是否超過總的座位數,如果超過,回滾訂票操作; e)要求在操作過程中使用到事務技術。 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、票價PRICE(實型)*/ select @Isspec=Isspec,@distance=Points FROM Customer where select @discount=1 IF @ BEGIN END /*選擇出票價*/ SELECT @PRICE=PRICE FROM FLIGHT WHERE /*加入客戶訂票信息*/ /*將客戶新訂票里程的信息累計到用戶信息里面*/ UPDATE SET WHERE /*查看客戶訂票后,是否超過可容納的座位數目,如果超過,取消所有操作*/ SELECT booked=count(*)FROM WHERE FID= /*查看額定座位容量*/ SELECT @seats=seatsnum FROM WHERE IF @BOOKED>@SEATS ELSE COMMIT TRANSACTION GO 7.運行這個訂票操作的存儲過程(自己設定客戶及航班) book_ticket , 8.事務運行成功后,再顯示各表的數據,按表分別寫出來。 6.總體實施計劃 6.1可行性研究: 研究現有系統,畫現有系統的流程圖,編寫可行性分析報告 6.2進行數據庫設計: 概念結構設計,邏輯結構設計,實現設計 6.3概要設計: 從數據流圖導出初始結構圖,設計優化 6.4詳細設計: 結構化的程序設計,采用流程圖的形式 6.5保密設計 1.每個用戶需要注冊才能進入航空訂票信息系統,并進行網上訂票的。用戶必須 用自己真實的身份進行注冊。 2.系統要另外在備一份數據庫,防止系統出現錯誤而使數據信息丟失的可能性。 3.系統要安裝防火墻,防止黑客入侵破壞系統。還有就是安裝殺毒軟件,防止 病毒入侵而導致系統癱瘓。 6.6維護設計 系統設置提供管理員操作頁面: 1.提供管理員密碼,方便維護操作.2.固定時間對系統進行維護和檢測.3.若系統出現癱瘓時,可出動備用系統維持運轉.4.定期對系統進行更新整頓清空.7.總結 這次數據庫課程設計的“飛機訂票系統”,通過近一周的上機操作,充分應用了所學的數據庫的知識,并去圖書館查閱了一些書集和上網搜索一部分相當資料,粗略設計出該系統。總體上來說,這次課程設計還是比較成功的,充分運用了所學的軟件工程設計、數據庫的設計,設計出E-R圖、流程圖、數據庫基本表,從整體規劃出了系統的運行環境和系統實現的功能。 當然,由于學藝不精,在課程設計的過程也碰到的一些問題。其中,畫E-R圖時,各實體中的關系的確定,由于對系統還不夠了解而找不到一個準確的詞來形容;總體規劃時,材料太多,不易整理;相關數據庫技術方面沒有多注意,這次課程設計的重點只在對整個系統的總體思路設計。 其實這些通過最近的課程設計覺得最重要一點就是:我們一定要自己動手,這樣才能真正的學到東西。書本知識固然重要,但我們更要學會將書本知識應用到實際的工作中。實踐中才會發現錯誤,也才能改進,才能達到學習的最終目的。 最后感謝在這次課程設計中幫助過我的老師,同學!8.參考文獻 物流信息系統 趙剛 四川大學人民出版社 2002/9 物流信息管理 尹濤 東北財經大學出版社 2005/1 數據庫系統概論 王珊 薩師煊 高等教育出版社 2006/5 數據庫技術與應用-Access2000篇 郭力平人民郵電出版社 2002/8 軟件設計師教程 陳平禇華 清華大學出版社 2006/6 文章引用自: 飛機訂票系統 —項目風險評估報告 本文檔的范圍和目的 本文主要針對飛機訂票系統軟件開發涉及到的風險,包括在軟件開發周期過程中可能出現的風險以及軟件實施過程中外部環境的變化可能引起的風險等進行評估。在文中對所提到的風險都一一做了詳細的分析,并提出了相應的風險回避措施。主要風險綜述 任何軟件的開發,其主要風險均來自于兩個方面,一是軟件管理,二是軟件體系結構。軟件產品的開發是工程技術與個人創作的有機結合。軟件開發是人的集體智慧按照工程化的思想進行發揮的過程。軟件管理是保證軟件開發工程化的手段。軟件體系結構的合理程度是取決于集體智慧發揮的程度和經驗的運用。 1、軟件是否能夠按工期的要求完成:時間定為2個月,能按期完成。 2、軟件需求的調研是否深入透徹:軟件的需求的調研花了一個月,已了解大致的需求。 3、軟件的實現技術手段是否能夠同時滿足性能要求:由于是第一次,所以難免會有一些不足,但會盡力去客服。 4、軟件的可伸縮性:預設計為滿足未來3-5年的需要。 5、軟件的可維護性:軟件的維護也是必然的事情,為了保證軟件的較長使用壽命,軟件就必須適應不斷的業務需求變化,根據業務需求的變化對軟件進行修改,軟件代碼無需修改,僅僅是在系統提供的配置文件中進行適當的修改,然后軟件重新加載進入運行狀態,就完成了系統部分功能和性能要求的變化。對于重大改動,需要打開源代碼進行修改的,也僅僅是先繼承原先的代碼,然后用新的功能接替原先的調用接口,這樣將把軟件改動量減小到最低。 項目管理的風險 一般參與軟件開發的人員和其責任如下: 由于軟件開發小組共有5人,項目經理1人 主要職責:進行全局把握 制定項目開發計劃和開發策略,參與項目核心系統的分析設計,同時努力保證開發計劃的按時完成和開發策略的真正貫徹落實。 其他4人 主要職責:進行軟件系統的分析和設計工作,書寫軟件需求分析和系統設計相關文檔,進行詳細設計,和軟件系統的代碼實現,并進行適當的白盒測試。 軟件技術風險 本系統擬訂采用的兩個重大的軟件技術是面向對象的構件和基于微軟的COM組件技術。組件和構件技術都是為了提高軟件的可靠性和軟件的可擴展性而采用的技術手段。從技術成熟度上說不存在風險,但為了實現良好的軟件構架和穩定的組件,與傳統開發方法比較,有相當的多的額外工作需要做,這會給項目工期帶來較大的風險。 回避和控制這部分風險的辦法是在項目進行的過程不斷的對該階段進行風險估計和指定有效的里程碑。同時采用“范例”方式提高開發人員的構件組件的分析識別能力,適時調整構件組件的數量和粒度。 軟件需求階段的風險 軟件的開發是以用戶的需求開始,以書面的形式形成《用戶需求》這一重要的文檔。需求分析更多的是開發方確認需求的可行性和一致性的過程,在此階段需要和用戶進行廣泛的交流和確認。需求和需求分析的任何疏漏造成的損失會在軟件系統的后續階段被一級一級地放大,因此本階段的風險最大。 設計階段的風險 設計的主要目的在于軟件的功能正確的反映了需求。可見需求的不完整和對需求分析的不完整和錯誤,在設計階段被成倍地放大。設計階段的主要任務是完成系統體系結構的定義,使之能夠完 成需求階段的即定目標;另一方面也是檢驗需求的一致性和需求分析的完整性和正確性。 設計本身的風險主要來自于系統分析人員。分析人員在設計系統結構時過于定制,系統的可擴展性較弱,會給后期維護帶來巨大的負擔,和維護成本的激增。對用戶來說系統的使用比例會有明顯的折扣,甚至造成軟件壽命過短。反之,軟件結構的過于靈活和通用,必然引起軟件實現的難度增加,系統的復雜度會上升,這又會在實現和測試階段帶來風險,系統的穩定性也會受到影響。 設計階段蘊涵的另一種風險來自于設計文檔。文檔的不健全不僅會造成實現階段的困難,更會在后期的測試和維護造成災難性的后果,所以我們會在整個設計過程中對文檔的編寫非常重視。 實現階段引入的風險 軟件的實現從某種意義上講是軟件代碼的生產。原代碼本身也是文檔的一部分,同時它又是將來運行于計算機系統之上的實體。源代碼書寫的規范性,可讀性是該階段的主要風險來源。規范的代碼生產會把屬于程序員自身個性風格的成分引入代碼的比例降到最低限度,從而減小了系統整合的風險。 C語言程序設計——飛機訂票系統 代碼如下:” #include“stdio.h” #include“stdlib.h” #include“string.h” #defineLENsizeof(structplane)#defineMAX 10;structplane { char destination[12];char num[10];char time[12];int price;int amount;};typedefstructplanePLANE;PLANE a[100];void menu();void input();void search();void preserve();void planeadd();void delplane(); void main(){ system(“cls”);menu();} void menu(){ char *menu[] = { ************** 歡迎進入飛機訂票系統*************,“ a:輸入航線 ”,“ b:查詢航線 ”,“ c:退訂票系統 ”,“ d:追加航線 ”,“ e:刪除航線 ”,“ f: 退出 ”,“****************************************************” };int i;char NO;int quit = 0;do { system(“cls”); for(i = 0;i<9;i++) printf(“n%s”, menu[i]); printf(“n請輸入服務代碼a,b,c,d,e或fn”); NO = getchar(); switch(NO) { case'a': input();break; case'b': search();break; case'c': preserve();break; case'd': planeadd();break; case'e': delplane();break; case'f': quit = 1;break; } } while(!quit);} void input(){ int i, n;FILE *fp;system(“cls”);if((fp = fopen(“D:file”, “wb”))== NULL){ printf(“error!n”);exit(0);} printf(“n請輸入航班總數n:”);scanf(“%d”, &n);printf(“n請按下面提示輸入航班信息:起點站:沈陽”);for(i = 0;i printf(“nt請輸入終點:”); scanf(“%s”, a[i].destination); printf(“t 航班班次:”); scanf(“%s”, a[i].num); printf(“t 時間:”); scanf(“%s”, a[i].time); printf(“t 票價:”); scanf(“%d”, &a[i].price); printf(“t機票總數:”); scanf(“%d”, &a[i].amount); fwrite(&a[i], sizeof(PLANE), 1, fp);} fclose(fp);} void search(){ int i, j = 0, k = 101;char str[12];FILE *fp;PLANE b[5];if((fp = fopen(“D:file”, “rb”))== NULL){ printf(“error!n”); exit(0);} printf(“n請輸入航班號:”);scanf(“%s”, str);while(fread(&b[j], LEN, 1, fp)!= 0) j++;for(i = 0;i if(strcmp(b[i].num, str)== 0) { printf(“沈陽至%s 航班號:%s 時間:%s 票價:%d 剩余票數:%dn”, b[i].destination, b[i].num, b[i].time, b[i].price, b[i].amount); k = i; } if(k == 101) printf(“對不起,沒有您需要的航線。”);fclose(fp);system(“pause”);} void preserve(){ int a = 0, i = 0, k, m, n, x;char str[12];PLANE preserve[10];FILE *fp;if((fp = fopen(“D:file”, “rb”))== NULL){ printf(“error!n”); exit(0);} printf(“請輸入航班號:”);scanf(“%s”, str);while(fread(&preserve[i], LEN, 1, fp)!= 0){ if(strcmp(preserve[i].num, str)== 0) printf(“沈陽至%s 航班號:%s 時間:%s 價格:%d 剩余票數:%d”, preserve[i].destination, preserve[i].num, preserve[i].time, preserve[i].price, preserve[i].amount); k = i; i++;} fclose(fp);printf(“n請輸入訂退票代碼:0-訂票 1-退票”);scanf(“%d”, &m);if(m == 0){ printf(“沈陽至%s 航班號:%s 時間:%s 價格:%d元剩余票數:%d”, preserve[k].destination, preserve[k].num, preserve[k].time, preserve[k].price, preserve[k].amount); printf(“n請輸入訂票總數n:”); scanf(“%d”, &n); x = preserve[k].price*n; printf(“n應付款%d元”, x); preserve[k].amount = preserve[k].amount1; del = 1; printf(“n成功刪除信息!!”);} if(del == 0) { printf(“系統中不存在要刪除的信息!”);menu();} else { if((fp = fopen(“D:file”, “wb+”))== NULL);{printf(“文件有錯誤不能打開!”); exit(0); } } for(i = 0;i fwrite(&delplane[i], LEN, 1, fp); fclose(fp);} }第三篇:數據庫課程設計+飛機訂票系統
第四篇:飛機訂票系統風險評估
第五篇:C語言程序設計——飛機訂票系統