C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩63頁(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、課 程 設(shè) 計(jì) 報(bào) 告題目: 景點(diǎn)查詢系統(tǒng) 課程名稱: C語(yǔ)言課程設(shè)計(jì) 專業(yè)班級(jí): 信息安全二班 任務(wù)書 主要內(nèi)容建立國(guó)內(nèi)景點(diǎn)信息系統(tǒng),提供創(chuàng)建、編輯和綜合查詢等基本業(yè)務(wù)管理和服務(wù)。 任務(wù)要求收集與閱讀相關(guān)文獻(xiàn)資料,確定系統(tǒng)目標(biāo)與范圍,分析系統(tǒng)需求,確定系統(tǒng)功能;設(shè)計(jì)系統(tǒng)方案,完成系統(tǒng)實(shí)現(xiàn);提交課程設(shè)計(jì)報(bào)告。 參考文獻(xiàn)1曹計(jì)昌,盧萍,李開(kāi). C語(yǔ)言程序設(shè)計(jì),北京:科學(xué)出版社,20082張引. C程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì), 杭州: 浙江大學(xué)出版社,20073黃明,梁旭,萬(wàn)洪莉. C語(yǔ)言課程設(shè)計(jì),北京: 電子工業(yè)出版社,2006目錄1 緒言11.1 課題背景11.2 課題目的及意義11.3 課題應(yīng)解決

2、的主要問(wèn)題及應(yīng)達(dá)到的技術(shù)要求11.4 研究與發(fā)展概況及存在的問(wèn)題21.5 設(shè)計(jì)的指導(dǎo)思想22 方案論證32.1 菜單的選擇32.2 鏈表的選擇32.3 主菜單和子菜單的設(shè)定33 課設(shè)過(guò)程論述53.1 系統(tǒng)數(shù)據(jù)53.2 系統(tǒng)各模塊功能63.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明83.4 程序結(jié)構(gòu)94 結(jié)果分析105 課程設(shè)計(jì)總結(jié)146 參考文獻(xiàn)15附錄 程序清單16華中科技大學(xué)計(jì)算機(jī)學(xué)院C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)1 緒言 本章闡述課程設(shè)計(jì)課題的背景、目的與意義、應(yīng)解決的主要問(wèn)題及應(yīng)達(dá)到的技術(shù)要求;簡(jiǎn)述研究與發(fā)展概況及存在的問(wèn)題,本設(shè)計(jì)的指導(dǎo)思想。1.1 課題背景隨著社會(huì)的發(fā)展,旅游成為一個(gè)越來(lái)越熱門的話題,很多

3、人都會(huì)以旅游的方式度過(guò)自己的假期、生日、結(jié)婚紀(jì)念日等等,但是要想充分享受旅游帶來(lái)的快樂(lè),前期的準(zhǔn)備就顯得非常重要,只有前期的準(zhǔn)備做好了,才能充分規(guī)劃自己的旅游,才能充分享受自己的旅游。前期的準(zhǔn)備很大一方面是要查詢自己要去的地方的一些基本信息,比如景區(qū)地點(diǎn),景區(qū)門票。城市中所含有的景區(qū)等等,如果有一個(gè)系統(tǒng)能夠快速的查詢景點(diǎn)信息,那么這就為人們出去旅游提供了很多的信息,幫助人們?yōu)槁糜巫龊贸浞值臏?zhǔn)備!1.2 課題目的及意義課題目的:本課題主要是通過(guò)景點(diǎn)查詢系統(tǒng)向人們提供景點(diǎn),景區(qū),城市等方面信息的查詢,修改,統(tǒng)計(jì)等服務(wù),讓人們快速獲得有關(guān)旅游景點(diǎn)、景區(qū)、城市方面的信息,幫助人們充分規(guī)劃自己的出行方案

4、。課題意義:給出建立景點(diǎn)查詢系統(tǒng)的方法,并創(chuàng)建景點(diǎn)查詢系統(tǒng),幫助人們對(duì)自己的旅游進(jìn)行規(guī)劃。1.3 課題應(yīng)解決的主要問(wèn)題及應(yīng)達(dá)到的技術(shù)要求景點(diǎn)查詢系統(tǒng)要解決的主要問(wèn)題是菜單的選擇,子菜單內(nèi)容的選擇,如何創(chuàng)建三個(gè)方向的十字交叉鏈表,如何查詢信息等方面的問(wèn)題。技術(shù)要求方面則是要求本系統(tǒng)能夠顯示景點(diǎn)、景區(qū)、城市等方面的信息,并且能夠?qū)π畔⑦M(jìn)行修改,刪除、統(tǒng)計(jì),還要求本系統(tǒng)能夠?qū)τ脩糨斎氲囊恍╁e(cuò)誤信息進(jìn)行正確的處理,以及提示輸入的錯(cuò)誤。本課題的難點(diǎn)主要集中在菜單方面,首先是以前沒(méi)有接觸過(guò)菜單的制作,其次是在菜單的制作方面缺乏相應(yīng)的理論基礎(chǔ)。1.4 研究與發(fā)展概況及存在的問(wèn)題隨著互聯(lián)網(wǎng)的快速發(fā)展,人們?cè)诰W(wǎng)

