您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 数据结构课程设计――校园导游图
景德镇陶瓷学院信息工程学院班级:12计科(2)班学号:201210510216姓名:乐升平指导老师:林卫中时间:2014年6月18号题目:校园导游图校园导游图1.1、需求分析:需求:(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离。为此图选择适当的数据结构。(2)把各种路径都显示给游客,由游客自己选择游览路线。(3)画出景点分布图于屏幕上。分析:完成对整个导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。有以下设计思路:(1).结合本校的实际情况,选出10个景点;(2).人为手工为选出的10个景点赋上相关信息(名称、代号、简介信息、以及路权等等);(3).根据选出来的10个景点用邻接矩阵存储校园图。(4).依照景点的相关信息创建校园图。(5).把纸质上的内容,利用C++编程语言编写查找景点相关信息的程序。(6).根据人为赋值的路权,迪杰斯特拉算法计算任意两点之间的最短路径。(7).综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。1.2、设计与实现:选出本校10个景点结合景德镇陶瓷学院实际情况,我选出以下10个景点,从1到10编号:编号名称编号名称编号名称编号名称1研究生楼2二食堂310#宿舍4主教学楼5毕业礼堂6主阶7一食堂8A系列楼9B系列楼10图书馆11科艺楼12科阶13篮球场14田径场15游泳池16体育馆17翠湖18校门口图的初始化由于邻接矩阵特殊的存储方式,它非常便于快速的查找两个顶点之间的边上的权值。所以,图采用带权的邻接矩阵存储。决定了图的存储方式后,以华南农业大学18个景点的游览地图作为蓝本,把校园地图抽象化成顶点与边构成的图形式,如图所示研究生楼二食堂10主教学楼毕业礼堂主阶一食堂A系列楼B系列楼图书馆科艺楼科阶篮球场田径场研究生楼10#宿舍A系列楼楼篮球场毕业礼堂主教学楼科艺楼一食堂二食堂主阶B系列楼图书馆科阶田径场游泳池体育馆翠湖校门口1.3、模块的划分含有四个模块:(1)陶院地图信息(2)陶院景点信息(3)查找两点间最短路径(4)退出模板功能(1)将陶院的地图显示在程序运用上;(2)输入一个景点,运用程序上能够显示该景点的信息;(3)可以给游客提供两个景点的最短路径;(4)给游客提供方便。#defineN18#defineMAX25#defineMAXedg50#includestdio.h#includestring.h#includestdlib.h#includeconio.hvoidclrscr(){system(cls);}typedefintAdjMatrix[MAX][MAX];体育馆游泳池翠湖校门口typedefstruct{intvexs[MAX];AdjMatrixarcs;}Matrix_Graph;typedefstruct{charname[18];charinformation[1010];structedgenode*link;}vexnode;typedefstructedgenode{intadjvex;intlength;charinfo[18];charinfo2[1010];structedgenode*next;}edgenode,*Node;typedefstructEdge{intlengh;intivex,jvex;structEdge*next;}EdgeType;typedefstruct{intnum;charname[18];}vertex;typedefstruct{vertexvexs[MAX];intedges[MAX][MAX];}adjmax;voidName(inti){switch(i){case1:printf(1:研究生楼\n\n);break;case2:printf(2:二食堂\n\n);break;case3:printf(3:10#宿舍\n\n);break;case4:printf(4:主教学楼\n\n);break;case5:printf(5:毕业礼堂\n\n);break;case6:printf(6:主阶\n\n);break;case7:printf(7:一食堂\n\n);break;case8:printf(8:A系列楼\n\n);break;case9:printf(9:B系列楼\n\n);break;case10:printf(10:图书馆\n\n);break;case11:printf(11:科艺楼\n\n);break;case12:printf(12:科阶\n\n);break;case13:printf(13:篮球场\n\n);break;case14:printf(14:田径场\n\n);break;case15:printf(15:游泳池\n\n);break;case16:printf(16:体育馆\n\n);break;case17:printf(17:翠湖\n\n);break;case18:printf(18:校门口\n\n);break;default:printf(景点编号输入错误!请输入1-18的数字编号!\n\n);break;}}voidInformation(inti)/*景点介绍*/{switch(i){case1:printf(研究生楼:研究生的居住地及学习处。\n\n);break;case2:printf(二食堂:大部分学生的用餐地,深受大家喜爱。\n\n);break;case3:printf(10#宿舍:男宿舍楼,地理位置优越。其余宿舍楼介绍略。\n\n);break;case4:printf(主教学楼:全校学生的上课之地。\n\n);break;case5:printf(毕业礼堂:毕业生的毕业典礼举办之地。\n\n);break;case6:printf(主阶:某些讲座场所以及考试场所。\n\n);break;case7:printf(一食堂:价格便宜,味道比二食堂稍重。\n\n);break;case8:printf(A系列楼:部分分院的实验室及上机之地(如:机电学院)。\n\n);break;case9:printf(B系列楼:部分分院的实验室及上机之地(如:信息学院)。\n\n\n);break;case10:printf(图书馆:学生的阅读、看书之地,其包含自习室,报刊阅览室、社科阅览室,美术阅览室等。\n\n);break;case11:printf(科艺楼:艺术生的天地。\n\n\n);break;case12:printf(科阶:大型活动及讲座的场所(尤其是科阶01)。\n\n\n);break;case13:printf(篮球场:顾名思义,打篮球的地方。\n\n\n);break;case14:printf(田径场:学生的运动之地,也是运动会场所。含400米跑道,跑道内部是草坪,也是足球场。\n\n\n);break;case15:printf(游泳池:每年的差不多6、7月份开放,水质量优越,温度适宜。\n\n\n);break;case16:printf(体育馆:含篮球场,健身房,是下雨天的良好运动场所。\n\n\n);break;case17:printf(翠湖:陶院的一道亮丽风景线,是情侣之间约会、散步的首选场所。\n\n\n);break;case18:printf(校门口:宏伟壮观,秩序井然。\n\n\n);break;default:printf(景点编号输入错误!请输入1-18的数字编号!\n\n);break;}}voidtravgraph(vexnodeg[],intn,adjmaxadj)//查找指定景点信息{inti=1,flag=1,len;charch;printf(\t请输入您要查询的景点序号:\n\n);printf(\t1.研究生楼2.二食堂3.10#宿舍4.主教学楼5.毕业礼堂6.主阶\n\n);printf(\t7.一食堂8.A系列楼9.B系列楼10.图书馆11.科艺楼12.科阶\n\n);printf(\t13.篮球场14.田径场15.游泳池16.体育馆17.翠湖18.校门口\n\n);printf(你的选择是);scanf(%d,&len);getchar();printf(此景点的名称是:);Name(len);printf(此景点的介绍是:);Information(len);do{printf(\t\t是否继续?Y/N\n\n);printf(\t\t你的选择是:);scanf(%c,&ch);getchar();if(ch=='Y'||ch=='y'){clrscr();flag=1;i=1;printf(\t\t\t请再次输入您要查询的景点序号:\n\n);printf(\t1.研究生楼2.二食堂3.10#宿舍4.主教学楼5.毕业礼堂6.主阶\n\n);printf(\t7.一食堂8.A系列楼9.B系列楼10.图书馆11.科艺楼12.科阶\n\n);printf(\t13.篮球场14.田径场15.游泳池16.体育馆17.翠湖18.校门口\n\n);printf(你的选择是);scanf(%d,&len);getchar();printf(此景点的名称是:);Name(len);printf(此景点的介绍是:);Information(len);continue;}else{flag=0;printf(\t\t请再次按回车键或者任意键加回车键返回至主菜单);}break;}while(1);}voidcreat(Matrix_Graph*G){inti,j;for(i=1;i=N;i++)G-vexs[i]=i;for(i=1;i=N;i++)for(j=1;j=N;j++)G-arcs[i][j]=0;G-arcs[1][2]=600;G-arcs[1][3]=700;G-arcs[1][4]=50;G-arcs[1][5]=650;G-arcs[2][1]=600;G-arcs[2][3]=100;G-arcs[2][4]=650;G-arcs[2][5]=50;G-arcs[3][1]=700;G-arcs[3][4]=750;G-arcs[3][5]=50;G-arcs[4][1]=50;G-arcs[4][5]=700;G-arcs[4][6]=50;G-arcs[4][7]=900;G-arcs[5][1]=650;G-arcs[5][6]=700;G-arcs[5][7]=150;G-arcs[6][7]=950;G-arcs[6][8]=50;G-arcs[6][9]=100;G-arcs[6][10]=200;G-arcs[6][11]=400;G-arcs[6][12]=500;G-arcs[7][8]=900;G-arcs[7][9]=850;G-arcs[7][10]=750;G-arcs[7][11]=150;G-arcs[7][12]=100;G-arcs[8][7]=900;G-arcs[8][9]=50;G-arcs[8][13]=1000;G-arcs[8][14]=1050;G-arcs[8][15]=1010;G-arcs[8][16]=1015;G-arcs[8][17]=100;G-arcs[8][18]=200;G-arcs[9][7]=50;G-arcs[9][8]=50;G-arcs[9][10]=100;G-arcs[9][17]=50;G-arcs[9][18]=150;G-arcs[18][13]=300;G-arcs[18][14]=250;G-arcs[18][15]=2000;G-arcs[18][16]=150
本文标题:数据结构课程设计――校园导游图
链接地址:https://www.777doc.com/doc-3800172 .html