版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題 目 xxx校園導(dǎo)航系統(tǒng) </p><p> 學(xué) 院 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(師范 ) </p><p> 學(xué) 號(hào) </p><p> 學(xué) 生 姓
2、名 </p><p> 指導(dǎo)教師姓名 </p><p> 日期: 2011-12-26 </p><p><b> 題目與要求</b></p><p><b>
3、1.1 功能要求</b></p><p> 1.不同的功能使用不同的函數(shù)實(shí)現(xiàn)(模塊化),對(duì)每個(gè)函數(shù)的功能和調(diào)用接口要注釋清楚。對(duì)程序其它部分也進(jìn)行必要的注釋。</p><p> 2.對(duì)系統(tǒng)進(jìn)行功能模塊分析、畫出總流程圖和各模塊流程圖。</p><p> 3.用戶界面要求使用方便、簡(jiǎn)潔明了、美觀大方、格式統(tǒng)一。所有功能可以反復(fù)使用,最好使用菜單。&l
4、t;/p><p> 4.通過命令行相應(yīng)選項(xiàng)能直接進(jìn)入某個(gè)相應(yīng)菜單選項(xiàng)的功能模塊。</p><p> 5.所有程序需調(diào)試通過。</p><p><b> 1.2 設(shè)計(jì)內(nèi)容:</b></p><p> 1、查詢了解學(xué)校概況,為導(dǎo)游參觀者提供關(guān)于學(xué)校的相關(guān)信息。</p><p> 2、查詢校園各個(gè)
5、場(chǎng)所和景點(diǎn)信息;</p><p> 3、為導(dǎo)游者或外來人員參觀人員提供校園交通信息,方便用戶走訪學(xué)校。</p><p> 4.如有時(shí)間,可為程序增加以下功能:</p><p> 登錄模塊。該模塊在進(jìn)入主界面之前先執(zhí)行,用于對(duì)進(jìn)入系統(tǒng)的用戶進(jìn)行身份驗(yàn)證,若用戶輸入正確的用戶名及用戶密碼,則進(jìn)入主界面,否則輸入超過3次錯(cuò)誤則退出程序。處理方法:用戶名及用戶密碼可保
6、存在一文件中,校驗(yàn)時(shí)從文件中讀入數(shù)據(jù)進(jìn)行校驗(yàn)。在系統(tǒng)中應(yīng)增加一個(gè)用戶管理模塊,在其中可新增用戶,修改用戶信息等。</p><p> 5系統(tǒng)幫助。顯示開發(fā)者姓名、班級(jí)、開發(fā)完成日期、版本號(hào)和指導(dǎo)老師等信息。</p><p><b> 二、分析</b></p><p> 2.1設(shè)計(jì)基礎(chǔ):要掌握最短路徑的實(shí)現(xiàn)方式。</p><
7、;p> 2.2分析設(shè)計(jì)課題的要求,要求編程實(shí)現(xiàn)以下功能:</p><p><b> ?。?)退出系統(tǒng)</b></p><p> ?。?)進(jìn)入xxx導(dǎo)航系統(tǒng)</p><p><b> ?。?)新增用戶信息</b></p><p><b> ?。?)修改密碼</b><
8、/p><p><b> 2.3主控菜單設(shè)計(jì)</b></p><p> 為實(shí)現(xiàn)導(dǎo)航的操作功能,首先設(shè)計(jì)一個(gè)含有多個(gè)菜單項(xiàng)的主控菜單程序,然后</p><p> 再為這些菜單項(xiàng)配上相應(yīng)的功能。</p><p> 程序運(yùn)行后,給出菜單項(xiàng)的內(nèi)容和輸入提示,如下:</p><p><b>
9、1.學(xué)校簡(jiǎn)介</b></p><p> 2.xxx校園平面簡(jiǎn)圖</p><p> 3. 顯示場(chǎng)所的編號(hào)</p><p> 4. 查看場(chǎng)所的具體信息</p><p> 5. 計(jì)算路徑長(zhǎng)度及找出最短路徑</p><p><b> 6. 退出</b></p><
10、p> 2.4設(shè)計(jì)課題已明確要求,有關(guān)的定義如下:</p><p> void insert();</p><p> #define N 10</p><p><b> int n=1;</b></p><p> #define Max 32767</p><p> #define
11、 NUM 16</p><p> typedef struct ArcCell</p><p> { int adj; // 相鄰接的景點(diǎn)之間的路程 </p><p> char *info;</p><p> }ArcCell; // 定義邊的類型 </p><p> typedef struct Vert
12、exType</p><p> { int number; // 景點(diǎn)編號(hào) </p><p> char *sight; // 景點(diǎn)名稱 </p><p> char *description; // 景點(diǎn)描述 </p><p> }VertexType; // 定義頂點(diǎn)的類型 </p><p> typed
13、ef struct</p><p> { VertexType vex[NUM]; // 圖中的頂點(diǎn),即為景點(diǎn) </p><p> ArcCell arcs[NUM][NUM]; // 圖中的邊,即為景點(diǎn)間的距離 </p><p> int vexnum,arcnum; // 頂點(diǎn)數(shù),邊數(shù) </p><p> }MGraph; //
14、定義圖的類型 </p><p> MGraph G; // 把圖定義為全局變量 </p><p> int P[NUM][NUM]; //</p><p> long int D[NUM]; // 輔助變量存儲(chǔ)最短路徑長(zhǎng)度 </p><p> void CreateUDN(int v,int a); // 創(chuàng)建圖的函數(shù) </p&
15、gt;<p> void pingmu(); //屏幕輸出函數(shù)</p><p> void introduce();//輸入介紹內(nèi)容,但不輸出</p><p> void ShortestPath(int num); //最短路徑函數(shù)</p><p> void output(int sight1,int sight2); //輸出函數(shù)<
16、/p><p> void PrintMGraph();</p><p> char Menu(); // 主菜單 </p><p> void search(); // 查詢景點(diǎn)信息 </p><p> char SearchMenu(); // 查詢子菜單 </p><p> void show();//顯示校
17、園平面圖</p><p> void mainn();</p><p><b> 2.4邏輯設(shè)計(jì):</b></p><p> 按所設(shè)想的功能,把程序化分為幾個(gè)模塊,各模塊的名稱和其數(shù)據(jù)類型如下:</p><p><b> Main主函數(shù)</b></p><p> 調(diào)
18、用各函數(shù),實(shí)現(xiàn)課程設(shè)計(jì)的目標(biāo)。其中包含三個(gè)功能,一個(gè)是直接進(jìn)入導(dǎo)航系統(tǒng),利用主函數(shù)中已有的數(shù)據(jù),進(jìn)行查詢:一個(gè)是進(jìn)行創(chuàng)建數(shù)據(jù),本程序中初始數(shù)據(jù)為農(nóng)大的導(dǎo)航數(shù)據(jù),如果需要也可以自己建立一個(gè);最后一個(gè)是退出功能。</p><p><b> Menu菜單函數(shù)</b></p><p> 該函數(shù)用于顯示初頁(yè)面,列出兩個(gè)功能的選擇。一個(gè)是進(jìn)入農(nóng)大導(dǎo)航系統(tǒng),一個(gè)是進(jìn)行自己創(chuàng)建一
19、個(gè)導(dǎo)航系統(tǒng)。</p><p> dijkstra建立最小生成樹</p><p> 這是本程序的中心,在眾多路徑中選出最短路徑?;趯?duì)dijkstra求最小生成樹方法的應(yīng)用。使整個(gè)程序顯得極為簡(jiǎn)便。課本中的dijkstra函數(shù)只是輸入一個(gè)結(jié)點(diǎn),然后輸出從該結(jié)點(diǎn)出發(fā)到各結(jié)點(diǎn)的最短路徑,為了使它更適用于本課程設(shè)計(jì),我將它改為“輸入兩個(gè)結(jié)點(diǎn),輸出這兩點(diǎn)的最短路徑”。</p>&l
20、t;p> search查詢函數(shù) </p><p> 設(shè)計(jì)該函數(shù)的目的是為了能夠多次得應(yīng)用dijkstra函數(shù)進(jìn)行查詢最短路徑。同時(shí)該函數(shù)可以列出各景點(diǎn)的代號(hào)和對(duì)應(yīng)的名稱,這樣大家只要輸入代號(hào)就行了。方便進(jìn)行查詢。</p><p> 相關(guān)模塊介紹已在定義中</p><p><b> 圖1:校園平面圖</b></p>&
21、lt;p> 2.5 程序調(diào)試的實(shí)驗(yàn)截圖</p><p><b> 用戶登陸界面</b></p><p><b> 用戶登陸界面成功</b></p><p><b> 導(dǎo)航系統(tǒng)界面</b></p><p><b> 最短路徑</b></
22、p><p><b> 景點(diǎn)查詢信息</b></p><p><b> 校園平面圖</b></p><p> 三、源程序及系統(tǒng)文件使用說明</p><p> #include<stdio.h></p><p> #include <stdlib.h>
23、;</p><p> #include<conio.h> /*清屏*/</p><p> #include<string.h></p><p> void insert();</p><p> #define N 10</p><p><b> int n=1;</b&
24、gt;</p><p> #define Max 32767</p><p> #define NUM 16</p><p> typedef struct ArcCell</p><p> { int adj; // 相鄰接的景點(diǎn)之間的路程 </p><p> char *info;</p>
25、<p> }ArcCell; // 定義邊的類型 </p><p> typedef struct VertexType</p><p> { int number; // 景點(diǎn)編號(hào) </p><p> char *sight; // 景點(diǎn)名稱 </p><p> char *description; // 景點(diǎn)描述 &l
26、t;/p><p> }VertexType; // 定義頂點(diǎn)的類型 </p><p> typedef struct</p><p> { VertexType vex[NUM]; // 圖中的頂點(diǎn),即為景點(diǎn) </p><p> ArcCell arcs[NUM][NUM]; // 圖中的邊,即為景點(diǎn)間的距離 </p>&l
27、t;p> int vexnum,arcnum; // 頂點(diǎn)數(shù),邊數(shù) </p><p> }MGraph; // 定義圖的類型 </p><p> MGraph G; // 把圖定義為全局變量 </p><p> int P[NUM][NUM]; //</p><p> long int D[NUM]; // 輔助變量存儲(chǔ)最短路
28、徑長(zhǎng)度 </p><p> void CreateUDN(int v,int a); // 創(chuàng)建圖的函數(shù) </p><p> void pingmu(); //屏幕輸出函數(shù)</p><p> void introduce();//輸入介紹內(nèi)容,但不輸出</p><p> void ShortestPath(int num); //最短
29、路徑函數(shù)</p><p> void output(int sight1,int sight2); //輸出函數(shù)</p><p> void PrintMGraph();</p><p> char Menu(); // 主菜單 </p><p> void search(); // 查詢景點(diǎn)信息 </p><p&
30、gt; char SearchMenu(); // 查詢子菜單 </p><p> void NextValue(int); </p><p> void display(); // 顯示遍歷結(jié)果 </p><p> void show();//顯示校園平面圖</p><p> void mainn();</p>&l
31、t;p> struct student </p><p><b> { </b></p><p> char name[20]; </p><p> char secret[20]; </p><p><b> };</b></p><p> struct
32、student stu[N];</p><p><b> void pf()</b></p><p><b> {</b></p><p> printf("\n\n\t\t 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)");</p><p> printf("\n\
33、n\n\t\t --------------------------------------");</p><p> printf("\n \t\t |\t 名稱: xxx校園導(dǎo)航系統(tǒng)\t|");</p><p> printf("\n \t\t |\t 姓名: 田文祥 \t|");</p><
34、;p> printf("\n \t\t |\t 班級(jí): 10計(jì)師 \t|");</p><p> printf("\n \t\t |\t 指導(dǎo)老師: 王寶華 \t|");</p><p> printf("\n \t\t |\t 作者: xxx校園 \t|");<
35、/p><p> printf("\n \t\t --------------------------------------");</p><p><b> }</b></p><p> void main()//主函數(shù)</p><p> {char s2[10],s3[10],s4[10],
36、s5[10],s6[10],s1[10],s7[10]="\0";</p><p> int i=0,a,j;</p><p><b> FILE *fp;</b></p><p> if((fp=fopen("用戶信息.txt","r"))==NULL)</p>
37、<p> { printf("找不到 用戶信息.txt文件!\n"); </p><p> system("pause"); </p><p><b> exit(0);</b></p><p><b> } </b></p><p>&l
38、t;b> else</b></p><p> { for(i=0;i<N;i++) </p><p> fscanf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret); </p><p><b> } </b></p><p>
39、fclose(fp); </p><p> printf("\n\n\n\n\n\n\n\n\t\t保存在用戶信息.txt文件中的所有信息已經(jīng)讀入程序中!\n\n\t\t\t"); </p><p> system("pause"); </p><p> system("cls");</p>
40、;<p> for(i=0;i<3;i++)</p><p><b> { pf();</b></p><p> printf("\n\n\t\t 用戶登陸");</p><p> printf("請(qǐng)輸入用戶名,你還有%d次機(jī)會(huì)。\n\t\t\t",3-i);</p&
41、gt;<p><b> gets(s3);</b></p><p> if(!strcmp(s3,s7)) </p><p> { printf("用戶名不能空格,謝謝!?。?quot;);</p><p> printf("用戶名不正確,請(qǐng)從新輸入。\n");</p><
42、;p> system("pause");</p><p> system("cls");</p><p><b> if(i==2)</b></p><p> { printf("\n\n\t\t\t用戶名不正確,按任意鍵退出。\n\n\n\t\t\t");
43、 </p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> continue;</b></p><p><b> }</b></p><p> for(j=0
44、;j<N;j++) </p><p><b> { </b></p><p> if(!strcmp(stu[j].name,s3))</p><p> { printf("用戶名正確\n");</p><p> strcpy(s1,stu[j].name);</p>&
45、lt;p> strcpy(s2,stu[j].secret);</p><p> system("cls");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b><
46、/p><p> if(!strcmp(s1,s3))</p><p> break; </p><p> printf("用戶名不正確,請(qǐng)從新輸入。\n");</p><p> system("pause");</p><p><b> if(i==2)&
47、lt;/b></p><p> { printf("用戶名和密碼不匹配,按任意鍵退出。\n");</p><p> system("pause");</p><p><b> exit(0);</b></p><p><b> } </b>&
48、lt;/p><p> system("cls");</p><p><b> }</b></p><p> for(i=0;i<3;i++)</p><p><b> {</b></p><p><b> pf();</b>
49、;</p><p> printf("\n\n\t 用戶登陸");</p><p> printf("\n\n用戶名正確\n");</p><p> printf("\n請(qǐng)輸入用戶密碼,你還有%d次機(jī)會(huì)。\n",3-i);</p><p> printf("密碼正確
50、,登陸成功時(shí),系統(tǒng)將自動(dòng)跳轉(zhuǎn)\n");</p><p><b> gets(s4);</b></p><p> if(!strcmp(s2,s4))</p><p> { system("cls");</p><p><b> break;</b></p
51、><p><b> }</b></p><p><b> else</b></p><p><b> if(i==2)</b></p><p> { system("cls");</p><p> printf("
52、\n\n\n\t\t\t用戶名和密碼不匹配,按任意鍵退出。\n\n\n\t\t\t");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p> {system(
53、"cls");</p><p> printf("輸入錯(cuò)誤,請(qǐng)從新輸入:\n");</p><p><b> }</b></p><p><b> }</b></p><p> for(i=0;;i++)</p><p><
54、;b> {</b></p><p><b> pf();</b></p><p> printf("\n\t\t ******************************\n");</p><p> printf("\t\t * 1.退出系統(tǒng)
55、 * \n");</p><p> printf("\t\t * * \n");</p><p> printf("\t\t * 2.進(jìn)入xxx導(dǎo)航系統(tǒng) * \n");</p><p> printf("\t\t
56、 * * \n");</p><p> printf("\t\t * 3.新增用戶信息 * \n");</p><p> printf("\t\t * * \n");</p>
57、<p> printf("\t\t * 0.修改密碼 * \n");</p><p> printf("\t\t ******************************\n");</p><p> printf("請(qǐng)選擇功能\n");</p>
58、<p> scanf("%d",&a);</p><p><b> if(a==1)</b></p><p><b> {</b></p><p> printf("按任意鍵退出\n");</p><p><b> bre
59、ak;</b></p><p><b> }</b></p><p> getchar(); </p><p><b> if(a==2)</b></p><p><b> mainn();</b></p><p><b&g
60、t; if(a==3)</b></p><p> insert();</p><p><b> if(a==0)</b></p><p><b> {</b></p><p> for(i=0;i<3;i++)</p><p> { syst
61、em("cls");</p><p><b> pf(); </b></p><p> printf("\n\n請(qǐng)輸入原密碼\n");</p><p> printf("兩次不正確,系統(tǒng)將自動(dòng)返回,你還有%d次機(jī)會(huì)。\n",3-i-1);</p><p&
62、gt;<b> gets(s3);</b></p><p> if(!strcmp(s2,s3))</p><p> { for(i=0;;i++)</p><p> { printf("\n請(qǐng)輸入新密碼\n");</p><p><b> gets(s6);</b>
63、</p><p> printf("\n請(qǐng)?jiān)诖溯斎胄旅艽a\n");</p><p><b> gets(s5);</b></p><p> if(!strcmp(s5,s6))</p><p> { system("cls");</p><p>
64、printf("新密碼為: %s\n",s5);</p><p> strcpy(s2,s5);</p><p> strcpy(stu[j].secret, s2);</p><p> if((fp=fopen("用戶信息.txt","w"))==NULL)</p><p>
65、 { printf("\n保存失敗!"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> else</b></p><p> { for(i=0;i<N;i++)
66、</p><p> fprintf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret); </p><p><b> } </b></p><p> fclose(fp); </p><p> printf("新用戶信息已保存在用戶信息.txt中!\
67、n"); </p><p> system("pause"); </p><p> system("cls"); </p><p><b> break;</b></p><p><b> }</b></p><p>
68、<b> else</b></p><p> system("cls");</p><p> printf("\n\n兩次輸入密碼不一樣,密碼修改失敗\n");</p><p><b> break;</b></p><p><b> }&
69、lt;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf(&
70、quot;原密碼輸入錯(cuò)誤\n");</p><p> printf("請(qǐng)珍惜機(jī)會(huì),從新輸入。");</p><p> system("pause");</p><p> system("cls");</p><p><b> }</b><
71、/p><p><b> if(i==2)</b></p><p> { exit(0); }</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
72、<p><b> } </b></p><p> void insert()</p><p> { int i; </p><p><b> FILE *fp;</b></p><p><b> n++; </b></p>
73、<p> printf("\n\t\t輸入新插入用戶信息\n"); </p><p> printf("\n輸入新用戶名:"); </p><p> scanf("%s",stu[n].name); </p><p> fflush(stdin); //清空輸入緩沖區(qū),通常是為了確保不影響
74、后面的數(shù)據(jù)讀取 </p><p> printf("\n輸入新用戶密碼:");</p><p> scanf("%s",stu[n].secret);</p><p> if((fp=fopen("用戶信息.txt","w"))==NULL)</p><p>
75、; { printf("\n保存失敗!"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> else</b></p><p> { for(i=0;i<N;i++)
76、</p><p> fprintf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret); </p><p><b> } </b></p><p> fclose(fp); </p><p> printf("新用戶信息已保存在用戶信息.txt中!\
77、n"); </p><p> system("pause"); </p><p> system("cls");</p><p><b> }</b></p><p> void mainn() // 主函數(shù) </p><p> { in
78、t v0,v1,i;</p><p><b> char ck;</b></p><p> system("color 1b");</p><p> CreateUDN(NUM,16);</p><p><b> do</b></p><p>
79、{ ck=Menu();</p><p> switch(ck)</p><p><b> {</b></p><p><b> case'1':</b></p><p> system("cls");</p><p> intr
80、oduce();</p><p> printf("\n\n\t\t%-25s\n\n",G.vex[0].description);</p><p> getchar();</p><p> getchar();</p><p><b> break;</b></p><
81、p><b> case '2':</b></p><p><b> show();</b></p><p> getchar();</p><p> getchar();</p><p><b> break;</b></p>&l
82、t;p><b> case '3':</b></p><p> //PrintMGraph();</p><p> for(i=1;i<NUM;i++)</p><p><b> { </b></p><p> printf("\t\t%c\t\t(%
83、2d)%-20s%c\t\t\t",1,i,G.vex[i].sight,1); // 輸出景點(diǎn)列表 </p><p><b> }</b></p><p> printf("\n\n\t\t\t\t請(qǐng)按回車鍵繼續(xù)...\n");</p><p> getchar();</p><p>
84、; getchar();</p><p><b> break;</b></p><p><b> case '4':</b></p><p><b> search();</b></p><p><b> break;</b>
85、;</p><p><b> case '5':</b></p><p> system("cls");</p><p> for(i=1;i<NUM;i++)</p><p><b> { </b></p><p> pr
86、intf("\t\t%c\t\t(%2d)%-20s%c\t\t\t",1,i,G.vex[i].sight,1); // 輸出景點(diǎn)列表 </p><p><b> }</b></p><p> printf("\n\n\t\t\t請(qǐng)選擇起點(diǎn)景點(diǎn)(1~15):");</p><p> scanf(&
87、quot;%d",&v0);</p><p> printf("\t\t\t請(qǐng)選擇終點(diǎn)景點(diǎn)(1~15):");</p><p> scanf("%d",&v1);</p><p> ShortestPath(v0); // 計(jì)算兩個(gè)景點(diǎn)之間的最短路徑 </p><p>
88、 output(v0,v1); // 輸出結(jié)果 </p><p> printf("\n\n\t\t\t\t請(qǐng)按回車鍵繼續(xù)...\n");</p><p> getchar();</p><p> getchar();</p><p><b> break;</b></p>&l
89、t;p><b> }</b></p><p><b> }</b></p><p> while(ck!='6');</p><p> system("cls");</p><p><b> }</b></p>
90、<p> void show()</p><p> { printf("\t\t\t\t淮北師范大學(xué)平面圖\n\n\n\n");</p><p> printf("\t\t\t\t\t\t 圖書館\n");</p><p> printf("\t\t\t\t\t\t ┃ \n"
91、;);</p><p> printf("\t\t\t\t\t\t ┃ \n");</p><p> printf("\t\t\t\t\t\t ┃ \n");</p><p> printf("\t 學(xué)生三食堂━新階━科學(xué)講堂━━行政樓━━━┫\n"); </p>&
92、lt;p> printf("\t ┃\t\t\t\t ┃\t ┃\n"); </p><p> printf("\t 校醫(yī)院━━━━━━━━━━━━━四園廣場(chǎng)━┻━━━━校大門\n"); </p><p> printf("\t ┃\t\t\t\t ┃ \n"); </p&g
93、t;<p> printf("\t ┃\t\t\t\t ┃ \n");</p><p> printf("\t ┃\t\t\t\t ┃ \n");</p><p> printf("\t ┃\t\t\t\t ┃ \n");</p><p> p
94、rintf("\t ┃ ┏━綜合實(shí)驗(yàn)樓━━┓\t ┃\n");</p><p> printf("\t ┃\t ┃\t\t ┃ ┃ \n");</p><p> printf("\t 音樂樓━┫ \t 物電學(xué)院━┻━━主教學(xué)樓\n");</p>&l
95、t;p> printf("\t ┃\t ┃\t\t ┃ \t ┃ \n");</p><p> printf("\t ┃ ┗━生物樓━━━━┛\t\t ┃ \n");</p><p> printf("\t ┃ ┃\t\t\t ┃ \n&qu
96、ot;);</p><p> printf("\t ┃ ┃\t\t\t ┃ \n");</p><p> printf("\t 文 科 樓━━━━━━━━━━━━逸夫?qū)嶒?yàn)樓\n\n");</p><p><b> } </b></p>&l
97、t;p> char Menu() // 主菜單 //</p><p> { char c;</p><p><b> int flag;</b></p><p> system("cls");</p><p><b> do</b></p><
98、;p> { flag=1;</p><p><b> pingmu();</b></p><p> introduce(); </p><p> printf("\t\t * 1.學(xué)校簡(jiǎn)介 ┃\n\n"); &l
99、t;/p><p> printf("\t\t * 2.xxx校園平面簡(jiǎn)圖 ┃\n\n");</p><p> printf("\t\t * 3.顯示場(chǎng)所的編號(hào) ┃\n\n"); </p><p> printf("\t\t * 4.查看場(chǎng)所的具體信息 ┃\n\n"
100、); </p><p> printf("\t\t * 5.計(jì)算路徑長(zhǎng)度及找出最短路徑┃\n\n"); </p><p> printf("\t\t * 6.退出 ┃\n\n"); </p><
101、p> printf("\t\t****************************************************\n");</p><p> printf("\t\t\t\t請(qǐng)輸入您的選擇:");</p><p> scanf("%c",&c);</p><p>
102、 if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6')</p><p><b> flag=0;</b></p><p> } while(flag);</p><p><b> ret
103、urn c;</b></p><p><b> }</b></p><p> char SearchMenu() // 查詢子菜單 </p><p> { char c;</p><p><b> int flag;</b></p><p><b&
104、gt; do</b></p><p> { flag=1;</p><p> system("cls");</p><p><b> pingmu();</b></p><p> introduce();</p><p> printf("\
105、n\t\t*************************************\n");</p><p> printf("\t\t * ┃\n"); </p><p> printf("\t\t * 1、按照景點(diǎn)編號(hào)查詢 ┃\n"); </p>&
106、lt;p> printf("\t\t * 2、按照景點(diǎn)名稱查詢 ┃\n"); </p><p> printf("\t\t * 0、返回 ┃\n"); </p><p> printf("\t\t * ┃\n");
107、 </p><p> printf("\t\t *************************************\n");</p><p> printf("\t\t\t請(qǐng)輸入您的選擇:");</p><p> scanf("%c",&c);</p><p>
108、; if(c=='1'||c=='2'||c=='0')</p><p><b> flag=0;</b></p><p> } while(flag);</p><p><b> return c;</b></p><p><b>
109、; }</b></p><p> void search() // 查詢景點(diǎn)信息 </p><p> { int num;</p><p><b> int i;</b></p><p><b> char c;</b></p><p> char
110、name[20];</p><p><b> do</b></p><p> { system("cls");</p><p> c=SearchMenu();</p><p> switch (c)</p><p><b> {</b><
111、;/p><p> case '1': </p><p> system("cls");</p><p> introduce();</p><p> for(i=1;i<NUM;i++)</p><p><b> { </b></p>
112、<p> printf("\t\t%c\t\t(%2d)%-20s%c\t\t\t",1,i,G.vex[i].sight,1); // 輸出景點(diǎn)列表 </p><p><b> }</b></p><p> printf("\n\n\t\t請(qǐng)輸入您要查找的景點(diǎn)編號(hào):");</p><p>
113、; scanf("%d",&num);</p><p> for(i=0;i<NUM;i++)</p><p><b> {</b></p><p> if(num==G.vex[i].number)</p><p><b> {</b></p>
114、;<p> printf("\n\n\t\t\t您要查找景點(diǎn)信息如下:");</p><p> printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);</p><p> printf("\n\t\t\t按任回車返回...");</p><p&g
115、t; getchar();</p><p> getchar();</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(i==NUM)//只要上面
116、FOR循環(huán)執(zhí)行完畢,則i就是NUM</p><p><b> {</b></p><p> printf("\n\n\t\t\t沒有找到!");</p><p> printf("\n\n\t\t\t按回車鍵返回...");</p><p> getchar();</
117、p><p> getchar();</p><p><b> } break;</b></p><p><b> case '2':</b></p><p> system("cls");</p><p> introduce();&
118、lt;/p><p> printf("\n\n\t\t請(qǐng)輸入您要查找的景點(diǎn)名稱:");</p><p> scanf("%s",name);</p><p> for(i=1;i<NUM;i++)</p><p><b> {</b></p><p&g
119、t; if(!strcmp(name,G.vex[i].sight))</p><p><b> {</b></p><p> printf("\n\n\t\t\t您要查找景點(diǎn)信息如下:");</p><p> printf("\n\n\t\t\t%-25s\n\n",G.vex[i].descr
120、iption);</p><p> printf("\n\t\t\t按回車鍵返回...");</p><p> getchar();</p><p> getchar();</p><p><b> break;</b></p><p><b> }<
121、/b></p><p><b> }</b></p><p> if(i==NUM)//只要上面FOR循環(huán)執(zhí)行完畢,則i就是NUM</p><p><b> {</b></p><p> printf("\n\n\t\t\t沒有找到!");</p>&
122、lt;p> printf("\n\n\t\t\t按回車鍵返回...");</p><p> getchar();</p><p> getchar();</p><p><b> } break;</b></p><p><b> }</b></p>
123、<p> }while(c!='0');</p><p> getchar();</p><p><b> }</b></p><p> void CreateUDN(int v,int a) // 創(chuàng)建圖的函數(shù) </p><p> { int i,j;</p><
124、;p> G.vexnum=v; // 初始化結(jié)構(gòu)中的景點(diǎn)數(shù)和邊數(shù) </p><p> G.arcnum=a;</p><p> for(i=1;i<G.vexnum;++i) </p><p> G.vex[i].number=i; // 初始化每一個(gè)景點(diǎn)的編號(hào) </p><p> // 初始化每一個(gè)景點(diǎn)名及其景點(diǎn)描述
125、</p><p> G.vex[0].sight="學(xué)校簡(jiǎn)介";</p><p> G.vex[1].sight="校大門";</p><p> G.vex[2].sight="逸夫?qū)嶒?yàn)樓";</p><p> G.vex[3].sight="主教學(xué)樓";
126、</p><p> G.vex[4].sight="圖書館";</p><p> G.vex[5].sight="物電學(xué)院";</p><p> G.vex[6].sight="四園廣場(chǎng)";</p><p> G.vex[7].sight="行政樓";&l
127、t;/p><p> G.vex[8].sight="文科大樓";</p><p> G.vex[9].sight="生物樓";</p><p> G.vex[10].sight="綜合實(shí)驗(yàn)樓";</p><p> G.vex[11].sight="科學(xué)講堂";
128、</p><p> G.vex[12].sight="音樂樓";</p><p> G.vex[13].sight="校醫(yī)院";</p><p> G.vex[14].sight="新階";</p><p> G.vex[15].sight="學(xué)生三食堂"
129、;</p><p> // 這里把所有的邊假定為32767,含義是這兩個(gè)景點(diǎn)之間是不可到達(dá) </p><p> for(i=1;i<G.vexnum;++i)</p><p><b> {</b></p><p> for(j=1;j<G.vexnum;++j) </p><p&g
130、t;<b> {</b></p><p> G.arcs[i][j].adj=Max;</p><p> G.arcs[i][j].info=NULL;</p><p><b> }</b></p><p><b> }</b></p><p>
131、; //下邊是可直接到達(dá)的景點(diǎn)間的距離,由于兩個(gè)景點(diǎn)間距離是互相的,</p><p> // 所以要對(duì)圖中對(duì)稱的邊同時(shí)賦值。</p><p> G.arcs[1][4].adj=G.arcs[4][1].adj=1000;</p><p> G.arcs[1][6].adj=G.arcs[6][1].adj=600; </p>
132、;<p> G.arcs[2][3].adj=G.arcs[3][2].adj=400;</p><p> G.arcs[2][8].adj=G.arcs[8][2].adj=1200;</p><p> G.arcs[3][5].adj=G.arcs[5][3].adj=400;</p><p> G.arcs[3][6].adj=G.arc
133、s[6][3].adj=900;</p><p> G.arcs[4][6].adj=G.arcs[6][4].adj=700;</p><p> G.arcs[4][7].adj=G.arcs[7][4].adj=700;</p><p> G.arcs[5][6].adj=G.arcs[6][5].adj=800;</p><p>
134、 G.arcs[5][9].adj=G.arcs[9][5].adj=800; </p><p> G.arcs[5][10].adj=G.arcs[10][5].adj=800;</p><p> G.arcs[6][7].adj=G.arcs[7][6].adj=100;</p><p> G.arcs[7][11].adj=G.arcs[11][
135、7].adj=200;</p><p> G.arcs[8][9].adj=G.arcs[9][8].adj=200;</p><p> G.arcs[8][12].adj=G.arcs[12][8].adj=400;</p><p> G.arcs[9][10].adj=G.arcs[10][9].adj=700;</p><p>
136、 G.arcs[9][12].adj=G.arcs[12][9].adj=500; </p><p> G.arcs[11][14].adj=G.arcs[14][11].adj=100;</p><p> G.arcs[12][13].adj=G.arcs[13][12].adj=600;</p><p> G.arcs[13][15].adj=G
137、.arcs[15][13].adj=100;</p><p> G.arcs[14][15].adj=G.arcs[15][14].adj=100;</p><p><b> }</b></p><p> void introduce() // 介紹函數(shù) </p><p><b> { int i;&
138、lt;/b></p><p> for(i=1;i<=NUM;i++)</p><p><b> { </b></p><p> G.vex[0].description=" ▲ 淮北師范大學(xué)位于國(guó)家能源基地、國(guó)家園林城市安徽省淮北市,\n\n\t\t是安徽具有較長(zhǎng)本科辦學(xué)歷史的一所普通高等師范院校.\n\n\t\
139、t國(guó)家歷史文化名城——淮北,校園依山流韻、芳林疊翠、風(fēng)景美麗。\n\n\t\t經(jīng)過半個(gè)多世紀(jì)的發(fā)展,學(xué)?,F(xiàn)已形成以教師教育為主要辦學(xué)特色\n\n\t\t教、文、管、理、經(jīng)等多學(xué)科協(xié)調(diào)發(fā)展的格局,是安徽省培養(yǎng)基礎(chǔ)教育\n\n\t\t師資和其他高級(jí)應(yīng)用型人才的重要基地.\n\n\t\t積極擴(kuò)大對(duì)外交流與合作,學(xué)術(shù)交流日趨頻繁\n\n\t\t下面幾點(diǎn)是淮北師范大學(xué)的辦學(xué)特色:\n\n\t\t辦學(xué)歷史較為悠久\n\n\t\t學(xué)科專業(yè)較為齊全\n
140、\n\t\t師資隊(duì)伍素質(zhì)優(yōu)良\n\n\t\t教學(xué)成果較為豐碩\n\n\t\t科研水平不斷提高\(yùn)n\n\t\t校園文化豐富活躍\n\n\t\t人才培養(yǎng)成效顯著\n\n\t\t合作交流日趨頻繁\n\n\t\t";</p><p> G.vex[1].description="\t▲ 學(xué)校大門,對(duì)面是天象校區(qū)";</p><p> G.vex[2].descri
141、ption="\t▲ 逸夫?qū)嶒?yàn)大樓,坐落在淮北師范大學(xué)南門的邵逸夫?qū)嶒?yàn)大樓,\n\t是一座嶄新的現(xiàn)代化實(shí)驗(yàn)大樓。\n\n\t\t";</p><p> G.vex[3].description="\t▲ 四園廣場(chǎng)為學(xué)校舉行大型活動(dòng)的主要場(chǎng)所,位于行政大樓的下面,\n\t學(xué)生作品會(huì)展中心,學(xué)習(xí)活動(dòng)之地\n\n\t\t";</p><p> G.ve
142、x[4].description="\t▲ 圖書館為同學(xué)們閱讀自習(xí)的不二之選,\n\t南樓設(shè)有自習(xí)室,北樓多為電子閱讀室\n\n\t\t";</p><p> G.vex[5].description="\t▲ 文科大樓,分為文南和文北。文南主要為多媒體教室。\n\t文北則是大多數(shù)熱愛自習(xí)的同學(xué)的理想場(chǎng)所,那里學(xué)習(xí)氣氛濃厚。\n\n\t\t";</p>&l
143、t;p> G.vex[6].description="\t▲ 科學(xué)講堂,簡(jiǎn)稱科講,半圓形狀的兩層建筑,全部配備有多媒體。\n\n\t\t";</p><p> G.vex[7].description="\t▲ 行政樓,教育交流中心,基本位于學(xué)校心臟位置,內(nèi)部多為各科處室,會(huì)議室。\n\t指揮我校各項(xiàng)工作正常運(yùn)行,其作用可想而知啦!\n\n\t\t";</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園導(dǎo)航系統(tǒng)課程設(shè)計(jì)報(bào)告
- 校園導(dǎo)航系統(tǒng)課程設(shè)計(jì)
- 算法課程設(shè)計(jì)--校園導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)---算法及分析課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 校園導(dǎo)航系統(tǒng)---算法與分析課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)導(dǎo)航系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---交通模擬導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)需求分析
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—校園導(dǎo)航問題報(bào)告
- 算法課程設(shè)計(jì)—校園導(dǎo)航問題
- 基于qt的校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)報(bào)告
- android校園地圖導(dǎo)航系統(tǒng)
- 校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論