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

下載本文檔

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

文檔簡介

算法與數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)題目: 飛機(jī)訂票系統(tǒng)學(xué) 院: 計(jì)算機(jī)科學(xué)與過程學(xué)院專 業(yè): 信息安全 姓名: 學(xué)號(hào): 指導(dǎo)教師: 王瑞霞2011年9月9日目錄引言…………………11?系統(tǒng)概述 12.課程設(shè)計(jì)的目的…………..23.需求分析…………………..3詳細(xì)設(shè)計(jì) 4所遇到的問題和分析解決????????????10系統(tǒng)特色及關(guān)鍵技術(shù)??????????????10結(jié)論????????????????????10引言:當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,科技的日新月異的發(fā)展必然會(huì)給人們的生活帶來一定的變化。就數(shù)據(jù)處理方面來說,單純的手工操作不僅工作量大、出錯(cuò)率高、更面臨著修改難,時(shí)間成本過高的問題,尋求一種更為細(xì)致安全,高效率的數(shù)據(jù)管理方式成為人們?nèi)找嫣接懞妥非蟮膯栴}。而現(xiàn)代計(jì)算機(jī)的出現(xiàn)使者些成為了現(xiàn)實(shí)。從上世紀(jì)七十年代問世至今,計(jì)算機(jī)已經(jīng)不是單純的數(shù)據(jù)計(jì)算機(jī)器,它已經(jīng)被廣泛地應(yīng)用于信息系統(tǒng)的環(huán)境。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)往往表現(xiàn)出極高的效率和安全性。本文論述的飛機(jī)訂票系統(tǒng)是為公司的管理者提供的一種集錄入、刪除、查詢修改、排序、統(tǒng)計(jì)等于一體的便捷的飛機(jī)訂票系統(tǒng)。該系統(tǒng)主要使得顧客訂票能夠更方便快捷。為此,本系統(tǒng)能夠給他們帶來一些較為方便快捷的導(dǎo)航幫助。本系統(tǒng)論述了飛機(jī)訂票系統(tǒng)的開發(fā)目標(biāo)、實(shí)現(xiàn)過程,并著重介紹了系統(tǒng)設(shè)計(jì)、所遇到問題的分析和解決、系統(tǒng)特色及關(guān)鍵技術(shù)等方面。本文共分為6章:系統(tǒng)概述課程設(shè)計(jì)的目的需求分析詳細(xì)設(shè)計(jì)所遇到的問題和分析解決系統(tǒng)特色及關(guān)鍵技術(shù)結(jié)論(心得體會(huì))系統(tǒng)概述數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式,是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。關(guān)于數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)學(xué)界至今還沒有標(biāo)準(zhǔn)的定義:SartajSahni在他的《數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用》一書中稱:“數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對(duì)象,以及存在于該對(duì)象的實(shí)例和組成實(shí)例的元素之間的各種聯(lián)系。這些聯(lián)系可以通過定義相關(guān)的函數(shù)來給出?!彼麑?shù)據(jù)對(duì)象定義為“一個(gè)數(shù)據(jù)對(duì)象是實(shí)例或值的集合”。CliffordA.Shaffer在《數(shù)據(jù)結(jié)構(gòu)與算法分析》一書中的定義是:“數(shù)據(jù)結(jié)構(gòu)是ADT(抽象數(shù)據(jù)類型AbstractDataType)的物理實(shí)現(xiàn)?!盠obertL.Kruse在《數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)》一書中,將一個(gè)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)過程分成抽象層、數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層。其中,抽象層是指抽象數(shù)據(jù)類型層,它討論數(shù)據(jù)的邏輯結(jié)構(gòu)及其運(yùn)算,數(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)。而本人的理解,數(shù)據(jù)結(jié)構(gòu)通俗來講就是將數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來通過特定的算法將理論運(yùn)用到生活中解決一些現(xiàn)實(shí)問題應(yīng)用。在這次課程設(shè)計(jì)中,正是基于這樣一種理念,在經(jīng)過需求分析將實(shí)際情況綜合起來之后設(shè)計(jì)并開發(fā)出了這樣一個(gè)飛機(jī)訂票系統(tǒng)。本系統(tǒng)的主要功能是通過接收顧客的輸入建立航班信息、顧客信息、訂票情況、退票信息等內(nèi)容,在實(shí)際的生產(chǎn)生活中確保數(shù)據(jù)的可靠性和安全性。課程設(shè)計(jì)的目的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是綜合運(yùn)用數(shù)據(jù)結(jié)構(gòu)課程中的幾種典型數(shù)據(jù)結(jié)構(gòu),以及程序設(shè)計(jì)語言(c語言),自行實(shí)現(xiàn)一個(gè)較為完整的應(yīng)用系統(tǒng)的設(shè)計(jì)和開發(fā)。通過課程設(shè)計(jì),自己通過系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試、寫實(shí)驗(yàn)報(bào)告等環(huán)節(jié),進(jìn)一步掌握應(yīng)用系統(tǒng)設(shè)計(jì)的方法和步驟,靈活運(yùn)用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應(yīng)用。學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際的方法。提高分析和解決問題的能力,增強(qiáng)綜合能力。飛機(jī)訂票系統(tǒng):熟練掌握鏈表存儲(chǔ)結(jié)構(gòu)及其建立過程和常用操作;學(xué)會(huì)自己調(diào)試程序的方法并掌握一定的技巧。課程設(shè)計(jì)內(nèi)容飛機(jī)訂票系統(tǒng)(限1人完成)任務(wù):通過此系統(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à)折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;退票:可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功需求分析無論是做任何開發(fā)或者設(shè)計(jì),我想,這都是一個(gè)必不可少的至關(guān)重要的階段,飛機(jī)訂票系統(tǒng)也不例外。首先,作為一個(gè)系統(tǒng)的管理者,需要高效細(xì)致地管理航班的相關(guān)資料,就必須得依據(jù)航班的實(shí)際情況對(duì)顧客的各個(gè)“板塊”分門別類地建立適當(dāng)?shù)奈募浯危粋€(gè)顧客的流動(dòng)要求本管理系統(tǒng)必須具備處理這些數(shù)據(jù)出入的能力。而我們更希望通過這樣一個(gè)系統(tǒng)對(duì)顧客的某些信息一目了然,以便于相關(guān)人員能及時(shí)地做一些航班上的調(diào)整。使用范圍方面,管理系統(tǒng)顧名思義就是飛機(jī)的一般的管理階層了。界面上為了盡量設(shè)計(jì)得人性化一些,采用了多分枝的SWITCHCASE語句,并有詢問用戶繼續(xù)操作或是退出的選擇處理。對(duì)于輸出,要求格式清晰,讓人一目了然。如若出現(xiàn)無符合查詢條件的員工信息,則系統(tǒng)會(huì)給出相應(yīng)提示。本次系統(tǒng)開發(fā)主要的開發(fā)環(huán)境是VC,但因?yàn)樗梢栽诰庉嫷臅r(shí)候一邊給予提示,避免了不少語法上的錯(cuò)誤。而此次開發(fā)所用的編程語言-----C語言是得到廣泛應(yīng)用的程序設(shè)計(jì)語言之一,不同于C++面向?qū)ο蟮脑O(shè)計(jì)理念,它屬于結(jié)構(gòu)化程序設(shè)計(jì)語言,由于既具備高級(jí)語言的特性,又具有直接操縱計(jì)算機(jī)硬件的能力因而更適合于底層的技術(shù)開發(fā)。本次要求編制程序,實(shí)現(xiàn)航班信息,顧客信息的存儲(chǔ)結(jié)構(gòu),完成信息的錄入、顧客退票、顧客訂票、航班信息的修改、查詢航班信息五個(gè)功能。1.每條航線所涉及的信息有航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù)3.1錄入:可以錄入航班情況:航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù)3.2航班信息修改:對(duì)要修改的航班信息重新輸入航班信息的查詢:(航班信息改變則航班數(shù)據(jù)改變)可以查詢某個(gè)航線的情況:如可以通過航班號(hào)查詢有關(guān)航班的信息(航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù))訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中)可以訂票,若已無票,可以重新選擇再進(jìn)行退票:可退票,退票后修改相關(guān)數(shù)據(jù)文件客戶資料有姓名,證件號(hào),訂購機(jī)票數(shù)量,航班號(hào)3.6在此程序設(shè)計(jì)中要求做到以下要求或者運(yùn)用到以下知識(shí)點(diǎn):熟練掌握根據(jù)問題需求抽象結(jié)構(gòu)進(jìn)而選擇合適的物理結(jié)構(gòu)的方法掌握設(shè)計(jì)和調(diào)試應(yīng)用程序的方法級(jí)技巧掌握實(shí)用程序的開發(fā)與調(diào)試技術(shù)線性結(jié)構(gòu)和非線性結(jié)構(gòu)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)各種物理存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)方式下各種運(yùn)算的實(shí)現(xiàn)詳細(xì)設(shè)計(jì)本系統(tǒng)涉及到三個(gè)文件,所以為了保持?jǐn)?shù)據(jù)的一致性,所用操作都必須在三

