




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
個(gè)人收集整理 僅供參考學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告(2013--2014學(xué)年第1學(xué)期)題目:校園導(dǎo)航系統(tǒng)學(xué)號(hào):111608020116姓名:胡鵬指導(dǎo)教師:方瑞英信息科學(xué)與工程系1/40個(gè)人收集整理 僅供參考學(xué)習(xí)目錄1需求分析3b5E2RGbCAP1.1問題分析3p1EanqFDPw1.2基本要求 3DXDiTa9E3d2概要設(shè)計(jì)4RTCrpUDGiT2.1主界面設(shè)計(jì),45PCzVD7HxA2.2存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)4jLBHrnAILg2.3系統(tǒng)功能模塊設(shè)計(jì) 5xHAQX74J0X3模塊設(shè)計(jì)6LDAYtRyKfE3.1模塊設(shè)計(jì) 6Zzz6ZB2Ltk3.2系統(tǒng)子程序及功能設(shè)計(jì) 6dvzfvkwMI14詳細(xì)設(shè)計(jì)7rqyn14ZNXI4.1數(shù)據(jù)類型定義7EmxvxOtOco4.2各個(gè)模塊地程序流程圖 8SixE2yXPq54.3關(guān)鍵代碼分析說明 106ewMyirQFL5調(diào)試分析和測(cè)試結(jié)果 12kavU42VRUs6心得體會(huì) 18y6v3ALoS892/401.2基本要求首先是對(duì)校園整個(gè)地平面圖輸出;存儲(chǔ)景點(diǎn)信息采用結(jié)構(gòu)體;對(duì)各個(gè)景點(diǎn)用字母代替,字母組成圖,通過對(duì)圖地操作,求出制定最短路徑,并且對(duì)圖地整個(gè)遍歷地操作.eUts8ZQVRd3/40.M2ub6vSTnP個(gè)人收集整理 僅供參考學(xué)習(xí)需求分析河南理工大學(xué)萬方科技學(xué)院緊跟龍子湖校園開發(fā)工程地歷史機(jī)遇,踐行“厚德、博學(xué)、篤行、創(chuàng)新”校訓(xùn),建設(shè)出一座美麗地校園 .對(duì)河南理工大學(xué)萬方科技學(xué)院校園導(dǎo)航系統(tǒng)地模擬,設(shè)計(jì)一個(gè)校園導(dǎo)航程序,為來訪地客人提供各種信心查詢服務(wù)網(wǎng)1.1問題分析為此通過對(duì)《數(shù)據(jù)結(jié)構(gòu)》這一課程地應(yīng)用,用圖地模型對(duì)學(xué)校景點(diǎn)抽象.用鄰接矩陣存儲(chǔ)方法和狄克斯特拉算法及圖地遍歷實(shí)現(xiàn)對(duì)校園導(dǎo)游系統(tǒng)地模擬 .此系統(tǒng)七個(gè)功能:瀏覽學(xué)校景點(diǎn)、查看單個(gè)景點(diǎn)信息、查看校園地圖、導(dǎo)游推薦、查兩景點(diǎn)最短路線、查兩景點(diǎn)所有景點(diǎn)、退出系統(tǒng).0YujCfmUCw個(gè)人收集整理 僅供參考學(xué)習(xí)概要設(shè)計(jì)2.1主界面設(shè)計(jì),圖2-1 主控界面2.2存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)圖2-2 鄰接矩陣 圖2-3 校園平面圖首先,由LOC-VERTEX(G,v)找到v在圖G中地位置,即v在一維數(shù)4/40個(gè)人收集整理 僅供參考學(xué)習(xí)組vexs中地序號(hào)i,則二維數(shù)組arcs中第i行上第一個(gè)adj域地值為“1”地分量所在列號(hào)j,便為v地第一個(gè)臨界點(diǎn)在圖G中地位置.通知,下一個(gè)鄰接點(diǎn)在圖 G中地位置便為 j列之后第一個(gè) adj地值為“1”地分量所在列號(hào).sQsAEJkW5T2.3系統(tǒng)功能模塊設(shè)計(jì)我設(shè)計(jì)有以下幾個(gè)模塊:1)身份驗(yàn)證(用戶名和密碼驗(yàn)證)2)校園導(dǎo)航系統(tǒng)地主界面輸出;3)構(gòu)造無向圖采用數(shù)組表示法(鄰接矩陣)存儲(chǔ);4)學(xué)校景點(diǎn)查詢模塊;5)學(xué)校景點(diǎn)平面圖輸出模塊;6)計(jì)算最短路徑算法地實(shí)現(xiàn)模塊;5/40個(gè)人收集整理 僅供參考學(xué)習(xí)模塊設(shè)計(jì)3.1模塊設(shè)計(jì)登陸界面是否正確導(dǎo)航主界面學(xué)校簡(jiǎn)介 景點(diǎn)列表 查詢景點(diǎn) 最短路徑圖3-1 校園導(dǎo)航系統(tǒng)流程圖3.2系統(tǒng)子程序及功能設(shè)計(jì)(1)charMenu()// 主菜單(2)charSearchMenu()// 查詢子菜單(3)voidsearch()// 查詢景點(diǎn)信息(4)voidCreateUDN// 采用數(shù)組(鄰接矩陣)表示法,構(gòu)造無向圖 G6/40個(gè)人收集整理 僅供參考學(xué)習(xí)(5)voidintroduce()// 介紹函數(shù)(6)voidpingmu()// 屏幕輸出函數(shù)(7)voidShortestPath// 迪杰斯特拉算法最短路徑函數(shù)(8)voidoutput// 輸出函數(shù)3.3函數(shù)主要調(diào)用關(guān)系圖MenuSearch introduc pingmu Shortest CreateUDsearch outputGMsIasNXkA圖3-2 主要函數(shù)調(diào)用關(guān)系圖詳細(xì)設(shè)計(jì)4.1數(shù)據(jù)類型定義(1)整型類型: adj;n;P[NUM][NUM];D[NUM];i=0,a,j;i;v0,v1,i;flag;TIrRGchYzg7/40個(gè)人收集整理 僅供參考學(xué)習(xí)i,j;v,w,i,t;a,b,c,d,q=0;final[NUM];字符串類型:name[20];c;ck;secret[20];sight;description;info;7EqZcWLZNX4.2各個(gè)模塊地程序流程圖查詢search否1-15 是否是查詢編號(hào) 查詢名稱圖4-1 查詢模塊流程圖8/40個(gè)人收集整理 僅供參考學(xué)習(xí)開始數(shù)組edeges[MAXEDGE] 邊集數(shù)組;數(shù)組parent[MAXVEX] 頂點(diǎn)數(shù)組;遍歷頂點(diǎn)設(shè)置所有頂點(diǎn)parent[i]=0Int1=01<edges.Count設(shè)置n為edges[i].higen頂點(diǎn)地尾部下表設(shè)置m為edges[i].end頂點(diǎn)尾部下表I++;lzq7IGf02E
結(jié)束N<>m?Parent[n]=m輸出開始頂點(diǎn)Edges[i].start,結(jié)束頂點(diǎn)Edges[i].end,邊為Edges[i]9/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖4-2 迪杰斯特拉算法流程4.3關(guān)鍵代碼分析說明voidCreateUDN(intv,inta)// 采用數(shù)組(鄰接矩陣)表示法,構(gòu)造無向圖G.zvpgeqJ1hk{inti,j;G.vexnum=v;// 初始化結(jié)構(gòu)中地景點(diǎn)數(shù)! !!G.arcnum=a;//初始化結(jié)構(gòu)中地邊數(shù)?。?!for(i=1;i<G.vexnum;++i)G.vex[i].number=i;// 初始化每一個(gè)景點(diǎn)地編號(hào)初始化每一個(gè)景點(diǎn)名及其景點(diǎn)描述G.vex[0].sight="學(xué)校簡(jiǎn)介";G.vex[1].sight="校大門";G.vex[2].sight="三號(hào)樓學(xué)樓";G.vex[3].sight="一號(hào)教學(xué)樓";G.vex[4].sight="行政樓";G.vex[5].sight="實(shí)驗(yàn)樓";G.vex[6].sight="伯苓廣場(chǎng)";G.vex[7].sight="秀英圖書館";G.vex[8].sight="藝術(shù)樓";G.vex[9].sight="一號(hào)食堂";G.vex[10].sight="操場(chǎng)";G.vex[11].sight="西區(qū)宿舍樓";G.vex[12].sight="二號(hào)食堂";G.vex[13].sight="籃球場(chǎng)";G.vex[14].sight="力功體育館";G.vex[15].sight="東區(qū)宿舍樓";這里把所有地邊假定為32767(2^32次方),含義是這兩個(gè)景點(diǎn)之間是不可到達(dá).for(i=1;i<G.vexnum;++i){for(j=1;j<G.vexnum;++j){10/40個(gè)人收集整理 僅供參考學(xué)習(xí)G.arcs[i][j].adj=Max;G.arcs[i][j].info=NULL;}}下邊是可直接到達(dá)地景點(diǎn)間地距離,由于兩個(gè)景點(diǎn)間距離是互相地,所以要對(duì)圖中對(duì)稱地邊同時(shí)賦值.G.arcs[1][2].adj=G.arcs[2][1].adj=200;G.arcs[1][3].adj=G.arcs[3][1].adj=200;G.arcs[1][10].adj=G.arcs[10][1].adj=1000;G.arcs[1][13].adj=G.arcs[13][1].adj=1600;G.arcs[2][3].adj=G.arcs[3][2].adj=400;G.arcs[2][6].adj=G.arcs[6][2].adj=100;G.arcs[3][4].adj=G.arcs[4][3].adj=100;G.arcs[3][7].adj=G.arcs[7][3].adj=200;G.arcs[4][7].adj=G.arcs[7][4].adj=300;G.arcs[5][6].adj=G.arcs[6][5].adj=60;G.arcs[6][7].adj=G.arcs[7][6].adj=200;G.arcs[6][8].adj=G.arcs[8][6].adj=100;G.arcs[7][10].adj=G.arcs[10][7].adj=300;G.arcs[7][11].adj=G.arcs[11][7].adj=200;G.arcs[8][10].adj=G.arcs[10][8].adj=200;G.arcs[9][10].adj=G.arcs[10][9].adj=100;G.arcs[9][12].adj=G.arcs[12][9].adj=200;G.arcs[10][11].adj=G.arcs[11][10].adj=100;G.arcs[10][13].adj=G.arcs[13][10].adj=600;G.arcs[11][14].adj=G.arcs[14][11].adj=200;G.arcs[12][13].adj=G.arcs[13][12].adj=100;G.arcs[13][14].adj=G.arcs[14][13].adj=100;G.arcs[14][15].adj=G.arcs[15][14].adj=100;}該模塊是對(duì)圖地建立及使用鄰接矩陣存儲(chǔ)頂點(diǎn)信息以及權(quán)值,而鄰接矩陣特點(diǎn)是:鄰接矩陣來表示一個(gè)具有 n個(gè)頂點(diǎn)地有向圖時(shí)需要 n^2個(gè)單元來存儲(chǔ)鄰接矩陣;對(duì)有 n個(gè)頂點(diǎn)地?zé)o向圖則只存入上(下)三角陣中剔除了左上右下對(duì)角線上地 0 元素后剩余地元素,故只需1+2+...+(n-1)=n(n-1)/2 個(gè)單元.NrpoJac3v111/40個(gè)人收集整理 僅供參考學(xué)習(xí)調(diào)試分析和測(cè)試結(jié)果(1) 先是進(jìn)入身份驗(yàn)證界面,如圖所示 5-1圖5-1 身份驗(yàn)證界面(2) 驗(yàn)證成功后進(jìn)入副界面,如圖所示 5-212/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖5-2身份驗(yàn)證成功界面3)輸入數(shù)字2,進(jìn)入萬科大導(dǎo)航系統(tǒng)主界面,如圖所示5-3圖5-3萬科大導(dǎo)航系統(tǒng)主界面4)輸入數(shù)字1,進(jìn)入萬科大學(xué)校簡(jiǎn)介,如圖所示5-413/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖5-4萬科大學(xué)校簡(jiǎn)介界面5)退出(ENTER),輸入數(shù)字2,進(jìn)入學(xué)校平面展示,如圖所示5-5圖5-5學(xué)校平面展示界面6)退出(ENTER),輸入數(shù)字3,進(jìn)入景點(diǎn)展示界面,如圖所示5-614/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖5-6景點(diǎn)展示界面7)退出(ENTER),輸入數(shù)字4,進(jìn)入景點(diǎn)查詢界面,如圖所示5-7圖5-7景點(diǎn)查詢界面8)輸入數(shù)字1,進(jìn)入按景點(diǎn)編號(hào)查詢,如圖所示5-815/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖5-8景點(diǎn)編號(hào)查詢(9)輸入1-15任何數(shù)字查看景點(diǎn)介紹,如圖所示5-9圖5-9查看景點(diǎn)介紹界面(數(shù)字)10)按回車鍵返回,輸入數(shù)字2進(jìn)入按景點(diǎn)名稱進(jìn)行查詢,如圖所示5-1016/40個(gè)人收集整理 僅供參考學(xué)習(xí)圖5-10 景點(diǎn)名稱進(jìn)行查詢界面(11)按回車鍵返回到主界面,輸入數(shù)字5進(jìn)入計(jì)算最短路徑算法查詢,如圖所示5-11圖5-11 最短路徑算法查詢界面17/40個(gè)人收集整理 僅供參考學(xué)習(xí)心得體會(huì)通過此次設(shè)計(jì),明白了很多.首先要從設(shè)計(jì)地思路入手, 思路決定出路,一個(gè)好地算法可以使工作量簡(jiǎn)化達(dá)到事半功倍地目地 .平時(shí)生活更應(yīng)該留心觀察,多去想,多去做,好地程序是從歷練中做出來地 .其次,應(yīng)該多去交流,去查閱資料,一個(gè)程序地產(chǎn)生不是那么容易地,更應(yīng)該知難而進(jìn),積極進(jìn)取 .1nowfTG4KI參考文獻(xiàn)(至少兩個(gè))《數(shù)據(jù)結(jié)構(gòu)》(C語言版)嚴(yán)蔚敏吳偉民編《C語言程序設(shè)計(jì)教程》楊路明編[3]《java開發(fā)實(shí)戰(zhàn)經(jīng)典》李興華編[4]《c語言程序設(shè)計(jì)》(第四版)譚浩強(qiáng)編附:源程序(可運(yùn)行無誤地代碼)//--------------------------------------------------------------- fjnFLDa5Zo校園導(dǎo)航系統(tǒng)校園導(dǎo)航系統(tǒng)包括:學(xué)校簡(jiǎn)介,場(chǎng)所信息,計(jì)算路徑所使用地文件:CampusNavigation.cpp,用戶信息.text程序編寫人員:胡鵬//編寫程序時(shí)間:2013年10月30日20:56:51//修改程序時(shí)間:2013年11月30日14:38:32//代碼規(guī)范時(shí)間:2013年12月10日16:38:55//---------------------------------------------------------------tfnNhnE6e5預(yù)處理命令#include<stdio.h>#include<stdlib.h>//使用system函數(shù)#include<conio.h>#include<string.h>voidinsert();18/40個(gè)人收集整理 僅供參考學(xué)習(xí)#defineN10intn;#defineMax32767#defineNUM16typedefstructArcCell{intadj;//相鄰接地景點(diǎn)之間地路程char*info;}ArcCell;// 定義邊地類型typedefstructVertexType{intnumber;// 景點(diǎn)編號(hào)char*sight;// 景點(diǎn)名稱char*description;// 景點(diǎn)描述}VertexType;//定義頂點(diǎn)地類型typedefstruct{VertexTypevex[NUM];// 圖中地頂點(diǎn),即為景點(diǎn)ArcCellarcs[NUM][NUM];//圖中地邊,即為景點(diǎn)間地距離intvexnum,arcnum;//頂點(diǎn)數(shù),邊數(shù)}MGraph;// 定義圖地類型MGraphG;// 把圖定義為全局變量intP[NUM][NUM];//longintD[NUM];// 輔助變量存儲(chǔ)最短路徑長度voidCreateUDN(intv,inta);// 創(chuàng)建圖地函數(shù)voidpingmu();//屏幕輸出函數(shù)voidintroduce();//輸入介紹內(nèi)容,但不輸出voidShortestPath(intnum);//最短路徑函數(shù)voidoutput(intsight1,intsight2);// 輸出函數(shù)charMenu();// 主菜單voidsearch();// 查詢景點(diǎn)信息charSearchMenu();//查詢子菜單voidNextValue(int);voiddisplay();// 顯示遍歷結(jié)果19/40個(gè)人收集整理 僅供參考學(xué)習(xí)voidshow();//顯示校園平面圖voidmainn();//--------------------- 初始系統(tǒng)------------------structstudent{charname[20];charsecret[20];};structstudentstu[N];voidpf(){printf("\n\n\t\t******信息工程與科學(xué)系數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)******");printf("\n\n\n\t\t--------------------------------------");HbmVN777sLprintf("\n\t\t|\t名稱:萬科大校園導(dǎo)航系統(tǒng)\t|");printf("\n\t\t|\t姓名:胡鵬\t|");printf("\n\t\t|\t班級(jí):1101網(wǎng)工\t|");printf("\n\t\t|\t指導(dǎo)老師:方瑞英\t|");printf("\n\t\t|\t 作者: 萬科大校園 \t|");printf("\n\t\t --------------------------------------"); V7l4jRB8Hs}//\t表示地是向后空出 8個(gè)空格,可以使自己輸出字符更規(guī)范 .//------------------------身份驗(yàn)證------------------------------83lcPA59W9voidmain()//主函數(shù){chars2[10],s3[10],s4[10],s5[10],s6[10],s1[10],s7[10]="\0";mZkklkzaaPinti=0,a,j;FILE*fp;//定義地fp是指向FILE類型結(jié)構(gòu)體地指針.可以使他指向某個(gè)文件地結(jié)構(gòu)體變量/,從而通過該結(jié)構(gòu)體變量中地文件信息能夠訪問該文件.AVktR43bpwif((fp=fopen("用戶信息.txt","r"))==NULL)//“r”為輸出打開一個(gè)文本文檔ORjBnOwcEd20/40個(gè)人收集整理 僅供參考學(xué)習(xí){printf("找不到 用戶信息.txt文件!\n");system("pause");//從程序里調(diào)用“ pause”命令.exit(0);}else{fscanf(fp,"\t%d\n",&n);//fscanf( 文件指針,格式字符串,輸入文件表列 )for(i=0;i<N;i++)fscanf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret);}//從一個(gè)流中執(zhí)行格式化輸入,fscanf遇到空格和換行時(shí)結(jié)束,注意空格時(shí)也結(jié)束.//fscanf(文件指針,格式字符串,輸入列表 );fclose(fp);printf("\n\n\n\n\n\n\n\n\t\t 保存在用戶信息 .txt文件中地所有信息已經(jīng)讀入程序中!\n\n\t\t\t");2MiJTy0dTTsystem("pause");system("cls");for(i=0;i<3;i++){pf();printf("\n\n\t\t 用戶登陸");printf("請(qǐng)輸入用戶名,你還有 %d次機(jī)會(huì).\n\t\t\t",3-i);gets(s3);if(!strcmp(s3,s7))//strcmp比較兩個(gè)字符串地大小{printf("用戶名不能空格,謝謝?。?!");printf("用戶名不正確,請(qǐng)從新輸入.\n");system("pause");//從程序里調(diào)用“pause”命令.system("cls");//從程序里調(diào)用“ clear”命令.if(i==2){printf("\n\n\t\t\t用戶名不正確,按任意鍵退出.\n\n\n\t\t\t");exit(0);}continue;}for(j=0;j<N;j++)21/40個(gè)人收集整理 僅供參考學(xué)習(xí){if(!strcmp(stu[j].name,s3)){printf("用戶名正確\n");strcpy(s1,stu[j].name);strcpy(s2,stu[j].secret);system("cls");//從程序里調(diào)用“ clear”命令.break;}}if(!strcmp(s1,s3))break;printf("用戶名不正確,請(qǐng)從新輸入 .\n");system("pause");//從程序里調(diào)用“ pause”命令.if(i==2){printf("用戶名和密碼不匹配,按任意鍵退出 .\n");system("pause");//從程序里調(diào)用“ pause”命令.exit(0);}system("cls");//從程序里調(diào)用“ clear”命令.}for(i=0;i<3;i++){pf();printf("\n\n\t 用戶登陸");printf("\n\n用戶名正確\n");printf("\n請(qǐng)輸入用戶密碼,你還有 %d次機(jī)會(huì).\n",3-i);printf("密碼正確,登陸成功時(shí),系統(tǒng)將自動(dòng)跳轉(zhuǎn) \n");gets(s4);if(!strcmp(s2,s4)){system("cls");//從程序里調(diào)用“ clear”命令.break;22/40個(gè)人收集整理 僅供參考學(xué)習(xí)}Elseif(i==2){system("cls");//從程序里調(diào)用“ clear”命令.printf("\n\n\n\t\t\t 用戶名和密碼不匹配,按任意鍵退出.\n\n\n\t\t\t");gIiSpiue7Aexit(0);}else{system("cls");//從程序里調(diào)用“ clear”命令.printf("輸入錯(cuò)誤,請(qǐng)從新輸入 :\n");}}for(i=0;;i++){pf();printf("\n\t\t***********************************\n"); uEh0U1Yfmhprintf("\t\t*1.退出系統(tǒng)*\n");printf("\t\t**\n");IAg9qLsgBXprintf("\t\t*2.進(jìn)入萬科大導(dǎo)航系統(tǒng)*\n");printf("\t\t**\n");WwghWvVhPEprintf("\t\t*3.新增用戶信息*\n");printf("\t\t**\n");asfpsfpi4kprintf("\t\t*0.修改密碼*\n");printf("\t\t********************************\n");ooeyYZTjj1printf("請(qǐng)選擇功能\n");scanf("%d",&a);if(a==1){printf("按任意鍵退出\n");break;}getchar();if(a==2)23/40個(gè)人收集整理 僅供參考學(xué)習(xí)mainn();if(a==3)insert();if(a==0){for(i=0;i<3;i++){system("cls");//從程序里調(diào)用“ clear”命令.pf();printf("\n\n請(qǐng)輸入原密碼\n");printf("兩次不正確,系統(tǒng)將自動(dòng)返回,你還有%d次機(jī)會(huì).\n",3-i-1);gets(s3);if(!strcmp(s2,s3)){for(i=0;;i++){printf("\n請(qǐng)輸入新密碼\n");gets(s6);printf("\n請(qǐng)?jiān)诖溯斎胄旅艽a \n");gets(s5);if(!strcmp(s5,s6)){system("cls");//從程序里調(diào)用“ clear”命令.printf("新密碼為:%s\n",s5);strcpy(s2,s5);strcpy(stu[j].secret,s2);if((fp=fopen("用戶信息.txt","w"))==NULL){printf("\n保存失敗!");exit(0);}else{for(i=0;i<N;i++)fprintf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret); BkeGuInkxI}fclose(fp);24/40個(gè)人收集整理 僅供參考學(xué)習(xí)printf("新用戶信息已保存在用戶信息 .txt中!\n");system("pause");//從程序里調(diào)用“ pause”命令.system("cls");//從程序里調(diào)用“ clear”命令.break;}elsesystem("cls");//從程序里調(diào)用“ clear”命令.printf("\n\n兩次輸入密碼不一樣,密碼修改失敗 \n");break;}break;}else{printf("原密碼輸入錯(cuò)誤 \n");printf("請(qǐng)珍惜機(jī)會(huì),從新輸入 .");system("pause");//從程序里調(diào)用“ pause”命令.system("cls");//從程序里調(diào)用“ clear”命令.}if(i==2){exit(0);//已經(jīng)是第三次了,哈哈!}}}}}voidinsert(){inti;FILE*fp;n++;printf("\n\t\t輸入新插入用戶信息\n");printf("\n輸入新用戶名:");scanf("%s",stu[n].name);fflush(stdin);//清空輸入緩沖區(qū),通常是為了確保不影響后面地?cái)?shù)據(jù)讀取printf("\n輸入新用戶密碼:");25/40個(gè)人收集整理 僅供參考學(xué)習(xí)scanf("%s",stu[n].secret);if((fp=fopen("用戶信息 .txt","w"))==NULL)// “w”為輸出打開一個(gè)文本文檔PgdO0sRlMo{printf("\n保存失敗!");exit(0);}else{fprintf(fp,"\t%d\n",n);//fprintf( 文件指針,格式字符串,輸出文件表列)3cdXwckm15for(i=0;i<N;i++)fprintf(fp,"\t%s\t%s\n",stu[i].name,stu[i].secret); h8c52WOngM}fclose(fp);printf("新用戶信息已保存在用戶信息 .txt中!\n");system("pause");system("cls");}voidmainn()// 萬科大導(dǎo)航系統(tǒng)地主函數(shù){intv0,v1,i;charck;system("color1b");//修改控制臺(tái)地顏色信息CreateUDN(NUM,16);do{ck=Menu();switch(ck){case'1':system("cls");introduce();printf("\n\n\t\t%-25s\n\n",G.vex[0].description);//進(jìn)入學(xué)校簡(jiǎn)介 v4bdyGiousgetchar();getchar();26/40個(gè)人收集整理 僅供參考學(xué)習(xí)break;case'2':show();//學(xué)校平面圖getchar();getchar();break;case'3':for(i=1;i<NUM;i++){printf("%c\t\t(%2d)%s%c\n",1,i,G .vex[i].sight,1); // 輸出景點(diǎn)列表J0bm4qMpJ9}printf("\n\n\t\t\t\t 請(qǐng)按回車鍵繼續(xù) ...\n");getchar();getchar();break;case'4':search();break;case'5':system("cls");for(i=1;i<NUM;i++){printf("\t\t%c\t\t(%2d)%-20s%c\t\t\t",1,i,G .vex[i].sight,1); //輸出景點(diǎn)列表XVauA9grYP}printf("\n\n\t\t\t請(qǐng)選擇起點(diǎn)景點(diǎn)(1~15):");scanf("%d",&v0);printf("\t\t\t請(qǐng)選擇終點(diǎn)景點(diǎn)(1~15):");scanf("%d",&v1);ShortestPath(v0);//計(jì)算兩個(gè)景點(diǎn)之間地最短路徑output(v0,v1);// 輸出結(jié)果printf("\n\n\t\t\t\t 請(qǐng)按回車鍵繼續(xù) ...\n");getchar();getchar();break;27/40個(gè)人收集整理 僅供參考學(xué)習(xí)}}while(ck!='6');system("cls");}voidshow(){ printf("******************************* 萬 科 大 大 學(xué) 平 面 圖********************************\n"); bR9C6TJscwprintf(" 實(shí) 驗(yàn) 樓\n");pN9LBDdtrdprintf(" ┃\n");DJ8T7nHuGTprintf(" ┃\n");QF81D7bvUAprintf(" 三號(hào)教學(xué)樓 伯苓廣場(chǎng)━━━藝術(shù)樓 一號(hào)食堂二號(hào)食堂 \n");4B7a9QFw9hprintf(" ┃┃┃┃ \n");printf(" ┃┃┃┃ \n");printf(" 校大門━━━━━━━━━━━━━━━━━ 西區(qū)宿舍樓━━━━━━━━東區(qū)宿舍樓 \n");ix6iFA8xoXprintf(" ┃┃┃┃ \n");printf(" 一號(hào)教學(xué)樓 秀英圖 書館 ┃┃\n");wt6qbkCyDEprintf(" ┃┃┃ \n");printf(" ┃ 操場(chǎng)籃球場(chǎng) \n");Kp5zH46zRkprintf(" ┃┃ \n");printf(" 行 政 樓力功體育館 \n");Yl4HdOAA61}charMenu()// 主菜單 //{charc;intflag;system("cls");28/40個(gè)人收集整理 僅供參考學(xué)習(xí)do{flag=1;pingmu();introduce();printf("\t\t*1.學(xué)校簡(jiǎn)介┃\n\n");printf("\t\t*2.萬科大校園平面簡(jiǎn)圖┃\n\n");printf("\t\t*3.顯示場(chǎng)所地編號(hào)┃\n\n");printf("\t\t*4.查看場(chǎng)所地具體信息┃\n\n");printf("\t\t*5.計(jì)算路徑長度及找出最短路徑┃\n\n");printf("\t\t*6.退出┃\n\n");printf("\t\t****************************************************\n");BlIprintf("\t\t\t\t 請(qǐng)輸入您地選擇: ");scanf("%c",&c);if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6')flag=0;}while(flag);returnc;}//--------------------------查詢---------------------------------qd3YfhxCzocharSearchMenu()//查詢子菜單{charc;intflag;do{flag=1;system("cls");pingmu();introduce();printf("\n\t\t*************************************\n");printf("\t\t*┃\n");printf("\t\t*1、按照景點(diǎn)編號(hào)查詢┃\n");printf("\t\t*2、按照景點(diǎn)名稱查詢┃\n");printf("\t\t*0、返回┃\n");
ch4PJx4E836L11DO529/40個(gè)人收集整理 僅供參考學(xué)習(xí)printf("\t\t*┃\n");printf("\t\t*************************************\n");S42ehLvE3Mprintf("\t\t\t 請(qǐng)輸入您地選擇: ");scanf("%c",&c);if(c=='1'||c=='2'||c=='0')flag=0;}while(flag);returnc;}voidsearch()// 查詢景點(diǎn)信息{intnum;inti;charc;charname[20];do{system("cls");c=SearchMenu();switch(c){case'1':system("cls");introduce();for(i=1;i<NUM;i++){printf("\t\t%c\t\t(%2d)%-20s%c\t\t\t",1,i,G .vex[i].sight,1); //輸出景點(diǎn)列表501nNvZFis}printf("\n\n\t\t 請(qǐng)輸入您要查找地景點(diǎn)編號(hào): ");scanf("%d",&num);for(i=0;i<NUM;i++){if(num==G.vex[i].number)30/40個(gè)人收集整理 僅供參考學(xué)習(xí){printf("\n\n\t\t\t您要查找景點(diǎn)信息如下:");printf("\n\n\t\t\t%-25s\n\n",G.vex[i].description);jW1viftGw9printf("\n\t\t\t 按任回車返回...");getchar();getchar();break;}}if(i==NUM)// 只要上面 FOR循環(huán)執(zhí)行完畢,則 i就是NUM{printf("\n\n\t\t\t 沒有找到!");printf("\n\n\t\t\t 按回車鍵返回...");getchar();getchar();}break;case'2':system("cls");introduce();printf("\n\n\t\t 請(qǐng)輸入您要查找地景點(diǎn)名稱: ");scanf("%s",name);for(i=1;i<NUM;i++){if(!strcmp(name,G.vex[i].sight)){printf("\n\n\t\t\t 您要查找景點(diǎn)信息如下 :");printf("\n\n\t\t\t%-25s\n\n",G .vex[i].description);xS0DOYWHLPprintf("\n\t\t\t 按回車鍵返回...");getchar();getchar();break;}}if(i==NUM)// 只要上面 FOR循環(huán)執(zhí)行完畢,則 i就是NUM{printf("\n\n\t\t\t 沒有找到!");31/40個(gè)人收集整理 僅供參考學(xué)習(xí)printf("\n\n\t\t\t 按回車鍵返回...");getchar();getchar();}break;}}while(c!='0');getchar();}//---------------------------- 構(gòu)造無向圖 G------------------------------- LOZMkIqI0wvoid CreateUDN(int v,inta)//采用數(shù)組(鄰接矩陣)表示法,構(gòu)造無向圖 G.ZKZUQsUJed{inti,j;G.vexnum=v;// 初始化結(jié)構(gòu)中地景點(diǎn)數(shù)??!!G.arcnum=a;//初始化結(jié)構(gòu)中地邊數(shù)?。。or(i=1;i<G.vexnum;++i)G.vex[i].number=i;// 初始化每一個(gè)景點(diǎn)地編號(hào)初始化每一個(gè)景點(diǎn)名及其景點(diǎn)描述G.vex[0].sight="學(xué)校簡(jiǎn)介";G.vex[1].sight="校大門";G.vex[2].sight="三號(hào)樓學(xué)樓";G.vex[3].sight="一號(hào)教學(xué)樓";G.vex[4].sight="行政樓";G.vex[5].sight="實(shí)驗(yàn)樓";G.vex[6].sight="伯苓廣場(chǎng)";G.vex[7].sight="秀英圖書館";G.vex[8].sight="藝術(shù)樓";G.vex[9].sight="一號(hào)食堂";G.vex[10].sight="操場(chǎng)";G.vex[11].sight="西區(qū)宿舍樓";G.vex[12].sight="二號(hào)食堂";32/40個(gè)人收集整理 僅供參考學(xué)習(xí)G.vex[13].sight="籃球場(chǎng)";G.vex[14].sight="力功體育館";G.vex[15].sight="東區(qū)宿舍樓";這里把所有地邊假定為32767(2^32次方),含義是這兩個(gè)景點(diǎn)之間是不可到達(dá).for(i=1;i<G.vexnum;++i){for(j=1;j<G.vexnum;++j){G.arcs[i][j].adj=Max;G.arcs[i][j].info=NULL;}}下邊是可直接到達(dá)地景點(diǎn)間地距離,由于兩個(gè)景點(diǎn)間距離是互相地,所以要對(duì)圖中對(duì)稱地邊同時(shí)賦值.G.arcs[1][2].adj=G.arcs[2][1].adj=200;G.arcs[1][3].adj=G.arcs[3][1].adj=200;G.arcs[1][10].adj=G.arcs[10][1].adj=1000;G.arcs[1][13].adj=G.arcs[13][1].adj=1600;G.arcs[2][3].adj=G.arcs[3][2].adj=400;G.arcs[2][6].adj=G.arcs[6][2].adj=100;G.arcs[3][4].adj=G.arcs[4][3].adj=100;G.arcs[3][7].adj=G.arcs[7][3].adj=200;G.arcs[4][7].adj=G.arcs[7][4].adj=300;G.arcs[5][6].adj=G.arcs[6][5].adj=60;G.arcs[6][7].adj=G.arcs[7][6].adj=200;G.arcs[6][8].adj=G.arcs[8][6].adj=100;G.arcs[7][10].adj=G.arcs[10][7].adj=300;G.arcs[7][11].adj=G.arcs[11][7].adj=200;G.arcs[8][10].adj=G.arcs[10][8].adj=200;G.arcs[9][10].adj=G.arcs[10][9].adj=100;G.arcs[9][12].adj=G.arcs[12][9].adj=200;G.arcs[10][11].adj=G.arcs[11][10].adj=100;G.arcs[10][13].adj=G.arcs[13][10].adj=600;G.arcs[11][14].adj=G.arcs[14][11].adj=200;33/40個(gè)人收集整理 僅供參考學(xué)習(xí)G.arcs[12][13].adj=G.arcs[13][12].adj=100;G.arcs[13][14].adj=G.arcs[14][13].adj=100;G.arcs[14][15].adj=G.arcs[15][14].adj=100;}//--------------------------------簡(jiǎn)介-----------------------------------------dGY2mcoKtTvoidintroduce()//介紹函數(shù){inti;for(i=1;i<=NUM;i++){G.vex[0].description="\t▲\t河南理工大學(xué)具有百年辦學(xué)歷史,\n是河南省最早建立地高等學(xué)校,\n\n\t\t我省第三家具有博士學(xué)位授予權(quán)地重點(diǎn)建設(shè)骨干高校.\n\n\t\t鄭州校區(qū)校園布局合理,環(huán)境優(yōu)雅,功能齊全,\n\n\t\t能充分滿足教學(xué)、實(shí)習(xí)、實(shí)驗(yàn)和課外活動(dòng)需要.\n";rCYbSWRLIAG.vex[1].description="\t▲學(xué)校大門";G.vex[2].description="\t▲三號(hào)教學(xué)樓,\n\t是一座嶄新地現(xiàn)代化大樓.\n\n\t\t";FyXjoFlMWhG.vex[3].description="\t▲ 一號(hào)教學(xué)樓, \n\t也是平時(shí)同學(xué)們上課主要地場(chǎng)所.\n\n\t\t";TuWrUpPObXG.vex[4].description="\t▲行政樓,\n\t教育交流中心,基本位于學(xué)校心臟位置,\n\t內(nèi)部多為各科處室,會(huì)議室.\n\t指揮我校各項(xiàng)工作正常運(yùn)行,其作用可想而知啦!\n\n\t\t";7qWAq9jPqEG.vex[5].description="\t▲實(shí)驗(yàn)樓,\n\t具有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室,寶石鑒定實(shí)驗(yàn)室等,\n\t是鍛煉我們動(dòng)手地好去處.\n\n\t\t";llVIWTNQFkG.vex[6].description="\t▲柏林廣場(chǎng),\n\t為學(xué)校舉行大型活動(dòng)地主要場(chǎng)所,\n\t位于實(shí)驗(yàn)樓地下面,\n\t學(xué)生作品會(huì)展中心,學(xué)習(xí)活動(dòng)之地\n\n\t\t";yhUQsDgRT1G.vex[7].description="\t▲圖書館,\n\t為同學(xué)們閱讀自習(xí)地不二之選,\n\t南MdUZYnKS8I樓設(shè)有自習(xí)室,北樓多為電子閱讀室 \n\n\t\t";G.vex[8].description="\t▲藝術(shù)樓,\n\t我校校園舞蹈隊(duì)排練場(chǎng)所及舞蹈興趣班活動(dòng)場(chǎng)所\n\n\t\t";09T7t6eTnoG.vex[9].description="\t ▲ 一號(hào)食堂,\n\t 學(xué)生用用餐地地方\n\n\t\t";e5TfZQIUB5G.vex[10].description="\t▲操場(chǎng),\n\t供體育鍛煉用地場(chǎng)地, \n\t多指學(xué)校進(jìn)行34/40個(gè)人收集整理 僅供參考學(xué)習(xí)體育活動(dòng)和教學(xué)活動(dòng)地專置場(chǎng)地, \n\t是學(xué)校硬件設(shè)施不可缺少地一部分 .\n\n\t\t";s1SovAcVQMG.vex[11].description="\t▲ 西區(qū)宿舍樓,\n\t 是學(xué)生及老師住宿地地方.\n\n\t\t"; GXRw1kFW5sG.vex[12].description="\t ▲ 二號(hào)食堂,\n\t 是學(xué)生用餐地好地方.\n\n\t\t";UTREx49Xj9G.vex[13].description="\t▲籃球場(chǎng),\n\t是熱愛打籃球地運(yùn)動(dòng)員們必不可少地環(huán)境,\n\t一個(gè)長方形地堅(jiān)實(shí)平面,無障礙物 .\n\n\t\t";8PQN3NDYyPG.vex[14].description="\t▲立功體育館,\n\t是學(xué)校舉行模特大賽,籃球比賽等重要活動(dòng)舉行地重要場(chǎng)所.";mLPVzx7ZNwG.vex[15].description="\t▲ 東區(qū)宿舍樓,\n\t 是學(xué)生及老師住宿地地方.\n\n\t\t";AHP35hB02d}}//--------------------------------主界面函數(shù)--------------------------NDOcB141gTvoidpingmu()//屏幕輸出函數(shù){printf("\t\t----------------------------------------------------\n");1zOk7Ly2vAprintf("\t\t*********************\n");fuNsDv23Khprintf("\t\t**************\n");tqMB9ew4YXprintf("\t\t********************\n");HmMJFY05dEprintf("\t\t**************\n");ViLRaIt6skprintf("\t\t************************\n");9eK0GsX7H1printf("\t\t----------------------------------------------------\n");naK8ccr8VIprintf("\t\t****************************************************\n"); B6JgIVV9aoprintf("\t\t\t\t 歡迎光臨萬科大大學(xué) \n");printf("\t\t****************************************************\n"); P2IpeFp35/40個(gè)人收集整理 僅供參考學(xué)習(xí)ap5}//------------------------ 計(jì) 算最 短 路 徑 Dijkstra( 迪 杰 斯 特 拉 )算 法----------------3YIxKpScDMvoid ShortestPath(intnum)//迪杰斯特拉算法最短路徑函數(shù) num為入口點(diǎn)地編號(hào)gUHFg9mdSs{intv,w,i,t;//i、w和v為計(jì)數(shù)變量intfinal[NUM];// 判斷S,v-Sintmin;for(v=1;v<NUM;v++){final[v]=0;// 假設(shè)從頂點(diǎn) num到頂點(diǎn)v沒有最短路徑D[v]=G.arcs[num][v].adj;// 將與之相關(guān)地權(quán)值放入 D中存放for(w=1;w<NUM;w++)// 設(shè)置為空路徑P[v][w]=0;// 存在標(biāo)志置為 0if(D[v]<32767)// 存在路徑{P[v][num]=1;// 存在標(biāo)志置為一P[v][v]=1;// 自身到自身}}D[num]=0;//自己到自己為 0final[num]=1;// 初始化num頂點(diǎn)屬于 S集合//開始主循環(huán),每一次求得 num到某個(gè)頂點(diǎn)地最短路徑,并將其加入到 S集合for(i=1;i<NUM;++i)// 其余G.vexnum-1個(gè)頂點(diǎn){min=Max;// 當(dāng)前所知離頂點(diǎn) num地最近距離for(w=1;w<NUM;++w)if(!final[w])//w 頂點(diǎn)在v-s中if(D[w]<min)//w 頂點(diǎn)離num頂點(diǎn)更近{36/40個(gè)人收集整理 僅供參考學(xué)習(xí)v=w;//將找到地最短路徑賦值于 vmin=D[w];}final[v]=1;// 離num頂點(diǎn)更近地 v加入到s集合for(w=1;w<NUM;++w)// 更新當(dāng)前最短路徑極其距離if(!final[w]&&((min+G.arcs[v][w].adj)<D[w]))//不在s集合,并且比以前所找到地路徑都短就更新當(dāng)前路徑uQHOMTQe79{//min地值就是 D[v]D[w]=min+G.arcs[v][w].adj;for(t=0;t<NUM;t++)P[w][t]=P[v][t];P[w][w]=1;}}}voidoutput(intsight1,intsight2)// 輸出函數(shù){inta,b,c,d,q=0;a=si
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫門衛(wèi)合同范本
- 返租格子商鋪合同范本
- 2025陜西陜焦化工有限公司招聘(200人)筆試參考題庫附帶答案詳解
- 質(zhì)押物品合同范本
- S-Tetrahydrofuran-3-ylamine-3-Aminotetrahydrofuran-生命科學(xué)試劑-MCE
- S-3-Oxo-cyclopentanecarboxylic-acid-methyl-ester-生命科學(xué)試劑-MCE
- N-Acetyl-3-4-methylenedioxymethcathinone-生命科學(xué)試劑-MCE
- Memantine-lactose-adduct-生命科學(xué)試劑-MCE
- Anti-CD71-TfR1-Antibody-JR-141-antibody-uncoupled-from-iduronate-2-sulfatase-生命科學(xué)試劑-MCE
- 中央2025年求是雜志社招聘6人筆試歷年參考題庫附帶答案詳解
- 《PLC應(yīng)用技術(shù)(西門子S7-1200)第二版》全套教學(xué)課件
- 智能建造施工技術(shù) 課件 項(xiàng)目1 智能建造施工概論
- 單詞連連看答題闖關(guān)游戲課堂互動(dòng)課件1
- 物理學(xué)家伽利略課件
- 《WPS辦公應(yīng)用職業(yè)技能等級(jí)》課件-1. WPS初級(jí)-文字
- 加強(qiáng)文物古籍保護(hù)利用(2022年廣東廣州中考語文試卷非連續(xù)性文本閱讀試題及答案)
- 2024小學(xué)數(shù)學(xué)義務(wù)教育新課程標(biāo)準(zhǔn)(2022版)必考題庫附含答案
- 北師大版二年級(jí)數(shù)學(xué)下冊(cè)教材分析
- 《儒林外史》專題復(fù)習(xí)課件(共70張課件)
- 2024年春九年級(jí)化學(xué)下冊(cè) 第九單元 溶液教案 (新版)新人教版
- GB/T 44143-2024科技人才評(píng)價(jià)規(guī)范
評(píng)論
0/150
提交評(píng)論