飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  飛機(jī)訂票系統(tǒng)</b></p><p><b>  一、需求分析</b></p><p>  無(wú)論是做任何開(kāi)發(fā)或者設(shè)計(jì),我想,這都是一個(gè)必不可少的至關(guān)重要的階段,飛機(jī)訂票系統(tǒng)也不例外。首先,作為一個(gè)系統(tǒng)的管理者,需要高效細(xì)致地管理 航班的相關(guān)資料,就必須得依據(jù)航班的實(shí)際情況對(duì)顧客的各個(gè)“板塊”分門別類地建立適當(dāng)?shù)奈募?/p>

2、次,一個(gè)顧客的流動(dòng)要求本管理系統(tǒng)必須具備處理這些數(shù)據(jù)出入的能力。而我們更希望通過(guò)這樣一個(gè)系統(tǒng)對(duì)顧客的某些信息一目了然,以便于相關(guān)人員能及時(shí)地做一些航班上的調(diào)整。使用范圍方面,管理系統(tǒng)顧名思義就是飛機(jī)的一般的管理階層了。界面上為了盡量設(shè)計(jì)得人性化一些,采用了多分枝的SWITCH CASE 語(yǔ)句,并有詢問(wèn)用戶繼續(xù)操作或是退出的選擇處理。對(duì)于輸出,要求格式清晰,讓人一目了然。如若出現(xiàn)無(wú)符合查詢條件的員工信息,則系統(tǒng)會(huì)給出相應(yīng)提示。</p

3、><p>  本次系統(tǒng)開(kāi)發(fā)主要的開(kāi)發(fā)環(huán)境是VC,但因?yàn)樗梢栽诰庉嫷臅r(shí)候一邊給予提示,避免了不少語(yǔ)法上的錯(cuò)誤。而此次開(kāi)發(fā)所用的編程語(yǔ)言-----C語(yǔ)言是得到廣泛應(yīng)用的程序設(shè)計(jì)語(yǔ)言之一,不同于C++面向?qū)ο蟮脑O(shè)計(jì)理念,它屬于結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,由于既具備高級(jí)語(yǔ)言的特性,又具有直接操縱計(jì)算機(jī)硬件的能力因而更適合于底層的技術(shù)開(kāi)發(fā)。</p><p>  本次要求編制程序,實(shí)現(xiàn)航班信息,顧客信息的存儲(chǔ)結(jié)

4、構(gòu),完成信息的錄入、顧客退票、顧客訂票、查詢航班信息四個(gè)功能。</p><p><b>  1.錄入:</b></p><p><b>  可以錄入航班情況:</b></p><p>  航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù)。</p><p>  2.退票

5、:可退票,退票后修改相關(guān)數(shù)據(jù)文件</p><p>  客戶資料有姓名,證件號(hào),訂購(gòu)機(jī)票數(shù)量,航班號(hào)</p><p>  3.訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中)</p><p>  可以訂票,若已無(wú)票,可以重新選擇再進(jìn)行</p><p>  4.查詢:(航班信息改變則航班數(shù)據(jù)改變)</p><p>  可以查詢某個(gè)

6、航線的情況:</p><p>  如可以通過(guò)航班號(hào)查詢有關(guān)航班的信息(航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù))</p><p><b>  二、概要設(shè)計(jì)</b></p><p>  數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式,是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可

7、以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。</p><p>  關(guān)于數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)學(xué)界至今還沒(méi)有標(biāo)準(zhǔn)的定義:</p><p>  Sartaj Sahni 在他的《數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用》一書(shū)中稱:“數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對(duì)象,以及存在于該對(duì)象的實(shí)例和組成實(shí)例的元素之間的各種聯(lián)系。這些聯(lián)系可以通過(guò)定義相關(guān)的函數(shù)來(lái)給出?!彼麑?shù)據(jù)對(duì)象定義為“一個(gè)數(shù)據(jù)對(duì)象是實(shí)例或值的集

8、合”。</p><p>  Clifford A.Shaffer 在《數(shù)據(jù)結(jié)構(gòu)與算法分析》一書(shū)中的定義是:“數(shù)據(jù)結(jié)構(gòu)是ADT(抽象數(shù)據(jù)類型 Abstract Data Type)的物理實(shí)現(xiàn)。”</p><p>  Lobert L.Kruse 在《數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)》一書(shū)中,將一個(gè)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)過(guò)程分成抽象層、數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層。其中,抽象層是指抽象數(shù)據(jù)類型層,它討論數(shù)據(jù)的邏輯結(jié)構(gòu)及其運(yùn)算

9、,數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層討論一個(gè)數(shù)據(jù)結(jié)構(gòu)的表示和在計(jì)算機(jī)內(nèi)的存儲(chǔ)細(xì)節(jié)以及運(yùn)算的實(shí)現(xiàn)。</p><p>  而本人的理解,數(shù)據(jù)結(jié)構(gòu)通俗來(lái)講就是將數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來(lái)通過(guò)特定的算法將理論運(yùn)用到生活中解決一些現(xiàn)實(shí)問(wèn)題應(yīng)用。在這次課程設(shè)計(jì)中,正是基于這樣一種理念,在經(jīng)過(guò)需求分析將實(shí)際情況綜合起來(lái)之后設(shè)計(jì)并開(kāi)發(fā)出了這樣一個(gè)飛機(jī)訂票系統(tǒng)。</p><p>  本系統(tǒng)的主要功能是通過(guò)接收顧客的輸