個(gè)文件上同時(shí)進(jìn)行。下面對(duì)本管理系統(tǒng)的各模塊及其功能作詳細(xì)介紹。本系統(tǒng)的主要流程圖如下先說一下主函數(shù)吧,本系統(tǒng)作為一個(gè)關(guān)于飛機(jī)訂票的管理系統(tǒng),首先在界面上就要人性化一點(diǎn)。為了能提供多選擇的操作,主函數(shù)內(nèi)部選用了多分枝的switchcase語句,用戶一進(jìn)入到該界面系統(tǒng)就會(huì)自動(dòng)提示請選擇相應(yīng)的操作,當(dāng)用戶選定后便可使用由系統(tǒng)提供的各種功能函數(shù)。而switch語句的外層是一個(gè)do-while循環(huán),當(dāng)用戶按照提示輸入時(shí)可以不斷地操作,輸入非法時(shí)則不予執(zhí)行。進(jìn)入該系統(tǒng),首先映入用戶眼簾的是下面一個(gè)界面。從下圖我們可以看到,該界面是一個(gè)人性化的界面,當(dāng)用戶登陸后可以自主選擇需要進(jìn)行的各項(xiàng)操作,各項(xiàng)操作表面上是相互獨(dú)立的,但實(shí)際上數(shù)據(jù)之間又相互關(guān)聯(lián)。下面是各部分的具體功能:在頭文件中宏定義了三個(gè)變量P_s、P_P、c_s,在其后的各項(xiàng)輸入、輸出中可以直接由其代替各自所表示的內(nè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)。飛機(jī)訂票系統(tǒng)的初始選擇主界面4.2錄入航班信息選擇1號(hào)功能,從主界面進(jìn)入錄入航班信息功能界面,輸入航班的相關(guān)信息。在錄入函數(shù)中依次輸入航班的相關(guān)信息,包括航班號(hào)、其得時(shí)間、抵達(dá)時(shí)間、飛機(jī)始發(fā)地、目的地、票價(jià)、折扣情況、座位總數(shù)以及剩余機(jī)票數(shù)。在輸入一個(gè)航班結(jié)束后再判斷是否繼續(xù)錄入航班信息,選擇繼續(xù)是再次輸入相關(guān)信息,否則直接回到主界面進(jìn)行其他的操作。[請輸入要錄入的航班信息,各項(xiàng)內(nèi)容之間以空格鍵或“h鍵分開航班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù)2 3:00 5:00xg gt98 8 98 13繼續(xù)錄入請輸入粘否則返回上一級(jí)菜單 4.3修改航班信息在主界面中選擇修改航班信息選項(xiàng)后進(jìn)入修改航班信息界面,進(jìn)行各項(xiàng)的航班信息的修改和重新錄入。在修改函數(shù)中,定義了number變量來輸入要修改的航班號(hào),定義plane_inf的指針p和指向它的頭結(jié)點(diǎn)的指針。利用while來判斷該航班是否為空或者存在,若存在則進(jìn)入while內(nèi)進(jìn)一步查詢,查到后則進(jìn)行修改航班信息,完成后輸出提示:您已成功修改xx號(hào)航班,否則輸出提示信息:對(duì)不起,該航班不存在。而后釋放相關(guān)鏈表,單擊任意鍵退出該修改界面回到主界面。請輸人需要修改的航班號(hào):2|青輸入要修改后的航班信息,各項(xiàng)內(nèi)容之間以空格鍵或"h鍵分開頁班號(hào),起飛時(shí)間,抵達(dá)時(shí)間,始發(fā)地,目的地,票價(jià),折扣情況,座位總數(shù),剩余座位數(shù)2 3:00 5:10 hy ji123 8.5 132 234.4查詢航班信息在查詢函數(shù)中,定義變量choice作switch的選擇輸入,定義變量number代表航班號(hào),定義飛機(jī)起降時(shí)間的變量,定義相關(guān)指針指向飛機(jī)結(jié)構(gòu)體,便于輸出的相關(guān)運(yùn)用。用if判斷該航班是否為空,若空,則單擊任意鍵退出,否則進(jìn)入do{}while循環(huán)體內(nèi)進(jìn)入查詢選擇界面:0:為返回主菜單界面;1:為用航班號(hào)查詢航班信息2:為利用始發(fā)地來查詢航班信息。在選擇1后輸入航班號(hào),按下回車鍵后即可輸出要查詢的航班信息,選擇2后則要求輸入始發(fā)地,按下回車鍵后也同樣可以輸出該航班的相關(guān)信息。最后返回到主界面進(jìn)行其他的操作。航班號(hào)起飛時(shí)間抵達(dá)時(shí)間始發(fā)地目的地票價(jià)折扣情況座位總數(shù)剩余座位鸚23:00 5:10hyji123 8.500000 132 23XJOOOOOOCXXXXJOOOOOCJOCJOCJOOOOOOCXXXXJOOOOOOOCJOCJOOOOOOOOCXXJOOOOOOOCJOCJOOOOOOOOCXXXXJOCI返回主菜單》******W0航班號(hào)查詢KMKMKMKK1始發(fā)地查詢xmxg請攢入查詢方式:2請繼入要查尙的始發(fā)地與目的地,中間以空格鍵或"h鍵隔開hyJi_4.5顧客訂票功能在訂票函數(shù)中定義變量length,定義指向航班結(jié)構(gòu)體和顧客結(jié)構(gòu)體的兩個(gè)指針,定義fp為顧客的信息文件指針,接著讀取航班信息文件并初始化鏈表,如果航班結(jié)構(gòu)體為空,清屏后返回,再讀取顧客信息文件并初始化鏈表,將顧客結(jié)構(gòu)體的統(tǒng)計(jì)的賦值給指針變量pl,再打開顧客信息文件,否則如果顧客想結(jié)構(gòu)體不空,則找出最后一個(gè)結(jié)點(diǎn),清屏后輸入訂票者的信息,包括姓名、證件號(hào)、訂購機(jī)票數(shù)量和航班號(hào),然后調(diào)用xg_hb函數(shù),實(shí)現(xiàn)對(duì)航班信息鏈表的修改,在此期間,完成訂票功能是回有提示信息:提示:您已成功訂票,訂單號(hào)是:XX;否則,當(dāng)條件不滿足時(shí),會(huì)有提示:繼續(xù)訂票請輸入Y,否則返回上一級(jí)菜單,然后依照提示進(jìn)行相關(guān)輸入,最后將修改后的航班信息鏈表寫入到航班信息文件中,并釋放相關(guān)函數(shù)。顧客退票功能由主界面進(jìn)入退票界面,在退票函數(shù)中,定義個(gè)相關(guān)變量及指針,如果顧客結(jié)構(gòu)體為空,單擊任意鍵退出,清屏后返回。在退票界面輸入客戶姓名,證件號(hào)和訂單號(hào),判斷如果顧客結(jié)構(gòu)體中內(nèi)容不空時(shí),查找到顧客的姓名和已訂機(jī)票客戶相同姓名并且證件號(hào)相同同時(shí)訂單號(hào)也相同的顧客則給予退票,繼續(xù)判斷.如果該結(jié)構(gòu)體內(nèi)容為空,則輸出:該顧客信息不存在,單擊任意鍵退出,否則將鏈表信息重新寫到文件中,使相關(guān)航班信息票數(shù)恢復(fù),此后刪除退票顧客信息結(jié)點(diǎn),最后輸出:退票成功,單擊任意鍵退出,然后回到主界面。退出系統(tǒng)在主界面選擇0號(hào)功能,進(jìn)入退出系統(tǒng)界面,按任意鍵退出系統(tǒng)。青輸入客請輸入證件號(hào):L青輸入訂單號(hào):暮顧客信息不存在,單擊任意鍵退岀請輸入客戶姓名:nri請輸入證件號(hào):23請輸入訂單號(hào):退票成功,單擊任意鍵退岀以上為界面顯示的一些功能選項(xiàng)及信息,此外還有一些函數(shù)后功能并沒有直接額體現(xiàn)在其中,但又是不能缺失的:4.8其他功能4.8.1查找修改結(jié)點(diǎn)的函數(shù)該函數(shù)用來查找待修改結(jié)點(diǎn),并判斷是否符合條件。當(dāng)航班結(jié)構(gòu)體不空時(shí),如果當(dāng)找到要查找結(jié)點(diǎn)是結(jié)束查找,否則繼續(xù)查找。如果該結(jié)構(gòu)體為空時(shí),在訂票界面中顯示信息:對(duì)不起,該航班不存在,不能訂票,后返回主界面;如果當(dāng)輸入顧客要訂票數(shù)大于航班剩余機(jī)票數(shù)時(shí),在訂票界面顯示信息:對(duì)不起,該航班只剩XX張票,然后返回主界面。4.8.2實(shí)現(xiàn)航班號(hào)查詢在該函數(shù)中,當(dāng)執(zhí)行還未到尾結(jié)點(diǎn)就找到相應(yīng)航班,則顯示:“符合要求的航班信息如下所示:”,如果一直都沒有找到,則顯示輸出:“對(duì)不起該航班信息不存在”,否則顯示輸出相關(guān)的航班信息.4.8.3實(shí)現(xiàn)始發(fā)地及目的地查詢在查找過程中,當(dāng)指針還沒有指向尾結(jié)點(diǎn)時(shí)就找到了始發(fā)地和目的地相同的結(jié)點(diǎn)時(shí),就表示找到了要求的航班,從而輸出該航班的信息,否則,則繼續(xù)查找,一直到結(jié)尾,如果還沒找到,則輸出:“對(duì)不起,沒有符合您要求的航班”,此外,當(dāng)找到的航班有多個(gè),還可輸出:“共有XX個(gè)航班符合您的要求”4.8.4實(shí)現(xiàn)將航班信息文件以鏈表實(shí)現(xiàn)該函數(shù)定義航班結(jié)構(gòu)體指針變量:p_inf*pl,*p2,*p3,*head,定義文件指針fp,打開文件信息,如果文件為空,則打印輸出:航班信息不存在,單擊任意鍵退出,返回為空;初始化航班信息鏈表時(shí),外層循環(huán)由do{}while引導(dǎo),內(nèi)層則輔以if-——else語句,在do{}while中首先賦值變量pl以動(dòng)態(tài)空間,如果鏈表為空,變量p2永遠(yuǎn)指向最后一個(gè)結(jié)點(diǎn),否則變量p3指向最后一個(gè)結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn),而變量p2永遠(yuǎn)指向最后一個(gè)結(jié)點(diǎn),循環(huán)外讀取文件,釋放p2,如果頭結(jié)點(diǎn)為pl,則賦空值給頭結(jié)點(diǎn),否則最后一個(gè)結(jié)點(diǎn)為空,關(guān)閉文件,返回頭結(jié)點(diǎn)。4.8.5實(shí)現(xiàn)將顧客信息文件以鏈表實(shí)現(xiàn)打開顧客文件信息時(shí),如果文件為空,輸出:顧客信息不存在,單擊任意鍵退出,返回空值;然后初始化顧客信息鏈表,賦予變量pl動(dòng)態(tài)空間,如果鏈表為空,變量p2永遠(yuǎn)指向最后一個(gè)結(jié)點(diǎn),否則變量p3指向最后一個(gè)結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn),而變量p2永遠(yuǎn)指向最后一個(gè)結(jié)點(diǎn),循環(huán)外讀取文件,釋放p2,如果頭結(jié)點(diǎn)為pl,則賦空值給頭結(jié)點(diǎn),否則最后一個(gè)結(jié)點(diǎn)為空,關(guān)閉文件,返回頭結(jié)點(diǎn)。4.8.6將航班信息鏈表寫入到航班信息文件中首先打開航班信息文件,當(dāng)航班信息文件為空時(shí),輸出:不能打開航班信息文件,然后退出,否則,當(dāng)鏈表不空時(shí),將航班信息鏈表寫入到航班信息文件中;最后關(guān)閉航班信息文件。4.8.7將顧客信息鏈表寫入到顧客信息文件中首先打開顧客信息文件,當(dāng)顧客信息文件為空時(shí),輸出:不能打開航班信息文件,然后退出,否則,當(dāng)鏈表不空時(shí),將顧客信息鏈表寫入到顧客信息文件中;最后關(guān)閉航班信息文件。4.8.8釋放航班信息表當(dāng)航班信息鏈表不為空時(shí),將p付給p1,p再指向下一結(jié)點(diǎn),然后在釋放p1。4.8.9釋放顧客信息表當(dāng)顧客信息鏈表不為空時(shí),將p付給p1,p再指向下一結(jié)點(diǎn),然后在釋放p1。以上是個(gè)函數(shù)的相對(duì)獨(dú)立定義使用,同時(shí)在他們的運(yùn)用當(dāng)中,有存在有不同程度,不同頻率的函數(shù)調(diào)用,使得程序能夠更加的完整,使用,并簡潔。函數(shù)間的調(diào)用能夠縮短一個(gè)函數(shù)之內(nèi)的代碼量,便于函數(shù)的閱讀與調(diào)試,更易讓人理解。綜上所述,即為整個(gè)函數(shù)的運(yùn)行過程和一些函數(shù)功能與運(yùn)用的分析,以下將對(duì)本次編程過程所遇問題加以分析了。所遇到的問題和分析解決在開發(fā)本系統(tǒng)時(shí)確實(shí)遇到了不少問題,以下就是關(guān)于這些問題的描述及其分析解決的過程。在本次開發(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)在還不是很理解,不過書上的例子還是可以幫忙應(yīng)用來實(shí)現(xiàn)相關(guān)功能,由此。我想盡管這門課程已經(jīng)結(jié)束了,但我不能就此結(jié)束這門課程的學(xué)習(xí)。文件的建立當(dāng)建立文件時(shí),多次建立都無法使用,在文件的讀取,寫入的時(shí)候,多次檢查代碼都無法正常運(yùn)行,后來還是找了課本,重新看了上面的內(nèi)容,理解了一些格式上的細(xì)節(jié),和語言的描述才最終完成,不過感覺還是不大完善,看來,無論什么內(nèi)容,隔得久了,不常用都是會(huì)失去它們,無論是多么簡單的問題或者事情,久了就淡了,也就忘了,還是要不時(shí)的去回顧下啊,否則什么時(shí)候又在同一個(gè)地方出錯(cuò),到時(shí)還真難處理啊,這可是得不償失的,因而回顧以前的也總會(huì)有收獲的,要看長遠(yuǎn)點(diǎn)。代碼的重復(fù)、繁瑣代碼因?yàn)槌绦虻木帉懻{(diào)試過程是由小到大逐個(gè)調(diào)試的,在調(diào)試完所有函數(shù)將其統(tǒng)一起來后,發(fā)現(xiàn)其實(shí)各個(gè)函數(shù)的內(nèi)部都有一些代碼是相同的,那就是函數(shù)的開頭計(jì)算文件長度的那一段。發(fā)現(xiàn)很多地方代碼有相似的,想直接復(fù)制過去,把變量等做相應(yīng)改變,本來想把它們統(tǒng)一建立在一個(gè)結(jié)構(gòu)體內(nèi),到時(shí)之改變類型就可以了,不過事實(shí)上發(fā)現(xiàn),理想是美好的,現(xiàn)實(shí)是殘酷的,我的水平還是無法調(diào)試處結(jié)果啊所以只能用老方式了。系統(tǒng)特色及關(guān)鍵技術(shù)本系統(tǒng)的特色在于界面非常友好,尤其在主函數(shù)方面,不僅主菜單運(yùn)用了do-while語句與switchcase的結(jié)合使得用戶可以自由選擇需要執(zhí)行的操作,在修改和查詢等非級(jí)聯(lián)操作功能里還內(nèi)嵌了一個(gè)這樣的結(jié)構(gòu),即switch語句的嵌套使用,do-while語句使得用戶每執(zhí)行完一次操作之后繼續(xù)彈出選擇菜單可以一直操作,直到用戶按0退出結(jié)束,而switch-case的巧妙嵌套讓用戶能兩級(jí)菜單之間自由轉(zhuǎn)換,避免了某些不必要的操作。7.結(jié)論本系統(tǒng)至今為止已經(jīng)完成預(yù)想的功能 建立文件、顯示文件的內(nèi)容、修改航班信息、刪除航班信息、查詢航班信息、顧客的訂票信息和顧客退票的信息,當(dāng)然,由于本人水平上的局限,比如在錄入航班信息的時(shí)候需要一個(gè)一個(gè)的錄入,并沒有直接建立在文件上,也沒有通過文件來讀取,而且,本次系統(tǒng)沒有實(shí)現(xiàn)顧客信息的查詢功能,不過界面的制作勉強(qiáng)達(dá)到預(yù)期的單獨(dú)做出一個(gè)獨(dú)立的界面。這樣的問題也正暴露出我平時(shí)學(xué)習(xí)態(tài)度方面的不足,以前總以為把書本上的知識(shí)基本了解就夠了,但真正面對(duì)題目時(shí)才發(fā)現(xiàn)無從下手。書到用時(shí)方恨少,這話說得一點(diǎn)都不假。這是其中的一個(gè)方面。另一個(gè)方面,細(xì)節(jié)決定成敗。在編寫該程序的過程中,因?yàn)榧?xì)節(jié)問題不注意,確實(shí)走了不少彎路。比如在嘗試將刪除函數(shù)內(nèi)部文件計(jì)數(shù)的部分單獨(dú)分離出來作為一個(gè)函數(shù),調(diào)試時(shí)發(fā)現(xiàn)老有警告稱文件指針fp未初始化。在反復(fù)查看后終于發(fā)現(xiàn),漏掉了一條if語句。在補(bǔ)全之后,終于順利運(yùn)行。除了以上這些,這次課程設(shè)計(jì)也加深了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程的理解。數(shù)據(jù)結(jié)構(gòu)是基礎(chǔ)的一門課,對(duì)于有過編程經(jīng)驗(yàn)的人,結(jié)合自己的編程體會(huì)去領(lǐng)悟它的思想;對(duì)于初學(xué)者,撿一種自己最熟悉的語言去分析它總之千萬不要滿足于只停留在語言的細(xì)節(jié)上,而是應(yīng)該高屋建瓴的去領(lǐng)會(huì)數(shù)據(jù)結(jié)構(gòu)的思想。隨著編程經(jīng)歷的豐富和對(duì)它的體會(huì)越深入,最初接觸是對(duì)一些思想可能只是生硬的記憶,隨著學(xué)習(xí)的深入逐漸領(lǐng)悟了很多。還記得當(dāng)初初學(xué)c語言,做的第一個(gè)實(shí)驗(yàn)就是敲Helloworld,當(dāng)時(shí)就是一知半解的狀態(tài),對(duì)著明明只有幾行的代碼愣是調(diào)了半個(gè)小時(shí)才編譯運(yùn)行得出來。然后是看書上的程序,了解基本語法后模仿其中的寫法,通俗點(diǎn)講也就是邯鄲學(xué)步的狀態(tài)。雖然經(jīng)歷了實(shí)驗(yàn)考試,但其中的算法只知其然而不知其所以然。隨著學(xué)習(xí)的漸漸深入,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論