航班信息系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第1頁
航班信息系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第2頁
航班信息系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第3頁
航班信息系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第4頁
航班信息系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告課程名稱課題名稱航班信息系統(tǒng)課程設(shè)計(jì)專業(yè)班級(jí)學(xué)號(hào)名指導(dǎo)教師2013年1月8日湖呈課程設(shè)計(jì)任務(wù)書課程名稱數(shù)據(jù)結(jié)構(gòu)課 題航班信息系統(tǒng)設(shè)計(jì)專業(yè)班級(jí)學(xué)生姓名學(xué) 號(hào)指導(dǎo)老師審 批任務(wù)書下達(dá)日期2012年12月17日任務(wù)完成日期2013年1月8日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1. 設(shè)計(jì)內(nèi)容:?jiǎn)栴}描述每個(gè)航班記錄包括八項(xiàng),分別是:航班號(hào)、起點(diǎn)站、終點(diǎn)站、航班 期、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià)。設(shè)計(jì)該航班信息系統(tǒng),實(shí)現(xiàn)飛機(jī)航班 信息的插入、刪除、查詢與檢索等功能。按照航班的航班號(hào)、起點(diǎn)站、終點(diǎn)站、 起飛時(shí)間以及到達(dá)時(shí)間等信息進(jìn)行查詢。在查詢過程中,耍求用到順序查找、二 分查找等算法。具體要求見基本功能

2、?;竟δ?) .對(duì)一組具有結(jié)構(gòu)特征的飛機(jī)航班號(hào)進(jìn)行排序,排序方法任選。2) .利用二分查找的方法對(duì)已經(jīng)排好序的航班記錄按航班號(hào)實(shí)現(xiàn)快速查找, 按其他次關(guān)鍵字的查找可采用順序查找方法進(jìn)行,因?yàn)樗鼈冇玫幂^少。3) .如有特殊情況,需要插入或一條新的航班信息,插入或刪除后,顯示更 新后的所有航班信息。2. 設(shè)計(jì)要求:1) .設(shè)計(jì)正確,方案合理。2) .界面友好,使用方便。3) .程序精煉,結(jié)構(gòu)清晰。4) .設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說明、系統(tǒng)的功能框圖、流程圖、源 程序清單等。5) .實(shí)際操作過程中遇到的問題及解決方法:設(shè)計(jì)總結(jié)及心得體會(huì)。6) .上機(jī)演示。二、進(jìn)度安排第18周星期一8時(shí):

3、00分11時(shí):30分星期二 14時(shí):00分17時(shí):30分星期三8時(shí):00分一11時(shí)】30分星期四8時(shí):00分一11時(shí):30分星期五8時(shí):00分一11時(shí):30分第19周星期二8時(shí):00分一11時(shí):30分1. 系統(tǒng)需求分析11.1問題描述11.2功能要求12. 概要設(shè)計(jì)22.1系統(tǒng)總體設(shè)計(jì)22. 2.各模塊的功能22. 3.航班信息的查詢與檢索32. 4.航班信息查詢與檢索數(shù)據(jù)結(jié)構(gòu)理論33. 詳細(xì)設(shè)計(jì)43.1采用c語言定義結(jié)構(gòu)體類型43.2主函數(shù)43. 3各模塊流程圖74. 系統(tǒng)調(diào)試及運(yùn)行結(jié)果124. 1顯示的主菜單界面124.2添加記錄界面124. 3顯示記錄界面134. 4刪除記錄界面134.

4、5查詢記錄界面144. 6修改記錄界面144.7保存記錄界面154.8退出菜單界面165. 心得體會(huì)176. 附錄176. 1源代碼176.2參考文獻(xiàn)337. 評(píng)分表34h系統(tǒng)需求分析1.1問題描述通過該系統(tǒng)實(shí)現(xiàn)對(duì)航班信息進(jìn)行錄入、顯示、修改、刪除、插入、排序、 保存等操作的管理。1. 2功能要求(1) 、本系統(tǒng)采用一個(gè)包含n個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng) 當(dāng)包括:航班號(hào)、起點(diǎn)站、終點(diǎn)站、航班期、起飛時(shí)間、到達(dá)時(shí)間、機(jī) 型以及票價(jià)。(2) 、本系統(tǒng)顯示這樣的菜單:請(qǐng)選擇系統(tǒng)功能項(xiàng):a. 航班信息錄入b. 航班信息顯示c. 航班信息保存d. 航班信息刪除e. 航班信息修改f航班信息查詢按航