10、入建立航班信息、顧客信息、訂票情況、退票信息等內(nèi)容,在實(shí)際的生產(chǎn)生活中確保數(shù)據(jù)的可靠性和安全性。</p><p>  本系統(tǒng)涉及到三個(gè)文件,所以為了保持?jǐn)?shù)據(jù)的一致性,所用操作都必須在三個(gè)文件上同時(shí)進(jìn)行。下面對(duì)本管理系統(tǒng)的各模塊及其功能作詳細(xì)介紹。</p><p>  本系統(tǒng)的主要流程圖如下</p><p><b>  三、詳細(xì)設(shè)計(jì)</b><

11、;/p><p>  本系統(tǒng)作為一個(gè)關(guān)于飛機(jī)訂票的管理系統(tǒng),首先在界面上就要人性化一點(diǎn)。為了能提供多選擇的操作,主函數(shù)內(nèi)部選用了多分枝的switch case 語(yǔ)句,用戶一進(jìn)入到該界面系統(tǒng)就會(huì)自動(dòng)提示請(qǐng)選擇相應(yīng)的操作,當(dāng)用戶選定后便可使用由系統(tǒng)提供的各種功能函數(shù)。而switch語(yǔ)句的外層是一個(gè)do-while循環(huán),當(dāng)用戶按照提示輸入時(shí)可以不斷地操作,輸入非法時(shí)則不予執(zhí)行。</p><p>  進(jìn)

12、入該系統(tǒng),首先映入用戶眼簾的是下面一個(gè)界面。從下圖我們可以看到,該界面是一個(gè)人性化的界面,當(dāng)用戶登陸后可以自主選擇需要進(jìn)行的各項(xiàng)操作,各項(xiàng)操作表面上是相互獨(dú)立的,但實(shí)際上數(shù)據(jù)之間又相互關(guān)聯(lián)。</p><p>  下面是各部分的具體功能:</p><p>  在頭文件中宏定義了三個(gè)變量P_S、P_P、C_S,在其后的各項(xiàng)輸入、輸出中可以直接由其代替各自所表示的內(nèi)容,從而使得程序的明朗,清晰化

13、,不必在輸入冗雜的代碼來(lái)引起不必要的雜亂。此外還定義了航班和顧客兩個(gè)結(jié)構(gòu)體,其中航班結(jié)構(gòu)體包含了航班號(hào)、起降時(shí)間、飛機(jī)的始發(fā)地和目的地以及飛機(jī)票價(jià)、折扣、座位總數(shù)和剩余機(jī)票輸,二各科信息結(jié)構(gòu)體中澤囊括了顧客姓名、證件號(hào)、所訂機(jī)票數(shù)、所訂航班號(hào)和訂單號(hào)。</p><p>  #include <string.h>#include <conio.h>#define m 4

14、 //3架飛機(jī)#define n 5 //每架飛機(jī)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)試測(cè)試</b></p><p><b>  錄入:</b></p><p><b>  退票:</b></p><p><b>  訂票:</b></p><p><b>  查詢:&

17、lt;/b></p><p>  所遇到的問(wèn)題和分析解決:</p><p>  在開(kāi)發(fā)本系統(tǒng)時(shí)確實(shí)遇到了不少問(wèn)題,以下就是關(guān)于這些問(wèn)題的描述及其分析解決的過(guò)程。</p><p>  在本次開(kāi)發(fā)當(dāng)中,選擇運(yùn)用了鏈表,因?yàn)檫@次是作為數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì),而數(shù)據(jù)結(jié)構(gòu)中最常應(yīng)用的就是鏈表的使用了,因而選擇鏈表,就可以更能夠加深對(duì)數(shù)據(jù)結(jié)構(gòu)的理解和應(yīng)用,雖然有的地方現(xiàn)在還不

18、是很理解,不過(guò)書(shū)上的例子還是可以幫忙應(yīng)用來(lái)實(shí)現(xiàn)相關(guān)功能,由此。我想盡管這門課程已經(jīng)結(jié)束了,但我不能就此結(jié)束這門課程的學(xué)習(xí)。</p><p><b>  1.文件的建立</b></p><p>  當(dāng)建立文件時(shí),多次建立都無(wú)法使用,在文件的讀取,寫(xiě)入的時(shí)候,多次檢查代碼都無(wú)法正常運(yùn)行,后來(lái)還是找了課本,重新看了上面的內(nèi)容,理解了一些格式上的細(xì)節(jié),和語(yǔ)言的描述才最終完成,

