版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 飛機訂票系統(tǒng)</b></p><p><b> 一、需求分析</b></p><p> 無論是做任何開發(fā)或者設(shè)計,我想,這都是一個必不可少的至關(guān)重要的階段,飛機訂票系統(tǒng)也不例外。首先,作為一個系統(tǒng)的管理者,需要高效細致地管理 航班的相關(guān)資料,就必須得依據(jù)航班的實際情況對顧客的各個“板塊”分門別類地建立適當(dāng)?shù)奈募?/p>
2、次,一個顧客的流動要求本管理系統(tǒng)必須具備處理這些數(shù)據(jù)出入的能力。而我們更希望通過這樣一個系統(tǒng)對顧客的某些信息一目了然,以便于相關(guān)人員能及時地做一些航班上的調(diào)整。使用范圍方面,管理系統(tǒng)顧名思義就是飛機的一般的管理階層了。界面上為了盡量設(shè)計得人性化一些,采用了多分枝的SWITCH CASE 語句,并有詢問用戶繼續(xù)操作或是退出的選擇處理。對于輸出,要求格式清晰,讓人一目了然。如若出現(xiàn)無符合查詢條件的員工信息,則系統(tǒng)會給出相應(yīng)提示。</p
3、><p> 本次系統(tǒng)開發(fā)主要的開發(fā)環(huán)境是VC,但因為它可以在編輯的時候一邊給予提示,避免了不少語法上的錯誤。而此次開發(fā)所用的編程語言-----C語言是得到廣泛應(yīng)用的程序設(shè)計語言之一,不同于C++面向?qū)ο蟮脑O(shè)計理念,它屬于結(jié)構(gòu)化程序設(shè)計語言,由于既具備高級語言的特性,又具有直接操縱計算機硬件的能力因而更適合于底層的技術(shù)開發(fā)。</p><p> 本次要求編制程序,實現(xiàn)航班信息,顧客信息的存儲結(jié)
4、構(gòu),完成信息的錄入、顧客退票、顧客訂票、查詢航班信息四個功能。</p><p><b> 1.錄入:</b></p><p><b> 可以錄入航班情況:</b></p><p> 航班號,起飛時間,抵達時間,始發(fā)地,目的地,票價,折扣情況,座位總數(shù),剩余座位數(shù)。</p><p> 2.退票
5、:可退票,退票后修改相關(guān)數(shù)據(jù)文件</p><p> 客戶資料有姓名,證件號,訂購機票數(shù)量,航班號</p><p> 3.訂票:(訂票情況可以存在一個數(shù)據(jù)文件中)</p><p> 可以訂票,若已無票,可以重新選擇再進行</p><p> 4.查詢:(航班信息改變則航班數(shù)據(jù)改變)</p><p> 可以查詢某個
6、航線的情況:</p><p> 如可以通過航班號查詢有關(guān)航班的信息(航班號,起飛時間,抵達時間,始發(fā)地,目的地,票價,折扣情況,座位總數(shù),剩余座位數(shù))</p><p><b> 二、概要設(shè)計</b></p><p> 數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式,是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可
7、以帶來更高的運行或者存儲效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。</p><p> 關(guān)于數(shù)據(jù)結(jié)構(gòu)在計算機學(xué)界至今還沒有標準的定義:</p><p> Sartaj Sahni 在他的《數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用》一書中稱:“數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對象,以及存在于該對象的實例和組成實例的元素之間的各種聯(lián)系。這些聯(lián)系可以通過定義相關(guān)的函數(shù)來給出。”他將數(shù)據(jù)對象定義為“一個數(shù)據(jù)對象是實例或值的集
8、合”。</p><p> Clifford A.Shaffer 在《數(shù)據(jù)結(jié)構(gòu)與算法分析》一書中的定義是:“數(shù)據(jù)結(jié)構(gòu)是ADT(抽象數(shù)據(jù)類型 Abstract Data Type)的物理實現(xiàn)?!?lt;/p><p> Lobert L.Kruse 在《數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計》一書中,將一個數(shù)據(jù)結(jié)構(gòu)的設(shè)計過程分成抽象層、數(shù)據(jù)結(jié)構(gòu)層和實現(xiàn)層。其中,抽象層是指抽象數(shù)據(jù)類型層,它討論數(shù)據(jù)的邏輯結(jié)構(gòu)及其運算
9、,數(shù)據(jù)結(jié)構(gòu)層和實現(xiàn)層討論一個數(shù)據(jù)結(jié)構(gòu)的表示和在計算機內(nèi)的存儲細節(jié)以及運算的實現(xiàn)。</p><p> 而本人的理解,數(shù)據(jù)結(jié)構(gòu)通俗來講就是將數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來通過特定的算法將理論運用到生活中解決一些現(xiàn)實問題應(yīng)用。在這次課程設(shè)計中,正是基于這樣一種理念,在經(jīng)過需求分析將實際情況綜合起來之后設(shè)計并開發(fā)出了這樣一個飛機訂票系統(tǒng)。</p><p> 本系統(tǒng)的主要功能是通過接收顧客的輸
10、入建立航班信息、顧客信息、訂票情況、退票信息等內(nèi)容,在實際的生產(chǎn)生活中確保數(shù)據(jù)的可靠性和安全性。</p><p> 本系統(tǒng)涉及到三個文件,所以為了保持數(shù)據(jù)的一致性,所用操作都必須在三個文件上同時進行。下面對本管理系統(tǒng)的各模塊及其功能作詳細介紹。</p><p> 本系統(tǒng)的主要流程圖如下</p><p><b> 三、詳細設(shè)計</b><
11、;/p><p> 本系統(tǒng)作為一個關(guān)于飛機訂票的管理系統(tǒng),首先在界面上就要人性化一點。為了能提供多選擇的操作,主函數(shù)內(nèi)部選用了多分枝的switch case 語句,用戶一進入到該界面系統(tǒng)就會自動提示請選擇相應(yīng)的操作,當(dāng)用戶選定后便可使用由系統(tǒng)提供的各種功能函數(shù)。而switch語句的外層是一個do-while循環(huán),當(dāng)用戶按照提示輸入時可以不斷地操作,輸入非法時則不予執(zhí)行。</p><p> 進
12、入該系統(tǒng),首先映入用戶眼簾的是下面一個界面。從下圖我們可以看到,該界面是一個人性化的界面,當(dāng)用戶登陸后可以自主選擇需要進行的各項操作,各項操作表面上是相互獨立的,但實際上數(shù)據(jù)之間又相互關(guān)聯(lián)。</p><p> 下面是各部分的具體功能:</p><p> 在頭文件中宏定義了三個變量P_S、P_P、C_S,在其后的各項輸入、輸出中可以直接由其代替各自所表示的內(nèi)容,從而使得程序的明朗,清晰化
13、,不必在輸入冗雜的代碼來引起不必要的雜亂。此外還定義了航班和顧客兩個結(jié)構(gòu)體,其中航班結(jié)構(gòu)體包含了航班號、起降時間、飛機的始發(fā)地和目的地以及飛機票價、折扣、座位總數(shù)和剩余機票輸,二各科信息結(jié)構(gòu)體中澤囊括了顧客姓名、證件號、所訂機票數(shù)、所訂航班號和訂單號。</p><p> #include <string.h>#include <conio.h>#define m 4
14、 //3架飛機#define n 5 //每架飛機5張票struct node{ char name[21]; char id[21]; int seat,plane,date; node *next,*pre;};struct wait{ char name[21]; char id[21]; char phone[8];
15、 int seat,plane,date,count; wait *next,*pre;};struct piao{ int seat[n+1];};void makenull(); void makenull_piao();void makenull_information();void list_menu();void list_piao();void makenull_wait
16、(</p><p><b> 四、調(diào)試測試</b></p><p><b> 錄入:</b></p><p><b> 退票:</b></p><p><b> 訂票:</b></p><p><b> 查詢:&
17、lt;/b></p><p> 所遇到的問題和分析解決:</p><p> 在開發(fā)本系統(tǒng)時確實遇到了不少問題,以下就是關(guān)于這些問題的描述及其分析解決的過程。</p><p> 在本次開發(fā)當(dāng)中,選擇運用了鏈表,因為這次是作為數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計,而數(shù)據(jù)結(jié)構(gòu)中最常應(yīng)用的就是鏈表的使用了,因而選擇鏈表,就可以更能夠加深對數(shù)據(jù)結(jié)構(gòu)的理解和應(yīng)用,雖然有的地方現(xiàn)在還不
18、是很理解,不過書上的例子還是可以幫忙應(yīng)用來實現(xiàn)相關(guān)功能,由此。我想盡管這門課程已經(jīng)結(jié)束了,但我不能就此結(jié)束這門課程的學(xué)習(xí)。</p><p><b> 1.文件的建立</b></p><p> 當(dāng)建立文件時,多次建立都無法使用,在文件的讀取,寫入的時候,多次檢查代碼都無法正常運行,后來還是找了課本,重新看了上面的內(nèi)容,理解了一些格式上的細節(jié),和語言的描述才最終完成,
19、不過感覺還是不大完善,看來,無論什么內(nèi)容,隔得久了,不常用都是會失去它們,無論是多么簡單的問題或者事情,久了就淡了,也就忘了,還是要不時的去回顧下啊,否則什么時候又在同一個地方出錯,到時還真難處理啊,這可是得不償失的,因而回顧以前的也總會有收獲的,要看長遠點。</p><p> 2.代碼的重復(fù)、繁瑣</p><p> 代碼因為程序的編寫調(diào)試過程是由小到大逐個調(diào)試的,在調(diào)試完所有函數(shù)將其
20、統(tǒng)一起來后,發(fā)現(xiàn)其實各個函數(shù)的內(nèi)部都有一些代碼是相同的,那就是函數(shù)的開頭計算文件長度的那一段。發(fā)現(xiàn)很多地方代碼有相似的,想直接復(fù)制過去,把變量等做相應(yīng)改變,本來想把它們統(tǒng)一建立在一個結(jié)構(gòu)體內(nèi),到時之改變類型就可以了,不過事實上發(fā)現(xiàn),理想是美好的,現(xiàn)實是殘酷的,我的水平還是無法調(diào)試處結(jié)果啊所以只能用老方式了。</p><p><b> 五、課程設(shè)計總結(jié)</b></p><
21、p> 本系統(tǒng)至今為止已經(jīng)完成預(yù)想的功能----建立文件、顯示文件的內(nèi)容、修改航班信息、刪除航班信息、查詢航班信息、顧客的訂票信息和顧客退票的信息,當(dāng)然,由于本人水平上的局限,比如在錄入航班信息#include <iostream.h>#include <stdio.h>的時候需要一個一個的錄入,并沒有直接建立在文件上,也沒有通過文件來讀取,而且,本次系統(tǒng)沒有實現(xiàn)顧客信息的查詢功能,不過界面的制作勉強達到預(yù)
22、期的單獨做出一個獨立的界面。在嘗試將刪除函數(shù)內(nèi)部文件計數(shù)的部分單獨分離出來作為一個函數(shù),調(diào)試時發(fā)現(xiàn)老有警告稱文件指針fp未初始化。在反復(fù)查看后終于發(fā)現(xiàn),漏掉了一條if語句。在補全之后,終于順利運行。</p><p> 本次系統(tǒng)開發(fā)主要的開發(fā)環(huán)境是VC,但因為它可以在編輯的時候一邊給予提示,避免了不少語法上的錯誤。而此次開發(fā)所用的編程語言-----C語言是得到廣泛應(yīng)用的程序設(shè)計語言之一,不同于C++面向?qū)ο蟮脑O(shè)計
23、理念,它屬于結(jié)構(gòu)化程序設(shè)計語言,由于既具備高級語言的特性,又具有直接操縱計算機硬件的能力因而更適合于底層的技術(shù)開發(fā)。</p><p> 開始明白要真正理解一個程序就必須了解它的算法。算法是一個程序的靈魂,同樣一個問題,好的算法不僅可以使程序節(jié)省許多空間開銷,而且在時間代價上也會減少很多,真正起到事半功倍的作用。接著就是將所學(xué)知識運用到現(xiàn)實生活中,解決實際問題。而解決問題的第一步就是建模,把實際問題抽象成具體的模
24、型,這是很關(guān)鍵的一步。然后才是設(shè)計算法,編寫程序。程序的編寫過程中書寫的規(guī)范性是很重要但又往往容易被人們忽視的一點。</p><p> 在這次飛機訂票系統(tǒng)的開發(fā)過程中,我深感“程序要由小到大一步一步地調(diào)”這句話的正確性。不同與以往的實驗,這次程序涉及到的函數(shù)較多,而且代碼也不少,一開始時我還按照以前的習(xí)慣將程序都敲上去完整了才一步一步設(shè)置斷點開始調(diào),不僅費時費力,而且面對著屏幕上的一大堆錯誤還無從下手。后來還是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c課程設(shè)計報告飛機訂票系統(tǒng)
- 飛機訂票系統(tǒng)課程設(shè)計
- 飛機訂票系統(tǒng)課程設(shè)計
- 飛機訂票系統(tǒng)課程設(shè)計
- 課程設(shè)計—飛機訂票系統(tǒng)
- c++課程設(shè)計報告--飛機訂票系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- c語言課程設(shè)計報告飛機訂票系統(tǒng)
- c++課程設(shè)計報告---飛機訂票系統(tǒng)
- c語言課程設(shè)計報告飛機訂票系統(tǒng)
- c++課程設(shè)計報告飛機訂票管理系統(tǒng)
- c語言課程設(shè)計——飛機訂票系統(tǒng)
- c語言課程設(shè)計---飛機訂票系統(tǒng)
- c語言課程設(shè)計--飛機訂票系統(tǒng)
- c語言課程設(shè)計——飛機訂票系統(tǒng)
- c語言飛機訂票系統(tǒng)課程設(shè)計
- c++課程設(shè)計——飛機訂票系統(tǒng)
- 飛機訂票系統(tǒng)c語言課程設(shè)計
- 課程設(shè)計——飛機訂票系統(tǒng)程序設(shè)計
- 數(shù)據(jù)庫課程設(shè)計飛機訂票系統(tǒng)
評論
0/150
提交評論