5、班號(hào)查詢按起點(diǎn)站查詢按終點(diǎn)站查詢按起飛時(shí)間查詢按到達(dá)時(shí)間查詢g.退出系統(tǒng)(3) 、執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。(4) 、將航班信息保存到文件中。2概要設(shè)計(jì)2. 1系統(tǒng)總體設(shè)計(jì)航班信息系統(tǒng)vvvvvvv添加顯示刪除查詢修改保存退出iiijl航班號(hào)起點(diǎn)站終點(diǎn)站起飛時(shí)間到達(dá)時(shí)間2. 2.各模塊的功能添加:可以添加航班信息記錄,依次輸入航班號(hào)、起點(diǎn)站、終點(diǎn)站、航班 期、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià)后,會(huì)提示是否繼續(xù)添加。顯示:可以以表格形式輸出所有航班信息里的記錄。刪除:輸入欲刪除的航班的航班號(hào)后,會(huì)自動(dòng)刪除該航班的記錄內(nèi)容。 查詢:可以選擇用航班號(hào)、起點(diǎn)站、終點(diǎn)站、起飛時(shí)間以及到

6、達(dá)時(shí)間五種 方式查詢。修改:輸入欲修改的航班的航班號(hào)后,再依次輸入航班號(hào)、起點(diǎn)站、終點(diǎn) 站、航班期、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià)即可完成修改。保存:輸入文件名(帶后綴名)后,即可將航班信息保存到文件。2. 3.航班信息的查詢與檢索進(jìn)入系統(tǒng)后,首先提示輸入航班的信息,包括:航班號(hào)、起點(diǎn)站、終點(diǎn)站、 班期、起飛時(shí)間、到達(dá)時(shí)間、飛機(jī)型號(hào)及票價(jià)等,票價(jià)為整型,其他為字符型。當(dāng)輸入完一個(gè)信息后會(huì)提示是否繼續(xù)輸入,重復(fù)以上步驟輸入全部的信息。 進(jìn)入主菜單后會(huì)給出用戶操作的界面,根據(jù)提示進(jìn)行航班信息的查詢。2. 4.航班信息查詢與檢索數(shù)據(jù)結(jié)構(gòu)理論針對(duì)在本該類系統(tǒng)中的數(shù)據(jù)的處理情況,本系統(tǒng)采用二分查找法、