5、上查詢景點(diǎn)的方式也是越來(lái)越多,較早出現(xiàn)的是在網(wǎng)頁(yè)上進(jìn)行查詢,發(fā)展到現(xiàn)主要還是通過(guò)這種方式進(jìn)行查詢,而通過(guò)短信,電話查詢也是在網(wǎng)頁(yè)查詢出現(xiàn)之后相繼出現(xiàn)的,現(xiàn)在的查詢方式依然是多種多樣,同時(shí)手機(jī)的快速發(fā)展讓手機(jī)成為了查詢旅游信息的一種快捷手段,用戶可以通過(guò)手機(jī)上網(wǎng),也可以通過(guò)短息,電話等方式查詢?,F(xiàn)在景點(diǎn)查詢系統(tǒng)存在的問(wèn)題就是一些景點(diǎn)信息查詢系統(tǒng)的功能有待完善,像有些網(wǎng)站就顯示了景點(diǎn)開(kāi)放的時(shí)間,而有些網(wǎng)站就不顯示景點(diǎn)開(kāi)放的時(shí)間,還有就是一些系統(tǒng)的數(shù)據(jù)不夠完善,有很多景點(diǎn)在網(wǎng)站中都無(wú)法查詢到。1.5 設(shè)計(jì)的指導(dǎo)思想本設(shè)計(jì)的指導(dǎo)思想是從用戶出發(fā),盡可能的為用戶提供景點(diǎn)、景區(qū)、城市信息的查詢,也提供信息

6、的修改、統(tǒng)計(jì),幫助用戶快速獲得有關(guān)自己旅游目的地的信息,幫助用戶做好旅游的準(zhǔn)備。系統(tǒng)要盡可能的使用起來(lái)方便,同時(shí)也要求系統(tǒng)能夠?qū)斎氲腻e(cuò)誤信息做一些處理,并將處理的結(jié)果放映給用戶,讓用戶能夠知道自己輸入有誤,從而讓用戶輸入正確的信息。2 方案論證本章闡述說(shuō)明設(shè)計(jì)原理并進(jìn)行方案選擇,闡明為什么要選擇這個(gè)設(shè)計(jì)方案(包括各種方案的分析、比較)以及所采用方案的特點(diǎn)。2.1 菜單的選擇 菜單采用的是簡(jiǎn)易菜單,具體的方法是直接用printf輸出菜單的格式,并讓用戶通過(guò)鍵盤輸入1、2、3等數(shù)字來(lái)進(jìn)行相應(yīng)功能的選擇,同時(shí)通過(guò)輸入y(Y)或者是n(N)來(lái)判斷是否繼續(xù)執(zhí)行某些功能,通過(guò)輸入0來(lái)返回上一級(jí)菜單或者退

7、出系統(tǒng)。這本課題中,菜單方面有兩個(gè)選擇,一種是文本菜單,一種是簡(jiǎn)易菜單,簡(jiǎn)易是通過(guò)輸入相應(yīng)的數(shù)字來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)的操作,簡(jiǎn)易菜單的代碼相對(duì)于文本菜單要容易;文本菜單的特點(diǎn)通過(guò)方向鍵來(lái)選擇相應(yīng)的功能,形式上更面向大眾;綜合考慮了一下,簡(jiǎn)易菜單能夠?qū)崿F(xiàn)本系統(tǒng)的全部功能,而且簡(jiǎn)易菜單上手比較快,代碼可以自己寫出來(lái),所以就選擇了簡(jiǎn)易菜單。2.2 鏈表的選擇鏈表采用的是三個(gè)方向的十字交叉鏈表,三個(gè)方向的鏈表分別存儲(chǔ)城市,景區(qū),景點(diǎn)的信息,通過(guò)遍歷十字交叉鏈表來(lái)獲得相應(yīng)的信息。在本課題中鏈表有兩個(gè)選擇,一種是兩個(gè)方向的十字交叉鏈表,另外一種是三個(gè)方向的十字交叉鏈表。兩個(gè)方向的十字交叉鏈表的編碼相對(duì)簡(jiǎn)單,遍歷十

8、字交叉鏈表的效率相對(duì)于三個(gè)方向的較低;三個(gè)方向的十字交叉鏈表編碼相對(duì)復(fù)雜,且遍歷交叉鏈表的時(shí)候效率比較高。綜合考慮,本系統(tǒng)選用了三個(gè)方向的是十字交叉鏈表,三個(gè)方向的十字交叉鏈表遍歷查找的時(shí)候效率比較高,因此選用了三個(gè)方向的十字交叉鏈表。2.3 主菜單和子菜單的設(shè)定主菜單和子菜單的設(shè)定一方面考慮到用戶,一方面考慮到任務(wù)書上的要求,所以主菜單包括:“文件”、“查詢”、“添加”、“修改”、“刪除”、“統(tǒng)計(jì)”、“幫助”、“退出系統(tǒng)”,“文件”所對(duì)應(yīng)的子菜單包括:“新建”、“保存”、“讀取”、“返回主菜單”;“查詢”的子菜單包括:“查詢城市信息”、“查詢景區(qū)信息”、“查詢景點(diǎn)信息”、“按城市查詢景點(diǎn)信息

