C語言課設(shè)校園導(dǎo)游_第1頁
C語言課設(shè)校園導(dǎo)游_第2頁
C語言課設(shè)校園導(dǎo)游_第3頁
C語言課設(shè)校園導(dǎo)游_第4頁
C語言課設(shè)校園導(dǎo)游_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未指定書簽。未定義書簽。未指定書簽。未指定書簽。未指定書簽。校園導(dǎo)游目錄摘要 錯誤!1緒論 錯誤!2系統(tǒng)分析 錯誤!功能需求 錯誤!數(shù)據(jù)需求 錯誤!性能需求 錯誤!3總體設(shè)計 錯誤!系統(tǒng)設(shè)計方案 錯誤!功能模塊設(shè)計 錯誤!4詳細(xì)設(shè)計 錯誤!瀏覽校園全景模塊 錯誤!查詢所有瀏覽路線模塊 錯誤!求最短路徑 錯誤!查詢各景點信息模塊 錯誤!5調(diào)試與測試 錯誤!調(diào)試 錯誤!測試 錯誤!6結(jié)論 錯誤!結(jié)束語 錯誤!參考文獻(xiàn) 錯誤!附錄1一用戶手冊 錯誤!附錄2一源程序 錯誤!摘要為了讓游客更好地了解各個旅游景點,查詢相關(guān)信息,特開放此程序為游客服務(wù)。游客只需輸入相應(yīng)的編號就可以實現(xiàn)對其功能的查詢;編號(1-9)主要功能如下:(1)校園所含景點不少于10個,以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信息,圖中的邊表示景點間的道路,存放路徑長度等信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的路徑(列出所有),并向訪客推薦一條最短路徑。關(guān)鍵詞:任意景點信息,所有路徑,最短路徑,所有景點。1緒論導(dǎo)游是每個游客旅游必不可少的一部分,如果能用一個電子導(dǎo)游器代替一個導(dǎo)游為游客服務(wù)的話,那不就更方便嗎、因此特開發(fā)此程序為游客服務(wù),希望能得到大家的認(rèn)可。題目要求:設(shè)計一個校園導(dǎo)游咨詢程序,對來訪的客人提供各種信息查詢服務(wù)。基本要求:(1)校園所含景點不少于10個,以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信息,圖中的邊表示景點間的道路,存放路徑長度等信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的路徑(列出所有),并向訪客推薦一條最短路徑。2系統(tǒng)分析功能需求所需功能如下:(1)校園所含景點不少于10個,以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信息,圖中的邊表示景點間的道路,存放路徑長度等信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的路徑(列出所有),并向訪客推薦一條最短路徑。2.2數(shù)據(jù)需求所涉及到的數(shù)據(jù)如下:結(jié)構(gòu)體,棧,表格(菜單),數(shù)組(1)輸入數(shù)據(jù):景點編號(0-9)(2)輸出數(shù)據(jù):編號,名稱,信息(數(shù)字和中文)2.3性能需求性能簡介:安全性高、可靠性強、穩(wěn)定性強、響應(yīng)速度快3總體設(shè)計系統(tǒng)設(shè)計方案通過一個主函數(shù)對各個子函數(shù)的調(diào)用實現(xiàn)所需功能:游客只需輸入相應(yīng)的編號就可以實現(xiàn)對其功能的查詢;編號(1-9)(1)菜單如下:歡迎來到沈陽航空航天大學(xué)祝你:旅途愉快.瀏覽校園全景.查看所有游覽路線.選擇出發(fā)點和目的地.查看各景點信息.退出系統(tǒng)誠心為你服務(wù)-請選擇(輸入編號.回車結(jié)束):(2)抽象數(shù)據(jù)類型定義:數(shù)據(jù)對象:V(頂點)數(shù)據(jù)關(guān)系:R={VR}VR={<V.R>}(3)存儲結(jié)構(gòu):鄰接表(4)算法設(shè)計:

主要應(yīng)用:迪杰斯特拉算法,弗洛伊德算法,輸入輸出函數(shù)功能模塊設(shè)計塊圖(1)瀏覽校園全景模塊該模塊部分逋過一個函數(shù)輸刎有景點的編名稱,(2)查看所有該模塊是(3)球最短路該模塊是(4)查看各景覽路游提置

查霄有游叭檬線