7、基數(shù)排序 法、最高位優(yōu)先法。二分查找法也稱為折半查找法,它充分利用了元素間的次序關(guān)系,采用分治 策略,可在最壞的情況下用o(log n)完成搜索任務(wù)。它的基本思想是,將n個(gè) 元素分成個(gè)數(shù)大致相同的兩半,取an/2與欲查找的x作比較,如果x二an/2 則找到x,算法終止。如果x<an/2,則我們只要在數(shù)組a的左半部繼續(xù)搜索 x(這里假設(shè)數(shù)組元素呈升序排列)。如果x>an/2,則我們只耍在數(shù)組a的右 半 部繼續(xù)搜索xo對(duì)航班號(hào)的排序是采用的基數(shù)排序法?;鶖?shù)排序法又稱“桶子法”(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分 配至某些“桶”

8、中,藉以達(dá)到排序的作用,基數(shù)排序法是屬于穩(wěn)定性的排序,其 時(shí)間復(fù)雜度為0 (nlog(r)m),其中r為所采取的基數(shù),而m為堆數(shù),在某些時(shí) 候,基數(shù)排序法的效率高于其它的比較性排序法。最高位優(yōu)先(most significant digit first)法,簡(jiǎn)稱msd法:先按kl排 序分組,同一組中記錄,關(guān)鍵碼kl相等,再對(duì)各組按k2排序分成子組,之后, 對(duì)后面的關(guān)鍵碼繼續(xù)這樣的排序分組,直到按最次位關(guān)鍵碼kd對(duì)各子組排序后。 再將各組連接起來,便得到一個(gè)有序序列。最低位優(yōu)先(least significant digit first)法,簡(jiǎn)稱lsd法:先從kd開始排序,再對(duì)kd-l進(jìn)行排序,

9、依次重復(fù),直 到對(duì)kl排序后便得到一個(gè)有序序列。3.詳細(xì)設(shè)計(jì)3. 1釆用c語言定義結(jié)構(gòu)體類型將每個(gè)航班的信息(航班號(hào)、起點(diǎn)站、終點(diǎn)站、航班期、起飛時(shí)間、到達(dá)時(shí) 間、機(jī)型以及票價(jià))定義成如下結(jié)構(gòu)體類型:typedef structchar beplace6; 起點(diǎn)站char enplace6; 終點(diǎn)站char sche10; /航班期char betime 10; 起飛時(shí)間char entime10; 到達(dá)時(shí)間char model8; 機(jī)型int price; 票價(jià) fly type; /航班記錄類型3.2主函數(shù)主函數(shù)是整個(gè)程序的的入口,采用模塊化得設(shè)計(jì)思想,且主函數(shù)不宜復(fù)雜, 功能盡量在各模塊

10、中實(shí)現(xiàn)。首先聲明一些必要的變量,然后作一無限循環(huán)程序, 循環(huán)體為一個(gè)開關(guān)語句,該語句的條件值是通過調(diào)用主菜單函數(shù)得到的返回值, 根據(jù)該值調(diào)用相應(yīng)的各功能函數(shù),同時(shí)設(shè)置一個(gè)端點(diǎn),即當(dāng)返回值為一定條件時(shí) 運(yùn)行exit ()函數(shù)結(jié)束程序,以免造成死循環(huán)。void main()/* 主函數(shù)*/sqlist 1;l.keynum=6;li ength=o;int n=0;for(;)switch(menu_select()case 1:printf(hnttt添加新航班信息到航班信息系統(tǒng)n“);/*添加記錄*/1 .length=inputdata(l);break;case 2:printf(&quo

11、t;ntttt 顯示航班信息n”);display(l);break;case 3:printf(hntttt 查詢航班信息n”);searchcon(l);break;case 4:printf(nnttt 修改航班信息n”);change(l);printf(nth);system(npausem);break;case 5:printf(hnttt 刪除航班信息n”);l.length=delete_a_record(l); printf(nth);system(npausem);break;case 6:printf(nnttt 保存航班信息n”);writetotext(l);pri

12、ntf(nth);/*顯示記錄*/*查詢記錄*/*修改記錄*/*刪除數(shù)據(jù)*/*保存數(shù)據(jù)*/system(hpauseh);break;case 0:/*結(jié)束程序*/printf(nnttt歡迎下次使用,再見!n”);printf(nntth);system(hpauseh);exit(0);33各模塊流程圖 添加:添加航班信息記錄輸入航班信息,按照提示輸入航班號(hào)、起點(diǎn)站、終點(diǎn)站、航班期、起飛時(shí)間、 到達(dá)時(shí)間、機(jī)型以及票價(jià),輸完按回車鍵,然后會(huì)提示是否添加下一條記錄。 顯示:顯示航班信息記錄航班信息錄入好后,更頻繁的操作時(shí)顯示和查找記錄,本函數(shù)實(shí)現(xiàn)航班信息 的顯示功能。本段程序利用for語句,結(jié)

13、構(gòu)體數(shù)組的方法分別將每個(gè)航班的航班 號(hào)、起點(diǎn)站、終點(diǎn)站、航班期、起飛時(shí)間、到達(dá)時(shí)間、機(jī)型以及票價(jià)循環(huán)輸出。 刪除:刪除航班記錄刪除指定航班的信息記錄。首先輸入要?jiǎng)h除的航班的航班號(hào),輸入后判斷航 班信息中是否有此航班,如果不存在,則輸出“航班記錄中沒有此航班號(hào)”; 否則顯示找到的航班的信息,按任意鍵刪除該航班的記錄。 查詢:查詢航班記錄,先選擇查詢方式,以航班號(hào)查詢方式為例查詢指定航班的信息記錄。首先輸入要查找航班的航班號(hào),輸入后判斷航班信息中是否有此航班,如果不存在,則輸出“無此航班信息,可能是輸入錯(cuò)誤!否則找到航班的信息,顯示該航班的信息。 修改:修改航班記錄修改指定航班的航班記錄。首先輸入

14、要修改航班的航班號(hào),輸入后判斷航班 中是否有此航班,如果不存在,則輸出“航班記錄中沒有此航班號(hào)!” ;否則找 到航班的信息,依次輸入要修改的內(nèi)容。4系統(tǒng)調(diào)試及運(yùn)行結(jié)果4. 1顯示的主菜單界面“c:usersmianydesktop燉據(jù)結(jié)構(gòu)課程設(shè)計(jì)資料航班信息系統(tǒng)設(shè)計(jì)debug-制作人:王淼i;微軟拼音簡(jiǎn)捷半12 3 4 5 6 0航砂砂砂砂砂j? 加示詢改除g 添fi-查修自a自a自心自3自心 圧亠一豆一一曰一豆一豆耳請(qǐng)您選擇0:4. 2添加記錄界面薊作人:王淼請(qǐng)您選擇0-6:1*歡迎12 3 4 5 6 0班15信信信信i 1 ti i ti 一戶 頷砂砂砂砂砂唐 加示詢改除琶 添顯查修&#

15、174;添加新航班信息到航班信息系統(tǒng)航班號(hào)起圈終點(diǎn)站毓班期起飛時(shí)間到達(dá)時(shí)間機(jī)型票價(jià) 3u8516 北示 重慶 12/2806: 1509:28320860繼續(xù)輸入嗎微軟拼音簡(jiǎn)捷半:“c:usersmianydesktop燉據(jù)結(jié)構(gòu)課程設(shè)計(jì)資料航班信息系統(tǒng)設(shè)計(jì)debug-i;請(qǐng)您選擇5-6:2顯示航班信息*歡迎使用航班信息管理嚮蘆*王淼*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票價(jià)*”黃呉其算算”呉” ”)c)c x x x x)c)c)c)cx)c)c)c)c x x)c)c)c)cx)c)c)cx x )c )c h x x x )c )c )c )c x )c )c )c x x x

