欢迎来到天天文库
浏览记录
ID:26449834
大小:199.50 KB
页数:14页
时间:2018-11-27
《余浩-003-课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、校园导游系统课程设计一.需求分析设计一个校园导游系统程序,为来访客人提供各种服务的信息查询。(1)设计江西农业大学校园平面图,该系统所含景点为10个,以图中顶点表示校内各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短路径(4)添加最佳推荐路径景点去处二.概要设计1.系统功能结构图根据项目的开发要求,本系统划分成四个主功能模块:0、退出1、查询景点路径2、查询景点
2、信息3、推荐参观路线系统功能结构图如下:2.重要的数据结构设计#defineMax20000//最大顶点数#defineNUM10//景点个数typedefstructArcCell{intadj;//路径的权值}ArcCell;typedefstructVertexType{intnumber;//编号char*sight;//景点名称char*description;//景点信息描述}VertexType;typedefstruct{VertexTypevex[NUM];//图的顶点数ArcCellarcs
3、[NUM][NUM];//存放边的邻接矩阵intvexnum,arcnum;//图的顶点总数,边数}MGraph;//图的结构MGraphG;//抽象数据类型图的定义图(MGraph)是由非空的顶点集合和一个描述顶点之间关系(弧(或者边))的集合组成,其形式化定义为G=(V,E)V={Vi
4、ViЄdataobject}E={5、,Vj>6、Vi.VjЄV^P(Vi,Vj)}其中G表示一个图,V是图中顶点的集合,E是图中G中弧(或边)的集合,集合E中P(Vi,Vj)表示顶点Vi和Vj之间有一条弧或边直接连线,用7、(Vi,Vj)表示。intP[NUM][NUM];//创建path存放两点间的最短路径的前驱结点longintD[NUM];//路径长度intx[10]={0};//初始化推荐景点编号3.函数设计voidCreateUDN(intv,inta);//创建图voidnarrate();//景点信息描述界面voidShortestPath(intnum);//求最短路径voidoutput(intsight1,intsight2);//输出路径距离charMenu();//系统主界面voidsearch();//分8、类查找景点编号charSearchMenu();//查找主界面voidHaMiTonian(int);//推荐景点分析voidNextValue(int);//推荐路径景点算法voiddisplay();//输出最佳景点路径三.详细设计//系统主界面charMenu(){charc;intflag;do{flag=1;system("cls");narrate();printf("ttt┏━━━━━━━━━━━━━━━┑");printf("ttt┃┃");printf("ttt┃9、1、查询景点路径┃");printf("ttt┃2、查询景点信息┃");printf("ttt┃3、推荐参观路线┃");printf("ttt┃0、退出┃");printf("ttt┃┃");printf("ttt┗━━━━━━━━━━━━━━━┛");printf("tttt请输入您的选择:");scanf("%c",&c);if(c=='1'10、11、c=='2'12、13、c=='3'14、15、c=='0')flag=0;}while(flag);returnc;16、}//分类查找主界面charSearchMenu(){charc;intflag;do{flag=1;system("cls");narrate();printf("ttt┏━━━━━━━━━━━━━━━┑");printf("ttt┃┃");printf("ttt┃1、按照景点编号查询┃");printf("ttt┃2、按照景点名称查询┃");printf("ttt┃0、返回┃");printf("ttt┃┃");printf("ttt┗━17、━━━━━━━━━━━━━━┛");printf("tttt请输入您的选择:");scanf("%c",&c);if(c=='1'18、19、c=='2'20、21、c=='0')flag=0;}while(flag);returnc;}//求最短路径voidShortestPath(intnum){intv,w,i,t;intfinal[NUM];intmin;for(v=0;v
5、,Vj>
6、Vi.VjЄV^P(Vi,Vj)}其中G表示一个图,V是图中顶点的集合,E是图中G中弧(或边)的集合,集合E中P(Vi,Vj)表示顶点Vi和Vj之间有一条弧或边直接连线,用
7、(Vi,Vj)表示。intP[NUM][NUM];//创建path存放两点间的最短路径的前驱结点longintD[NUM];//路径长度intx[10]={0};//初始化推荐景点编号3.函数设计voidCreateUDN(intv,inta);//创建图voidnarrate();//景点信息描述界面voidShortestPath(intnum);//求最短路径voidoutput(intsight1,intsight2);//输出路径距离charMenu();//系统主界面voidsearch();//分
8、类查找景点编号charSearchMenu();//查找主界面voidHaMiTonian(int);//推荐景点分析voidNextValue(int);//推荐路径景点算法voiddisplay();//输出最佳景点路径三.详细设计//系统主界面charMenu(){charc;intflag;do{flag=1;system("cls");narrate();printf("ttt┏━━━━━━━━━━━━━━━┑");printf("ttt┃┃");printf("ttt┃
9、1、查询景点路径┃");printf("ttt┃2、查询景点信息┃");printf("ttt┃3、推荐参观路线┃");printf("ttt┃0、退出┃");printf("ttt┃┃");printf("ttt┗━━━━━━━━━━━━━━━┛");printf("tttt请输入您的选择:");scanf("%c",&c);if(c=='1'
10、
11、c=='2'
12、
13、c=='3'
14、
15、c=='0')flag=0;}while(flag);returnc;
16、}//分类查找主界面charSearchMenu(){charc;intflag;do{flag=1;system("cls");narrate();printf("ttt┏━━━━━━━━━━━━━━━┑");printf("ttt┃┃");printf("ttt┃1、按照景点编号查询┃");printf("ttt┃2、按照景点名称查询┃");printf("ttt┃0、返回┃");printf("ttt┃┃");printf("ttt┗━
17、━━━━━━━━━━━━━━┛");printf("tttt请输入您的选择:");scanf("%c",&c);if(c=='1'
18、
19、c=='2'
20、
21、c=='0')flag=0;}while(flag);returnc;}//求最短路径voidShortestPath(intnum){intv,w,i,t;intfinal[NUM];intmin;for(v=0;v
此文档下载收益归作者所有