9、”、“按景區(qū)查詢景點(diǎn)信息”、“按照城市和景區(qū)綜合查詢景點(diǎn)信息”、“返回主菜單”;“修改”的子菜單包括:“修改城市信息”,“修改景區(qū)信息”,“修改景點(diǎn)信息”、“返回主菜單”;“添加”的子菜單包括:“添加城市”、“添加景區(qū)”、“添加景點(diǎn)”、“返回主菜單”;“刪除”的子菜單包括:“刪除城市”、“刪除景區(qū)”、“刪除景點(diǎn)”、“返回主菜單”;“統(tǒng)計(jì)”的子菜單包括:“統(tǒng)計(jì)某個(gè)城市的景區(qū)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)城市的景點(diǎn)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)景區(qū)的景點(diǎn)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)城市某個(gè)景區(qū)的景點(diǎn)”、“返回主菜單”;“幫助”的子菜單包括:“為什么我總是顯示查不到景點(diǎn)?”、“為什么我總是讀取失?。俊?、“本系統(tǒng)的聲明”、“返回主菜單

10、”。3 課設(shè)過(guò)程論述本章是對(duì)本系統(tǒng)的開(kāi)放過(guò)程的詳細(xì)講述,同時(shí)詳細(xì)介紹本系統(tǒng)的功能和結(jié)構(gòu)。3.1 系統(tǒng)數(shù)據(jù)本系統(tǒng)主要涉及“城市”、“景區(qū)”和“景點(diǎn)”三類信息。城市信息主要包括5個(gè)部分,這5個(gè)部分分別是城市編號(hào)、城市名稱、城市級(jí)別、監(jiān)督電話、咨詢電話,上述5個(gè)部分在系統(tǒng)中的類型都是char型數(shù)組,其中城市編號(hào)的數(shù)組長(zhǎng)度是5,城市名稱的數(shù)組長(zhǎng)度是10,城市級(jí)別數(shù)組的長(zhǎng)度是10,監(jiān)督電話數(shù)組的長(zhǎng)度是15,咨詢電話數(shù)組長(zhǎng)度是15,下表是城市基本信息表:表3.1 城市基本信息表中文字段名類型及長(zhǎng)度舉例或說(shuō)明城市編號(hào)char chengshibianhao5001城市名稱Char chengshimingc

11、heng10北京城市級(jí)別char chengshijibie10一線城市監(jiān)督電話char jiandudianhua15010-78965423咨詢電話char zixundianhua15010-65438755 景區(qū)信息主要包括9個(gè)部分,這9個(gè)部分分別是城市編號(hào)、景區(qū)編號(hào)、景區(qū)名稱、景區(qū)級(jí)別、景區(qū)地址、門票價(jià)格、咨詢電話、開(kāi)放時(shí)間、景區(qū)簡(jiǎn)介,上述9個(gè)部分在系統(tǒng)中的類型都是char型數(shù)組,其中城市編號(hào)的數(shù)組長(zhǎng)度是5.景區(qū)編號(hào)的數(shù)組長(zhǎng)度是5,景區(qū)名稱的數(shù)組長(zhǎng)度是20,景區(qū)級(jí)別的數(shù)組長(zhǎng)度是10,景區(qū)地址的數(shù)組長(zhǎng)度是60,門票價(jià)格的數(shù)組長(zhǎng)度是10,咨詢電話的數(shù)組長(zhǎng)度是15,開(kāi)放時(shí)間的數(shù)組長(zhǎng)度是15

12、,景區(qū)簡(jiǎn)介的數(shù)組長(zhǎng)度是150,下表是景區(qū)基本信息表:表3.2 景區(qū)基本信息表中文字段名類型及長(zhǎng)度舉例或說(shuō)明城市編號(hào)char chengshibianhao5用來(lái)去取數(shù)據(jù)景區(qū)編號(hào)char jingqubianhao5001景區(qū)名稱Char jingqumingcheng20故宮景區(qū)級(jí)別char jingqujibie10AAAAA景區(qū)地址char jingqudizhi60存儲(chǔ)景區(qū)所在地門票價(jià)格char menpiaojiage1070元/人咨詢電話char zixundianhua15010-78786356中文字段名類型及長(zhǎng)度舉例或說(shuō)明開(kāi)放時(shí)間Char kaifangshijian15O8:

13、00-18:00景區(qū)簡(jiǎn)介Char jingqujianjie150簡(jiǎn)要介紹景區(qū)景點(diǎn)信息主要包括6個(gè)部分,這6各部分分別是城市編號(hào)、景區(qū)編號(hào)、景點(diǎn)編號(hào)、景點(diǎn)名稱、景點(diǎn)位置、景點(diǎn)特色,上述6個(gè)部分在系統(tǒng)中都是char型數(shù)組,其中城市編號(hào)的數(shù)組長(zhǎng)度是5,景區(qū)編號(hào)的數(shù)組長(zhǎng)度是5,景點(diǎn)編號(hào)的數(shù)組長(zhǎng)度是5,景點(diǎn)名稱的數(shù)組長(zhǎng)度是15,景點(diǎn)位置的數(shù)組長(zhǎng)度是50,景點(diǎn)特色的數(shù)組長(zhǎng)度是60,下表是景點(diǎn)基本信息表:表3.3 景點(diǎn)基本信息表中文字段名類型及長(zhǎng)度舉例或說(shuō)明城市編號(hào)char chengshibianhao5用于讀取數(shù)據(jù)景區(qū)編號(hào)char jingqubianhao5用于讀取數(shù)據(jù)景點(diǎn)編號(hào)char jingdi