位在供可游和將要求新路徑

的(1)瀏覽校園全景模塊該模塊部分逋過一個函數(shù)輸刎有景點的編名稱,(2)查看所有該模塊是(3)球最短路該模塊是(4)查看各景覽路游提置

查霄有游叭檬線

位在供可游和將要求新路徑

的覽的景點。置提查短路徑。該模塊專門為游客提供每個景點的詳細(xì)信息查詢。4詳細(xì)設(shè)計主函數(shù)voidmain()圖2主函數(shù)選擇所需功能瀏覽校園全景模塊MGraphInitGraph()圖3瀏覽校園全景模塊查詢所有瀏覽路線模塊voidBrowser(MGraph*G)圖4查詢所有瀏覽路線模塊求最短路徑voidFloyd(MGraph*G)圖5求最短路徑模塊查詢各景點信息模塊voidSearch(MGraph*G)圖6查詢各景點信息模塊5調(diào)試與測試調(diào)試調(diào)試是軟件開發(fā)過程中的一個重要環(huán)節(jié),也是最復(fù)雜,對軟件開發(fā)者來說也是最艱巨的任務(wù)。調(diào)試的任務(wù)是及時改正測試過程中發(fā)現(xiàn)的軟件錯誤。具體地說,調(diào)試過程由兩個步驟組成,從表示程序中存在錯誤的某跡象開始,首先確定錯誤的準(zhǔn)確位置,也就是找出哪個模塊或哪個語句引起的錯誤。然后仔細(xì)研究推斷代碼以確定問題的原因,并設(shè)法改正。調(diào)試過程主要是運行編制好的程序,然后遇到錯誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問題所在。本系統(tǒng)調(diào)試過程中遇到問題、原因和解決方法如下面介紹。(1)運行完程序一次有錯誤提醒原因是上次運行程序后沒有關(guān)閉操作界面當(dāng)點擊編譯時會有一個錯誤提示,解決方法:將上一次運行時的操作界面關(guān)閉。其原因是指針指向的位置出現(xiàn)錯誤導(dǎo)致程序傳參錯亂,無法運行,解決辦法:使程序進(jìn)入調(diào)試狀態(tài)在傳參,出現(xiàn)錯誤的位置一句句查找傳遞的參數(shù)是否是你所希望的,如若不是就加以修正。調(diào)試過程主要是運行編制好的程序,然后遇到錯誤后根據(jù)系統(tǒng)的提示,找到相關(guān)的問題所在。本系統(tǒng)調(diào)試過程中遇到的主要問題、原因和解決方法如下面介紹。測試軟件測試是軟件生存期中的一個重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應(yīng)該是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”?;蛘哒f,軟件測試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤或缺陷。過度測試則會浪費許多寶貴的資源。到測試后期,即使找到了錯誤,然而付出了過高的代價。測試數(shù)據(jù)過程如下。(1)輸入功能測試輸入數(shù)據(jù):4 1預(yù)期結(jié)果:1圖書館文化交流中心運行結(jié)果:1圖書館文化交流中心說明:所輸入的數(shù)據(jù)與輸出的結(jié)果相符合,與預(yù)期結(jié)果完全一致,程序編寫成功。6結(jié)論課程設(shè)計順利完成,任務(wù)書中所提出的要求全部實現(xiàn),不過這個程序還有些不夠完善。結(jié)束語為期兩個禮拜的計算機綜合訓(xùn)練終于順利完成,在這期間真正的學(xué)到了一些經(jīng)驗,能夠熟練的掌握一些數(shù)據(jù)結(jié)構(gòu)的編程思路,能夠熟練的運用學(xué)到的東西,學(xué)會了在曾經(jīng)編寫過的函數(shù)上加以修改實現(xiàn)了我期望實現(xiàn)的功能,知道學(xué)習(xí)編程必須親手將每一個字符敲入電腦中這樣才能真正的學(xué)到課本或一些理論中學(xué)不到的知識,這才達(dá)到了實踐的目的,當(dāng)程序編寫完成而且能夠正常運行心里一種說不出的自豪感,雖然這對于一名程序員來說可能什么也不是,但這是我編程的開始,如果希望在編程這方面能夠有所發(fā)展我所要走過的路還很長,還需要不斷的學(xué)習(xí)!學(xué)習(xí)!參考文獻(xiàn)[1]譚浩強.C語言程序設(shè)計(第三版).清華大學(xué)出版社,2007[2]姜靈芝,余健.C語言課程設(shè)計案例精編.清華大學(xué)出版社,2008[3]嚴(yán)蔚敏,吳偉民.算法與數(shù)據(jù)結(jié)構(gòu)(C語言版)清華大學(xué)出版社,2008[4]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)題集(C語言版)清華大學(xué)出版社,2008[5]網(wǎng)上相關(guān)資料