16、 )c )c x )c x )c * 3u8516 j匕京 重慶 12/2806: 1509:28320860 *自3自a自心自3自心 圧亠一豆一豆二r亠一一 r亠一耳航妙砂刊砂砂j? 加示詢改除直 添®-查修12 3 4 5 6 0請(qǐng)按任意鍵繼續(xù) 4.4刪除記錄界面*歡迎"用航班信息管理貫*王水請(qǐng)您選擇0-6:5*自3自心 自3自心 自心 庭一豆一豆呂亠一一蟲5> 、iifi 加示詢改除£ 添顯查修®12 3 4 5 6 0鑑時(shí)錄 請(qǐng)按任意鍵繼續(xù) 刪瞳脆班信,息泉的航班號(hào):3u85164. 5查詢記錄界i;“c:usersmianydesktop

17、燉據(jù)結(jié)構(gòu)課程設(shè)計(jì)資料航班信息系統(tǒng)設(shè)計(jì)debug-n請(qǐng)您選擇0-6:3x x x x x x xx x x xx x x x x »( xx x x , , x x x xx x x x 興 請(qǐng)選擇0-5:1查詢軀班信息歡迎使用航曬詢烝k王淼口范站®序時(shí)時(shí)程 砂占八占八飛達(dá)出 s8s輸入要查詢的航班號(hào)字母要大寫:3u8516 *航班號(hào)起髦 超射 航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票價(jià)* 3u8516 j匕足 重慶 12/2806:1509:28320860 *微軟拼音簡(jiǎn)扌sj*歡迎使用 航班查詢系統(tǒng)*制作人:王祚4.6修改記錄界面12 3 4 5 6 0自心自3自3自心 自3 庭

18、一一r亠一豆一一曰一一史一日 /z ilf/ ily iljz 1/nti ti i ri tiboi請(qǐng)您選擇5-6:4息:3信號(hào)ti i砂砂改的修錄呻6緲851海京苗 修u_li匕1 :想3上tt0迪入口汐:5感 需點(diǎn)點(diǎn)班飛達(dá)型價(jià)改幺 請(qǐng)畫終餐到機(jī)票垮9 :0 6 9可8 0.u 陽 3 3j7 54. 7保存記錄界-c:usersmianydesktop燉據(jù)結(jié)構(gòu)課程設(shè)計(jì)資料航班信息系統(tǒng)設(shè)計(jì)debug-ni;制作人:王淼12 3 4 5 6 0航妙砂刊砂砂j? 加示詢改除直 添®-查修自3自a自心自3自心 圧亠一豆一豆二r亠一一 r亠一耳請(qǐng)您選擇0-6:6保存航班信息 簪b存的文件

19、名:上海-北京.、成功?安任意鍵繼續(xù) 到i'j.txt微軟拼音簡(jiǎn)捷保存成功的記錄上海j驚-記事本-口文件(f)輛(e)梧式(0)查看(v)幫助(h)33«c03033c*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票價(jià)* 3u8516 上海 北京 01/0906:1509:18738530 *dc«qoxoc4.8退出菜單界面歡迎下次使用,再見?請(qǐng)按任意鍵繼續(xù) .請(qǐng)您選擇0-6:0微軟拼音簡(jiǎn)扌*歡迎使用航班信息管理嚮蘆*王叢.”c:usersmianydesktop燉據(jù)結(jié)構(gòu)課程設(shè)計(jì)資料航班信息系統(tǒng)設(shè)計(jì)debug-12 3 4 5 6 0自3自a自心自3自心 圧亠

20、一豆一豆二r亠一一 r亠一耳航妙砂刊砂砂j? 加示詢改除直 添®-查修5 心得體會(huì)這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來學(xué)習(xí)程序設(shè)計(jì)語言結(jié)果的一 次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒有 掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來,經(jīng)過不斷思考,不斷查閱資料和上機(jī) 運(yùn)行,解決其中大部分問題,當(dāng)然述存在一些問題沒有解決。我相信在以后的學(xué) 習(xí)能夠解決好它們。但是,收獲述是不小的,我不僅對(duì)數(shù)據(jù)結(jié)構(gòu)的操作有了進(jìn)一 步的掌握,述了解到了程序設(shè)計(jì)的書寫風(fēng)格及其注釋的格式。書上和老師教的內(nèi)容是有限的,我們需要不斷地靠自己去學(xué)習(xí),向他人請(qǐng)教, 了解和掌握更多的知識(shí),這樣我們

21、才能編出更好的程序??傮w來說,這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)還是比較成功的,雖然最終程序述存在一 些不足,但能取得這樣的成績(jī)我還是比較高興的。最后,要感謝學(xué)校為我們提供這次實(shí)驗(yàn)機(jī)會(huì),也耍感謝老師的教導(dǎo)和好心人 對(duì)我的幫助與支持。6附錄#include <stdio.h># include<stdlib.h> #include <string.h>#define maxspace 100#define keylen 7#define radix_n 10#define radix_c 26 typedef char keytype;typedef structchar