14、anbianhao50001景點(diǎn)名稱char jingdianmingcheng15金水橋景點(diǎn)位置char jingdianweizhi50故宮內(nèi)景點(diǎn)特色char jingdiantese60簡(jiǎn)要介紹景點(diǎn)3.2 系統(tǒng)各模塊功能本系統(tǒng)的功能是由8個(gè)部分組成,這8個(gè)部分分別是“文件”、“查詢”、“修改”、“添加”、“刪除”、“統(tǒng)計(jì)”、“幫助”“退出系統(tǒng)”。除了“退出系統(tǒng)”不含有子功能,其他的都含有“返回主菜單”這一功能,以下介紹便不做贅述。“文件”由“新建”、“保存”、“讀取”三個(gè)部分組成,其中“新建”的功能是用來(lái)創(chuàng)建新的十字鏈表,但是創(chuàng)建新的鏈表的同時(shí),原來(lái)的數(shù)據(jù)將會(huì)丟失?!氨4妗钡墓δ苁潜4娈?dāng)

15、前的數(shù)據(jù),將新的數(shù)據(jù)保存到dat文件中?!白x取”的功能是將dat文件中的數(shù)據(jù)讀取到系統(tǒng)中,讓用戶可以使用本系統(tǒng)進(jìn)行信息的查詢,修改等?!安樵儭庇伞安樵兂鞘行畔ⅰ?、“查詢景區(qū)信息”、“查詢景點(diǎn)信息”、“按城市查詢景點(diǎn)信息”、“按景區(qū)查詢景點(diǎn)信息”、“按照城市和景區(qū)綜合查詢景點(diǎn)信息”6部分組成,其中前五項(xiàng)只要輸入正確的數(shù)據(jù)就會(huì)顯示出想要查詢的相關(guān)信息,最后一個(gè)則是要輸入城市以及城市內(nèi)的景區(qū)才能顯示出相應(yīng)的景點(diǎn),如果輸入有誤則不能顯示出相應(yīng)的數(shù)據(jù)。“修改”由“修改城市信息”,“修改景區(qū)信息”,“修改景點(diǎn)信息”3部分組成,其中“修改城市信息”這個(gè)選項(xiàng)可以修改有關(guān)城市的所有信息,只要輸入要修改的信息,系

16、統(tǒng)就會(huì)自動(dòng)的把輸入的有關(guān)信息替代掉原來(lái)的信息;“修改景區(qū)信息”,“修改景點(diǎn)信息”分別修改景區(qū)和景點(diǎn)有關(guān)的信息,輸入要修改的信息,系統(tǒng)就會(huì)自動(dòng)的把輸入的有關(guān)信息替代掉原來(lái)的信息?!疤砑印庇伞疤砑映鞘小薄ⅰ疤砑泳皡^(qū)”、“添加景點(diǎn)”3部分組成,“添加城市”就是在原有的城市信息基礎(chǔ)上添加新的城市,當(dāng)添加過(guò)一個(gè)新的城市后,系統(tǒng)會(huì)自動(dòng)彈出讓用戶添加城市中的景區(qū)的提示,當(dāng)添加過(guò)景區(qū),系統(tǒng)會(huì)自動(dòng)彈出讓用戶添加景點(diǎn)的提示;“添加景區(qū)”則是讓用戶首先輸入要添加的景區(qū)所在的城市,當(dāng)系統(tǒng)中有用戶輸入的城市,再?gòu)棾鲎層脩籼砑映鞘兄械木皡^(qū)的提示,當(dāng)添加過(guò)景區(qū),系統(tǒng)會(huì)自動(dòng)彈出讓用戶添加景點(diǎn)的提示;“添加景點(diǎn)”則是要用戶先輸

17、入城市,再輸入景區(qū),兩者都存在且有對(duì)應(yīng)關(guān)系時(shí),系統(tǒng)才會(huì)讓用戶輸入景點(diǎn)信息?!皠h除”由“刪除城市”、“刪除景區(qū)”、“刪除景點(diǎn)”3部分組成,其中“刪除城市”就是刪除城市以及城市內(nèi)的景區(qū)和景點(diǎn)的信息;“刪除景區(qū)”就是刪除景區(qū)以及景區(qū)內(nèi)包含的景點(diǎn)所有的信息;“刪除景點(diǎn)”是刪除景點(diǎn)有關(guān)的信息。以上就是“刪除”的功能。“統(tǒng)計(jì)”由“統(tǒng)計(jì)某個(gè)城市的景區(qū)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)城市的景點(diǎn)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)景區(qū)的景點(diǎn)個(gè)數(shù)”、“統(tǒng)計(jì)某個(gè)城市某個(gè)景區(qū)的景點(diǎn)”4個(gè)部分組成,“統(tǒng)計(jì)某個(gè)城市的景區(qū)個(gè)數(shù)”是輸入有關(guān)城市,如果城市在本系統(tǒng)中存在,那么就會(huì)顯示這個(gè)城市中有多少景區(qū),以及每個(gè)景區(qū)有關(guān)的信息。后面的三個(gè)與“統(tǒng)計(jì)城市的景區(qū)個(gè)