19、不過(guò)感覺(jué)還是不大完善,看來(lái),無(wú)論什么內(nèi)容,隔得久了,不常用都是會(huì)失去它們,無(wú)論是多么簡(jiǎn)單的問(wèn)題或者事情,久了就淡了,也就忘了,還是要不時(shí)的去回顧下啊,否則什么時(shí)候又在同一個(gè)地方出錯(cuò),到時(shí)還真難處理啊,這可是得不償失的,因而回顧以前的也總會(huì)有收獲的,要看長(zhǎng)遠(yuǎn)點(diǎn)。</p><p>  2.代碼的重復(fù)、繁瑣</p><p>  代碼因?yàn)槌绦虻木帉?xiě)調(diào)試過(guò)程是由小到大逐個(gè)調(diào)試的,在調(diào)試完所有函數(shù)將其

20、統(tǒng)一起來(lái)后,發(fā)現(xiàn)其實(shí)各個(gè)函數(shù)的內(nèi)部都有一些代碼是相同的,那就是函數(shù)的開(kāi)頭計(jì)算文件長(zhǎng)度的那一段。發(fā)現(xiàn)很多地方代碼有相似的,想直接復(fù)制過(guò)去,把變量等做相應(yīng)改變,本來(lái)想把它們統(tǒng)一建立在一個(gè)結(jié)構(gòu)體內(nèi),到時(shí)之改變類型就可以了,不過(guò)事實(shí)上發(fā)現(xiàn),理想是美好的,現(xiàn)實(shí)是殘酷的,我的水平還是無(wú)法調(diào)試處結(jié)果啊所以只能用老方式了。</p><p><b>  五、課程設(shè)計(jì)總結(jié)</b></p><

21、p>  本系統(tǒng)至今為止已經(jīng)完成預(yù)想的功能----建立文件、顯示文件的內(nèi)容、修改航班信息、刪除航班信息、查詢航班信息、顧客的訂票信息和顧客退票的信息,當(dāng)然,由于本人水平上的局限,比如在錄入航班信息#include <iostream.h>#include <stdio.h>的時(shí)候需要一個(gè)一個(gè)的錄入,并沒(méi)有直接建立在文件上,也沒(méi)有通過(guò)文件來(lái)讀取,而且,本次系統(tǒng)沒(méi)有實(shí)現(xiàn)顧客信息的查詢功能,不過(guò)界面的制作勉強(qiáng)達(dá)到預(yù)

22、期的單獨(dú)做出一個(gè)獨(dú)立的界面。在嘗試將刪除函數(shù)內(nèi)部文件計(jì)數(shù)的部分單獨(dú)分離出來(lái)作為一個(gè)函數(shù),調(diào)試時(shí)發(fā)現(xiàn)老有警告稱文件指針fp未初始化。在反復(fù)查看后終于發(fā)現(xiàn),漏掉了一條if語(yǔ)句。在補(bǔ)全之后,終于順利運(yùn)行。</p><p>  本次系統(tǒng)開(kāi)發(fā)主要的開(kāi)發(fā)環(huán)境是VC,但因?yàn)樗梢栽诰庉嫷臅r(shí)候一邊給予提示,避免了不少語(yǔ)法上的錯(cuò)誤。而此次開(kāi)發(fā)所用的編程語(yǔ)言-----C語(yǔ)言是得到廣泛應(yīng)用的程序設(shè)計(jì)語(yǔ)言之一,不同于C++面向?qū)ο蟮脑O(shè)計(jì)

23、理念,它屬于結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,由于既具備高級(jí)語(yǔ)言的特性,又具有直接操縱計(jì)算機(jī)硬件的能力因而更適合于底層的技術(shù)開(kāi)發(fā)。</p><p>  開(kāi)始明白要真正理解一個(gè)程序就必須了解它的算法。算法是一個(gè)程序的靈魂,同樣一個(gè)問(wèn)題,好的算法不僅可以使程序節(jié)省許多空間開(kāi)銷,而且在時(shí)間代價(jià)上也會(huì)減少很多,真正起到事半功倍的作用。接著就是將所學(xué)知識(shí)運(yùn)用到現(xiàn)實(shí)生活中,解決實(shí)際問(wèn)題。而解決問(wèn)題的第一步就是建模,把實(shí)際問(wèn)題抽象成具體的模

24、型,這是很關(guān)鍵的一步。然后才是設(shè)計(jì)算法,編寫(xiě)程序。程序的編寫(xiě)過(guò)程中書(shū)寫(xiě)的規(guī)范性是很重要但又往往容易被人們忽視的一點(diǎn)。</p><p>  在這次飛機(jī)訂票系統(tǒng)的開(kāi)發(fā)過(guò)程中,我深感“程序要由小到大一步一步地調(diào)”這句話的正確性。不同與以往的實(shí)驗(yàn),這次程序涉及到的函數(shù)較多,而且代碼也不少,一開(kāi)始時(shí)我還按照以前的習(xí)慣將程序都敲上去完整了才一步一步設(shè)置斷點(diǎn)開(kāi)始調(diào),不僅費(fèi)時(shí)費(fèi)力,而且面對(duì)著屏幕上的一大堆錯(cuò)誤還無(wú)從下手。后來(lái)還是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論