22、beplace6; /起點(diǎn)站char enplace6; 終點(diǎn)站char sche10; /航班期char betime 10; 起飛時(shí)間char entime 10; 到達(dá)時(shí)間char model8; 機(jī)型int price; 票價(jià) fly type; /航班記錄類型typedef structkeytype keyskeylen; /關(guān)鍵字,航班號(hào)flytype others;int next;jslnode; 靜態(tài)鏈表結(jié)點(diǎn)類型typedef structslnode slmaxspace; 靜態(tài)鏈表,si0為頭結(jié)點(diǎn)int keynum; 記錄當(dāng)前關(guān)鍵字字符個(gè)數(shù)int length; /當(dāng)

23、前表的長(zhǎng)度jsqlist; /靜態(tài)鏈表類型typedef int arrtype_nradix_n; 十進(jìn)制數(shù)字指針typedef int arrtype_cradix_c; /26 個(gè)字母指針void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e) /趟分酉己函數(shù) intj,p;for(j=0;j<radix_n;j+4-)ful=eu=o;for(p=sl0.next;p;p=slp.next)j=slp.keysi% 48;ful=p;elseslej.next=p;e|j=p;void collect(slnode *sl

24、,int i,arrtype_n f,arrtype_n e) /一趟收集函數(shù) intj,t;for(j=0;!fj;j+);slo.next=fj;while(j<radix_n-l)for(j=j+1 ;j<radix_n-1 &&!fj;j+);slt.next=fj;t=ej;slt.next=0;void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e) 分酉己 intj,p;for(j=o;j<radi x_c ;j+)fj二 ej=o;fbr(p=sl o.next;p;p=sl p.n

25、ext)j=slp.keysi%65;if(!fj)ful=p;elseslej.next=p;ej=p;void collect_c(slnodei,arrtype_c f,arrtype_c e)intj,t;for(j=0;!fj;j+);slo.next=fj;t=ej;while(j<radix_c-l)for(j=j+l ;j<radix_c-l &&! fj ;j+);slt.next=fj;t=ej;slt.next=0;void radixsort(sqlist &1) /鏈?zhǔn)交鶖?shù)排序函數(shù) int i;arrtype_n fn,en;arr