18、數(shù)”類似?!皫椭庇伞盀槭裁次铱偸秋@示查不到景點(diǎn)?”、“為什么我總是讀取失敗?”、“本系統(tǒng)的聲明”3個(gè)部分組成。每個(gè)問(wèn)題都對(duì)應(yīng)相應(yīng)的答案?!巴顺鱿到y(tǒng)”則是直接退出本操作系統(tǒng)。景點(diǎn)信息查詢系統(tǒng)查詢修改添加刪除統(tǒng)計(jì)新建保存讀取城市景區(qū)景點(diǎn)文件城市景區(qū)景點(diǎn)城市景區(qū)景點(diǎn)城市景區(qū)城市景點(diǎn)景區(qū)景點(diǎn)綜合統(tǒng)計(jì)退出城市景點(diǎn)城市景區(qū)景點(diǎn)景區(qū)景點(diǎn)綜合查詢圖3.4系統(tǒng)功能模塊結(jié)構(gòu)圖3.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說(shuō)明這個(gè)系統(tǒng)的菜單為簡(jiǎn)易菜單,用的鏈表是三個(gè)方向的十字交叉鏈表。第一條鏈?zhǔn)浅鞘谢拘畔㈡?,該鏈包括:城市編?hào),城市名稱,城市級(jí)別,監(jiān)督電話,咨詢電話這些城市信息,第二條鏈?zhǔn)蔷皡^(qū)基本信息鏈,該鏈包括:城市編號(hào),景區(qū)編

19、號(hào),景區(qū)名稱,景區(qū)級(jí)別,景區(qū)地址,門票價(jià)格,開(kāi)放時(shí)間,咨詢電話,景區(qū)簡(jiǎn)介這些景區(qū)信息,第三條鏈?zhǔn)蔷包c(diǎn)基本信息鏈,該鏈包括:城市編號(hào),景區(qū)編號(hào),景點(diǎn)編號(hào),景點(diǎn)名稱,景點(diǎn)位置,景點(diǎn)特色這些景點(diǎn)基本信息。 head 景區(qū)11 景區(qū)12 景區(qū)1m 城市1 城市2 城市n景點(diǎn)111 景點(diǎn)11p 圖3.5三個(gè)方向的十字交叉鏈表本系統(tǒng)只要在鍵盤輸入相應(yīng)功能對(duì)應(yīng)的數(shù)字并按回車鍵那么系統(tǒng)就會(huì)自動(dòng)轉(zhuǎn)跳到相應(yīng)功能界面,用戶就能進(jìn)行相應(yīng)的操作。3.4 程序結(jié)構(gòu) 本系統(tǒng)的程序結(jié)構(gòu)是系統(tǒng)下有8個(gè)功能板塊,這8個(gè)功能板塊分別是“文件”、“查詢”、“修改”、“添加”、“刪除”、“統(tǒng)計(jì)”、“幫助”“退出系統(tǒng)”。其程序結(jié)構(gòu)如下圖

20、: 文件菜單錄入查詢查詢修改添加刪除統(tǒng)計(jì)修改添加刪除統(tǒng)計(jì)退出結(jié)束開(kāi)始是是是是是是是否否否否否否圖3.6程序結(jié)構(gòu)流程圖4 結(jié)果分析 本章對(duì)一些實(shí)驗(yàn)結(jié)果做出截圖,展示本系統(tǒng)的操作界面,不同模塊的功能,以及數(shù)據(jù)的輸入和輸出的截圖。圖4.1系統(tǒng)的主菜單圖4.2“查詢”的子菜單圖4.3數(shù)據(jù)的輸出 下圖是系統(tǒng)中的“添加城市”的截圖,用戶只要按照提示輸入有關(guān)城市信息,中間以空格鍵隔開(kāi),系統(tǒng)就會(huì)把用戶輸入的數(shù)據(jù)存儲(chǔ)到系統(tǒng)中去,增加系統(tǒng)的數(shù)據(jù)。圖4.4數(shù)據(jù)的輸入圖4.5查詢城市內(nèi)的景區(qū)5 課程設(shè)計(jì)總結(jié)在本次課程設(shè)計(jì)中把在下學(xué)期學(xué)的東西應(yīng)用到實(shí)踐中去,第一次獨(dú)立做了系統(tǒng)在本系統(tǒng)中有很多優(yōu)點(diǎn),也有很多缺點(diǎn),下面我本

21、系統(tǒng)做一些總結(jié):優(yōu)點(diǎn):(1)當(dāng)用戶輸入錯(cuò)誤的數(shù)字時(shí),系統(tǒng)會(huì)自動(dòng)糾錯(cuò)。例如當(dāng)界面的選擇只有1到5時(shí),如果用戶輸入了9,那么系統(tǒng)就會(huì)自動(dòng)顯示輸入有誤。(2)系統(tǒng)的功能較多,可以給用戶更多的服務(wù)。本系統(tǒng)有7個(gè)主功能,每個(gè)功能都下設(shè)3到7個(gè)不等的子功能,讓用戶以不同的方式獲得所學(xué)的信息。(3)系統(tǒng)清屏及時(shí)。當(dāng)用戶選擇不同的功能時(shí)系統(tǒng)會(huì)自動(dòng)清屏,保證界面的整潔缺點(diǎn): (1)界面不夠美觀。界面采用的是簡(jiǎn)易菜單,而不是文本菜單,界面只有黑色和白色兩種顏色組成,略顯單調(diào)。 (2)當(dāng)用戶進(jìn)行選擇功能的話,如果輸入字母,就會(huì)出現(xiàn)未知的錯(cuò)誤。當(dāng)用戶輸入的不是數(shù)字而是英文字母的時(shí)候系統(tǒng)就會(huì)出現(xiàn)未知的錯(cuò)誤,有時(shí)候會(huì)自動(dòng)