附錄1一用戶手冊點擊運行,首先出現(xiàn)的是登錄界面,選擇用戶名稱,正確的輸入編號即可,如圖7所示。圖7主界面按照菜單提示輸入編號即可???C:\Docu>entsandSettIngsAAdBizLiEist:r:at口:r\桌面、課設(shè)YDEbugACppl.exe一區(qū)區(qū)地一館活院曹襄湖一門書生門醫(yī)生動學(xué)驗陽北圖南南校北運教看酹區(qū)紐,區(qū),結(jié)心頡心南樞誠北動i。科,C:\Docu>entsandSettIngsAAdBizLiEist:r:at口:r\桌面、課設(shè)YDEbugACppl.exe一區(qū)區(qū)地一館活院曹襄湖一門書生門醫(yī)生動學(xué)驗陽北圖南南校北運教看酹區(qū)紐,區(qū),結(jié)心頡心南樞誠北動i的中I通再運途的4流園齋園晶理園門交家外一家體圣與校大化生內(nèi)去生孽踐麗校文學(xué)歡迎來到沈陽航空航天大學(xué)祝你:旅途愉快路目自心旦藍(lán)瞿全曹點園有*系統(tǒng)裔出各系出瀏費選變退12345圖13瀏覽校園景點界面為來訪客人提供圖中任意景點的問路查詢按照主菜單提示輸入編號即可圖14查看所有游覽路線為訪客推薦一條最短路徑。按照菜單提示輸入編號即可圖15選擇出發(fā)點和目的地為來訪客人提供圖中任意景點相關(guān)信息的查詢按照菜單提示輸入編號即可圖16查看各景點信息附錄2一源程序#include<stdlib.h>#include<stdio.h>#include<string.h>#defineMAX10000#defineMAX_VERTEX_NUM10typedefstruct(intadj;}Ar,Ad[10][10];typedefstruct(charname[30];intnum;charintroduction[100];}infotype;typedefstruct(infotypevexs[10];Adarcs;intvexnum,arcnum;}MGraph;MGraphb;MGraphInitGraph()(MGraphG;inti,j;G.vexnum=10;G.arcnum=10;for(i=0;i<Gvexnum;i++)G.vexs[i].num=i;strcpy(G.vexs[0].name,"北門");strcpy(G.vexs[0].introduction,"校大門-雄偉而美麗");strcpy(G.vexs[1].name,"圖書館");strcpy(G.vexs[1].introduction,“文化交流中心");strcpy(G.vexs[2].name,"南生活區(qū)");strcpy(G.vexs[2].introduction,"學(xué)生家園(南區(qū))”);strcpy(Gvexs[3].name,"南門”);strcpy(G.vexs[3].introduction,"校內(nèi)外交通樞紐”);strcpy(G.vexs[4].name,“校醫(yī)院");strcpy(G.vexs[4].introduction,"帶去一份真誠,換回一身健康");strcpy(G.vexs[5].name,"北生活區(qū)");strcpy(G.vexs[5].introduction,"學(xué)生家園(北區(qū))”);strcpy(G.vexs[6].name,“運動場");strcpy(G.vexs[6].introduction,"發(fā)揚體育運動,曾強師生體質(zhì)");strcpy(G.vexs[7].name,"教學(xué)樓");strcpy(G.vexs[7].introduction,"教學(xué)圣地");strcpy(G.vexs[8].name,"實驗基地");strcpy(G.vexs[8].introduction,"實踐與理論相結(jié)合的地方");strcpy(G.vexs[9].name,"清陽湖");strcpy(G.vexs[9].introduction,”美麗校園的核心");for(i=0;i<Gvexnum;i++)for(j=0;j<Gvexnum;j++)G.arcs[i][j].adj二MAX;G.arcs[0][1].adj=200;G.arcs[0][2].adj=500;G.arcs[0][6].adj=480;G.arcs[1][7].adj=100;G.arcs[2][3].adj=50;G.arcs[3][6].adj=400;G.arcs[3][4].adj=300;G.arcs[4][5].adj=350;G.arcs[4][9].adj=180;G.arcs[5][9].adj=420;G.arcs[6][7].adj=280;G.arcs[6][9].adj=220;G.arcs[7][8].adj=250;G.arcs[8][9].adj=320;for(i=0;i<Gvexnum;i++)for(j=0;j<Gvexnum;j++)G.arcs[j][i].adj=G.arcs[i][j].adj;returnG;)voidMenu()(printf("\n歡迎來到沈陽航空航天大學(xué)\n");printf("\n");printf("祝你:旅途愉快\n");printf("\n");printf("1.瀏覽校園全景\n");printf("2.查看所有游覽路線\n");printf("3.選擇出發(fā)點和目的地\n");printf("4.查看各景點信息\n");printf("5.退出系統(tǒng)\n");printf("\n");printf(“誠心為你服務(wù)-請選擇(輸入編號.回車結(jié)束):");)voidBrowser(MGraph*G)(intv;printf("\n");printf("編號.景點名稱.簡介\n");for(v=0;v<G->vexnum;v++)printf("%-4d%-16s%-56s\n”,G->vexs[v].num,G->vexs[v].name,G->vexs[v].introduction);)printf("\n");)voidShortestPath_DIJ(MGraph*G)(intv,w,i,min,t=0,x,flag=1,v0;intfinal[20],D[20],p[20][20];while(flag)(printf("請輸入一個起始景點編號0-9:");scanf("%d",&v0);if(v0<0||v0>G->vexnum)(printf("景點編號不存在!請重新輸入景點編號0-9:");scanf("%d",&v0);)if(v0>=0&&v0<G->vexnum)flag=0;)for(v=0;v<G->vexnum;v++)(final[v]=0;D[v]=G->arcs[v0][v].adj;for(w=0;w<G->vexnum;w++)p[v][w]=0;if(D[v]<MAX)(p[v][v0]=1;p[v][v]=1;))D[v0]=0;final[v0]=1;for(i=1;i<G->vexnum;i++)min=MAX;for(w=0;w<G->vexnum;w++)if(!final[w])if(D[w]<min){v=w;min=D[w];}final[v]=1;for(w=0;w<G->vexnum;w++)if(!final[w]&&(min+G->arcs[v][w].adj<D[w])){D[w]=min+G->arcs[v][w].adj;for(x=0;x<G->vexnum;x++)p[w][x]=p[v][x];p[w][w]=1;for(v=0;v<G->vexnum;v++)if(v0!=v)printf("%s”,G->vexs[v0].name);for(w=0;w<G->vexnum;w++)if(p[v][w]&&w!=v0)printf("-->%s”,G->vexs[w].name);t++;if(t>G->vexnum-1&&v0!=v)printf("總路線長%dm\n\n",D[v]);voidFloyd(MGraph*G)intv,u,i,w,k,j,flag=1,p[10][10],D[10][10];for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vexnum;u++)p[v][w]=0;if(D[v][w]<MAX)(p[v][w]=1;p[v][w]=1;))for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w])(D[v][w]=D[v][u]+D[u][w];for(i=0;i<G->vexnum;i++)p[v][w]=p[v][u]11P[u][w];)while(flag)(printf(”請輸入出發(fā)點和目的地的編號0-9如(**):");scanf("%d%d",&k,&j);if(k<0||k>G->vexnum||j<0||j>G->vexnum)(printf("景點編號不存在!請重新輸入出發(fā)點和目的地的編號:");scanf("%d%d",&k,&j);)if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)flag=0;)printf("%s”,G->vexs[k].name);for(u=0;u<G->vexnum;u++)if(p[k][j]&&k!=u&&j!=u)printf("-->%s”,G->vexs[u].name);printf("-->%s”,G->vexs[j].name);printf("總路線長%dm\n",D[k][j]);)voidSearch(MGraph*G)(intk,flag=1;while(flag)(printf("請輸入要查詢的景點編號0-9:");scanf("%d",&k);if(k<0||k>G->vexnum)(printf("景點編號不存在!請重新輸

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論