26、type_c fc,ec;for(i=0;i<l.length;i+)lsli.next=i+1;l.sll.length.next=0;for(i=l.keynum-l ;i>=2;i)distribute(l.sl?ijn,en); collect(l.sl,i,fn,en);for(i=l;i>=0;i)distribute_c(l.slj,fc,ec); collect_c(lsl,i,fc,ec);void arrange(sqlist &1) 重新整理int p,q,i;slnode temp;p=lslo.next;for(i=l ;i<l.len

27、gth;i+)while(p<i)p=lslp.next;q=lslp.next;temp=i.slp;lslp=l.sli;l.sli=temp; l.sli.next=p;p=q;int binsearch(sqlist 1,keytype key) /二分查找 int low,high,mid;low=l;high=l.length;while(low< 二 high)mid=(low+high)/2;if(strcmp(keyj-slmid.keys)=o) return mid;else if(strcmp(keyj.slmid.keys)<o) high 二 mi

28、d-1;elselow二mid+1;return 0;void seqsearch(sqlist 1,keytype key,int i)int j,k,m=0;nn);printfc*t*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票 價(jià) *n”);for(j=l ;j<=i.length;j+)switch(i) case 2:k=strcmp(key,l.slj.others.beplace);break;case 3:k=strcmp(key,lslj.others.enplace);break;case 4:k=strcmp(key,l.si fj.others.betim

29、e);break;case 5:k=strcmp(key,l.slfj.others.entime);break;if(k=0)printf(ut *%-8s%-7s%-6s%-8s%-9s%-9s%-6s%4d*n",l.slj.keys,l.slj.others.beplace,l.slj.others.enplace,l.sl|j.others.sche,l.slj.others.betime,l.slj.others.entime,l.slj.others.model,l.slj.others.price);if(m=0)printfc'xt*無此航班信息,可能是輸入

30、錯(cuò)誤! *n”);湖南工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 nn);void searchcon(sqlist 1) 查詢函數(shù)keytype key|keylen;int i=l,k;while(i>= 1 &&i v=5)printf(utt *歡迎使用航班查詢系統(tǒng)* nm);printf(htt制作人:王淼n”);pnntf( tt*l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *l> *1* *1* *1* *1* *1*

31、 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*l,'丿printf(httl1 nn);printf(ntt1 1航班號(hào)|n”);printf(ntt1 2.起點(diǎn)站 | nh);printf(ntt1 3.終點(diǎn)站| nh);printf(ntt1 4.起飛時(shí)間|巧;printf(ntt1 5.到達(dá)時(shí)間| nh);printf(ntt1 0.退岀程序| nh);printf(ntt11 nh);printf(httffx叫、叫、叫、b 丿,printf(htt 請(qǐng)選擇(0-5):n);scanf(h%dh,&i);

32、printf(hnn);switch(i)case 1:printf("t輸入要查詢的航班號(hào)(字母要大寫):”); scanf("%sn,key);k=binsearch(l,key);printf(nt*nn);if(k=o)printf(ht*無此航班信息,可能是輸入錯(cuò)誤! *nh);elseprintf(-*t*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間機(jī)型票價(jià)迫);printf("t*%-8s%-7s%-6s%-8s%-9s%-9s%-6s%4d*nn,l.slk.keys,l.slk.others.beplace,l.slk.others.enplacej

33、.slk.others.schej.slk.others.betime,l.slk.others.entimej.s1 k.others.model,l.slk.others.price);*nn);break;case 2:printf("t輸入要查詢的航班起點(diǎn)站名:”); scanf("%s",key);seqsearch(hkeyj);break;case 3:printfc*t輸入要查詢的航班終點(diǎn)站名:”); scanf("%sn,key);seqsearch(hkeyj);break;case 4:printf("t輸入要查詢的航班起

34、飛時(shí)間:”); scanf("%sn,key);seqsearch(hkeyj);break;case 5:printf(ht輸入要查詢的航班到達(dá)時(shí)間:”); scanf("%sn,key);seqsearch(hkeyj);break;case o:printf(htt 謝謝使用查詢系統(tǒng)!nnnn);int inputdata(sqlist &1) /添加航班信息int i=+l.length;char yn=y;while(yn=,y'|yn='y,)printf(nt航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間機(jī)型 票價(jià));printf(ntu);