22、選擇其他的功能,有時(shí)候會(huì)不斷的清屏等等。 (3)當(dāng)用戶進(jìn)行選擇是否繼續(xù)的時(shí)候當(dāng)輸入“y”或者“Y”系統(tǒng)就會(huì)按照“是”進(jìn)行處理,而輸入其他字母系統(tǒng)就會(huì)按照“否”進(jìn)行處理,且在選擇的時(shí)候只能輸入一個(gè)字母,當(dāng)輸入兩個(gè)或者兩個(gè)以上的時(shí)候系統(tǒng)就會(huì)產(chǎn)生未知的錯(cuò)誤。個(gè)人經(jīng)驗(yàn)總結(jié):(1)當(dāng)做一個(gè)大系統(tǒng)的時(shí)候,糾錯(cuò)的話要分階段進(jìn)行,不可等把系統(tǒng)的代碼寫完之后再進(jìn)行糾錯(cuò),在這個(gè)系統(tǒng)中,糾錯(cuò)是寫完一個(gè)子函數(shù)進(jìn)行一次糾錯(cuò),這樣錯(cuò)誤也容易找出。糾錯(cuò)要兩遍,第一遍糾正語(yǔ)法的錯(cuò)誤,第二遍糾正邏輯的錯(cuò)誤。 (2)要想做好一個(gè)系統(tǒng),沒(méi)有一定的理論知識(shí)是不行的,在做比較大的系統(tǒng)時(shí),要把本系統(tǒng)所需的的理論知識(shí)掌握,這樣才不會(huì)在做系

23、統(tǒng)的時(shí)候沒(méi)有思路而煩惱。6 參考文獻(xiàn)1曹計(jì)昌,盧萍,李開(kāi). C語(yǔ)言與程序設(shè)計(jì),北京:電子工業(yè)出版社,20132李開(kāi),盧萍,曹計(jì)昌. C語(yǔ)言實(shí)驗(yàn)與課程設(shè)計(jì),北京:科學(xué)出版社,2011附錄 程序清單#include"stdio.h"#include"stdlib.h"#include"string.h"#include"process.h"typedef struct scenespot /*景點(diǎn)的信息*/char jingdianbianhao5; /*景點(diǎn)編號(hào)*/ char chengshibianhao5; /*

24、城市編號(hào)*/char jingqubianhao5; /*景區(qū)編號(hào)*/char jingdianmingcheng15; /*景點(diǎn)名稱*/char jingdianweizhi50; /*景點(diǎn)位置*/char jingdiantese60; /*景點(diǎn)特色*/ struct scenespot *next; /*指向景點(diǎn)的下一個(gè)節(jié)點(diǎn)*/SS;typedef struct cityscene /*景區(qū)的信息*/char chengshibianhao5; /*城市編號(hào)*/char jingqumingcheng20; /*景區(qū)名稱*/char jingqubianhao5; /*景區(qū)編號(hào)*/cha

25、r jingqujibie10; /*景區(qū)級(jí)別*/char jingqudizhi60; /*景區(qū)地址*/char menpiaojiage10; /*門票價(jià)格*/char kaifangshijian15; /*開(kāi)放時(shí)間*/char zixundianhua15; /*咨詢電話*/char jingqujianjie150; /*景區(qū)簡(jiǎn)介*/struct cityscene *next; /*指向景區(qū)的下一個(gè)結(jié)點(diǎn)*/struct scenespot *right; /*指向景點(diǎn)鏈的頭指針*/CS;typedef struct city /*城市的信息*/char chengshibianha

26、o5; /*城市編號(hào)*/char chengshimingcheng10; /*城市名稱*/char chengshijibie10; /*城市級(jí)別*/char jiandudianhua15; /*監(jiān)督電話*/char zixundianhua15; /*咨詢電話*/struct city *next; /*指向城市的下一個(gè)結(jié)點(diǎn)*/struct cityscene *down; /*指向景區(qū)的頭指針*/C;void Load (C *head); /*讀取數(shù)據(jù)的函數(shù)*/void New(C *head); /*新建數(shù)據(jù)的函數(shù)*/void Save (C *head); /*保存數(shù)據(jù)的函數(shù)*/

27、void Search_city(C *head); /*按照城市查詢景點(diǎn)的函數(shù)*/void Search_cityscene(C *head); /*按照景區(qū)查詢景點(diǎn)的函數(shù)*/void Search_scenespot(C *head); /*按照城市和景區(qū)綜合查詢景點(diǎn)的函數(shù)*/void Modify_city(C *head); /*修改城市信息的函數(shù)*/void Modify_cityscene(C * head); /*修改景區(qū)信息的函數(shù)*/void Modify_scenespot(C *head); /*修改景點(diǎn)信息的函數(shù)*/void Output_city(C *head); /

28、*查詢城市信息的函數(shù)*/void Output_cityscene(C *head); /*查詢景區(qū)信息的函數(shù)*/void Output_scenespot(C *head); /*直接查詢景點(diǎn)信息的函數(shù)*/void Insert_city(C *head); /*插入新的城市的函數(shù)*/void Insert_cityscene(C *head); /*插入新的景區(qū)的函數(shù)*/void Insert_scenespot(C *head); /*插入新的景點(diǎn)的函數(shù)*/void Delete_city(C *head); /*刪除城市的函數(shù)*/void Delete_cityscene(C *hea

29、d); /*刪除景區(qū)的函數(shù)*/void Delete_scenespot(C *head); /*刪除景點(diǎn)的函數(shù)*/void Tongji1(C *head); /*統(tǒng)計(jì)某個(gè)城市的景區(qū)個(gè)數(shù)*/void Tongji2(C *head); /*統(tǒng)計(jì)某個(gè)城市的景點(diǎn)個(gè)數(shù)*/void Tongji3(C *head); /*統(tǒng)計(jì)某個(gè)景區(qū)的景點(diǎn)個(gè)數(shù)*/void Tongji4(C *head); /*統(tǒng)計(jì)某個(gè)城市所有的景區(qū)和景點(diǎn)*/void huanying(void); /*歡迎界面*/int Help(void); /*幫助的函數(shù)*/ C *head=NULL;int main()int n,n1,

30、n2=0;char ch1;qidian: system("cls"); /*清屏*/huanying(); /*輸出歡迎界面*/printf(" 1.文件 2.查詢 3.修改 4.添加 5.刪除 6.統(tǒng)計(jì) 7.幫助 0.退出系統(tǒng)n");if(n2) printf("您的輸入有誤請(qǐng)重新輸入n");n2=0; scanf("%d",&n);Load(&head); /*讀入數(shù)據(jù)*/switch(n)case 1: n1=0;qidian1: system("cls"); huany