35、scanf(h%s%s%s%s%s%s%s%d",l.sli.keys,l.sli.others.beplace,l.sli.others.enplacej.sli.others.sche,lsli.others.betimej.sli.others.entime,l.sli-others.model,&lsli.others.price);+i;getchar();radixsort(l);arrange(l);printf(ht 繼續(xù)輸入嗎?y/n:n);scanf("%ch,&yn);1ength=i 1;return (1.length);void

36、display(sqlist i) /顯示航班信息int i;printf(nt *nn);printf(htprintf("t*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票 價(jià)恤”);丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* 丄* <1> <1 <1 ' '

37、' ' ' ' ' ' ' ' ' ' '*nn);for(i= 1 ;ivll ength+1 ;i+)printf(ut *%-8s%-7s%-6s%-8s%-9s%-9s%-6s%4d*n",l.sli.keys,l.sli.others.beplace,l.sli.others.enplace,l.sl| i.others.sche,l.sli.others.betime,l.sli.others.entime,l.sii.others.model,l.sli.others.price);

38、if(i>l &&i%10=0)printf("tnn);printf(nth);system("pausen);printf("tnn);printf(nt*nn);printf(htm); system(npausem); void change(sqlist &1)char s20;int i=l;printf(nt請(qǐng)輸入想修改的記錄的航班號(hào):”); scanf("%sn,s);while(strcmp(l.sli.keys,s)!=o&&i<l.length+l) i+;if(i=l.le ng

39、 th+1)printf("t航班記錄中沒有此航班號(hào)!rt);return;printf(ut 航班號(hào):”);scanf("t%s",l.sl|i.keys);printf(nt 起點(diǎn)站:”);scanf("t%sh,l.sl|i.others.beplace);printf(ut 終點(diǎn)站:”);scanf("t%sn,l.sli.others.enplace);printf("t 航班期:”);scanf(nt%s",l.sli.others.sche);printf(nt 起飛時(shí)間:”);scanf("t%sh

40、,l.sl|i.others.betime);printf(nt 到達(dá)時(shí)間:”);scanf("t%sn,l.sli.others.entime);printf(ut 機(jī)型:”);scanf(nt%s",l.sli.others.model);printf(nt 票價(jià):”);scanf("t%d",&(l.sli.others.price);printf(nt 修改成功!”); int delete_a_record(sqlist &1)char s20;int i=l,j;printf(ht請(qǐng)輸入想刪除的記錄的航班號(hào):”); scanf

41、(” s”,s);while(strcmp(l.sli.keys,s)!=o&&ivlength+1) i+; if(i=l.length+l)printf("t航班記錄中沒有此航班號(hào)!rt);return(l.length);for(j=i ;j <=1. length+1 ;j+)strcpy(l.slj.keysj.slj+l.keys);strcpy(lslj.others.beplace,lslj+1 j.others.beplace);strcpy(lslj.others.enplace,lslj+1 j.others.enplace); strcp

42、y(l.slj.others-schej.slj+l.others-sche); strcpy(l.slj.others.betime,l.slj+l.others.betime); strcpy(l.slj.others-entime,l.slj+l.others.entime); strcpy(lsij.others-model,l.slj+l.others.model);l.sl j .others.price=l .si j+1 .others.price;printf(ht已經(jīng)成功刪除!n“);return(l length-1);void writetotext(sqlist 1)

43、/*定義文件指針int i=l;file *fp;/*定義文件名*/*輸入文件名*/char filename20;printf(ut保存到文件n”);printf("t請(qǐng)輸入所保存的文件名:”); scanf("t%sn,filename);if(fp=fbpen(filename,nwh)=null) printf(ut無法打開文件n”); system(npauseh);return;fprintf(fp, *n“)fprintf(fp;'*航班號(hào)起點(diǎn)站終點(diǎn)站航班期起飛時(shí)間到達(dá)時(shí)間 機(jī)型 票價(jià)恤”);fprintfcfp;'nn);while(i<l.lengths 1)fprintf(fp;'*%-8s%-7s%-6s%-8s%-9s%-9s%-6s%4d*nn,lsli.keysj-sli.others.beplacej.sli

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論