31、ing(); printf(" 1.新建 2.保存 3.讀取 0.返回主菜單n");/*文件中包含的內(nèi)容*/ switch(n1) case 1:printf("您已經(jīng)成功的建立了新的數(shù)據(jù)庫(kù)!n");break; case 2:printf("您已經(jīng)成功的將數(shù)據(jù)保存!n");break; case 3:printf("您已經(jīng)成功地將數(shù)據(jù)導(dǎo)入!n");break; case 4:printf("您的輸入有誤請(qǐng)重新輸入!n");break; printf("請(qǐng)選擇您要的服務(wù)!n"

32、); scanf("%d",&n1); switch(n1) case 1:printf(" 警告!n如果您新建,那么原來(lái)的數(shù)據(jù)將全部丟失您要繼續(xù)新建嗎?'y'(yes) or 'n'(no)n"); /*新建*/ ch1=getchar();getchar(); if(ch1='y'|ch1='Y') New(&head);break; else n1=0; goto qidian1; case 2:Save(head);break; /*保存*/ case 3:Load(

33、&head);break; /*讀取*/ case 0:goto qidian;break; default: /*輸入錯(cuò)誤的時(shí)候處理辦法*/ n1=4; goto qidian1;break; if(n1) goto qidian1; break;case 2: /*查詢*/n1=0;qidian2: system("cls"); /*清屏*/huanying(); /*歡迎界面*/ printf(" 1.查詢城市信息n 2.查詢景區(qū)信息n 3.直接查詢景點(diǎn)信息n 4.按城市查詢景點(diǎn)信息n 5.按景區(qū)查詢景點(diǎn)信息n 6.按照城市和景區(qū)綜合查詢景點(diǎn)信息n

34、0.返回主菜單n");/*查詢所包含的內(nèi)容*/ if(n1=7) printf("您的輸入有誤請(qǐng)重新輸入n");n1=0;printf("請(qǐng)選擇您要的服務(wù)n");scanf("%d",&n1);switch(n1) /*選擇不同的查詢方式*/case 1:Output_city(head);break; case 2:Output_cityscene(head);break;case 3:Output_scenespot(head);break;case 4:Search_city(head);break;case

35、5:Search_cityscene(head);break;case 6:Search_scenespot(head);break;case 0:goto qidian;break;default:n1=7;goto qidian2;break;if (n1) goto qidian2; break;case 3: /*修改*/ n1=0;qidian3:system("cls"); huanying(); printf(" 1.修改城市信息 2.修改景區(qū)信息 3.修改景點(diǎn)信息 0.返回主菜單n");/*修改所包含的內(nèi)容*/if(n1=5)printf

36、("您的輸入有誤請(qǐng)重新輸入!n"); printf("請(qǐng)選擇你要的服務(wù)n");scanf("%d",&n1);switch(n1) /*選擇修改不同的方面*/case 1:Modify_city(head);Save(head);break;case 2:Modify_cityscene(head);Save(head);break;case 3:Modify_scenespot(head);Save(head);break;case 0:goto qidian;break;default:n1=5;goto qidian3;

37、break;if(n1) goto qidian3; break;case 4: /*添加*/ n1=0; qidian4:system("cls");huanying(); printf(" 1.添加城市 2.添加景區(qū) 3.添加景點(diǎn) 0.返回主菜單n");/*添加所包含的內(nèi)容*/switch(n1)case 1:printf("您已成功添加了新的城市n");break;case 2:printf("您已成功添加新的景區(qū)n");break; case 3:printf("您已成功添加新的景點(diǎn)n"

38、);break;case 4:printf("您的輸入有誤請(qǐng)重新輸入!n");break; printf("請(qǐng)選擇你要的服務(wù)n");scanf("%d",&n1);switch(n1) /*選擇添加不同的信息*/case 1:Insert_city(&head);Save(head);break;case 2:Insert_cityscene(head);Save(head);break;case 3:Insert_scenespot(head);Save(head);break;case 0:goto qidian;

39、break;default:n1=4;goto qidian4;break;if(n1) goto qidian4; break;case 5: /*刪除*/ n1=0;qidian5: system("cls");huanying(); printf(" 1.刪除城市 2.刪除景區(qū) 3.刪除景點(diǎn) 0.返回主菜單n");/*刪除所包含的內(nèi)容*/if(n1=4)printf("您的輸入有誤n"); printf("請(qǐng)選擇你要的服務(wù)n");scanf("%d",&n1);switch(n1)

40、 /*選擇刪除不同的信息*/case 1:Delete_city(&head);Save(head);break;case 2:Delete_cityscene(head);Save(head);break;case 3:Delete_scenespot(head);Save(head);break;case 0:goto qidian;break;default:n1=4;goto qidian5;break;if(n1) goto qidian5; break;case 6: /*統(tǒng)計(jì)*/ n1=0;qidian6:system("cls");huanying(

41、); printf(" 1.統(tǒng)計(jì)某個(gè)城市的景區(qū)個(gè)數(shù) n 2.統(tǒng)計(jì)某個(gè)城市的景點(diǎn)個(gè)數(shù) n 3.統(tǒng)計(jì)某個(gè)景區(qū)的景點(diǎn)個(gè)數(shù) n 4.統(tǒng)計(jì)某個(gè)城市某個(gè)景區(qū)的景點(diǎn)n 0.返回主菜單 n");/*統(tǒng)計(jì)所包含的內(nèi)容*/ if(n1=5)printf("您的輸入有誤請(qǐng)重新輸入n");printf("請(qǐng)選擇您要的服務(wù)n"); scanf("%d",&n1);switch(n1) /*選擇不同的統(tǒng)計(jì)方式*/case 1:Tongji1(head);break;case 2:Tongji2(head);break;case 3:T

42、ongji3(head);break;case 4:Tongji4(head);break;case 0:goto qidian;break;default :n1=5;goto qidian6;break;if(n1) goto qidian6; break;case 7: /*幫助*/qidian7: system("cls");huanying();n1=Help();if(n1=1)goto qidian7;else goto qidian; break;case 0:goto end;break;default:n2=1;goto qidian;break;got

43、o qidian;end: return 0; void huanying(void) /*歡迎的函數(shù)*/printf("n *n");printf(" * *n");printf(" * 歡迎使用景區(qū)查詢系統(tǒng)! *n");printf(" * *n"); printf(" *n");void New(C *head) /*創(chuàng)建交叉鏈表的函數(shù)*/C *hp=NULL,*p; CS *cs;SS *ss;char ch; dop=(C *)malloc(sizeof(C); /*創(chuàng)建城市信息的第一

44、個(gè)結(jié)點(diǎn)*/printf("請(qǐng)輸入城市編號(hào),城市名稱,城市級(jí)別,監(jiān)督電話,咨詢電話,且他們之間空一個(gè)空格,以回車鍵結(jié)束輸入n");scanf("%s %s %s %s %s",p->chengshibianhao,p->chengshimingcheng,p->chengshijibie,p->jiandudianhua,p->zixundianhua);/*輸入城市基本數(shù)據(jù)*/getchar(); /*讀取回車*/p->down=NULL; /*置景區(qū)鏈頭指針為NULL*/p->next=hp; /*城市基本信息

45、鏈頭指針的值賦值給結(jié)點(diǎn)的next域*/hp=p; /*頭指針指向新創(chuàng)建的結(jié)點(diǎn)*/printf("是否繼續(xù)輸入新的城市數(shù)據(jù)?'y'(yes) or 'n'(no)n");ch=getchar();getchar(); /*選擇是否創(chuàng)建新的城市*/while(ch='y'|ch='Y');(*head)=hp; /*調(diào)用函數(shù)的head頭指針指向新創(chuàng)建的城市基本信息連*/p=(*head); /*p指向城市信息鏈*/while(p!=NULL) /*輸入景區(qū)的信息鏈*/printf("請(qǐng)輸入%s的有關(guān)景區(qū)信

46、息n",p->chengshimingcheng);do cs=(CS *)malloc(sizeof(CS); /*創(chuàng)建1景區(qū)信息的第一個(gè)結(jié)點(diǎn)*/ printf("請(qǐng)輸入景區(qū)編號(hào),景區(qū)名稱,景區(qū)級(jí)別,景區(qū)地址,門票價(jià)格,開(kāi)放時(shí)間,咨詢電話,景區(qū)簡(jiǎn)介,且他們之間空一個(gè)空格,以回車鍵結(jié)束輸入n"); scanf("%s %s %s %s %s %s %s %s",cs->jingqubianhao,cs->jingqumingcheng,cs->jingqujibie,cs->jingqudizhi,cs->menpiaojiage,cs->kaifangshijian,cs->zixundianhua,cs->jingqujianjie); getchar(); strcpy(cs->chengshibianhao,p->chengshibianhao); /*將城市編號(hào)復(fù)制到景區(qū)中的城市編號(hào)*/ cs->right=NULL; /*將景點(diǎn)信息鏈的頭指針為NULL*/ cs->next=p->

溫馨提示

  • 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ù)網(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)論