资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
校园导航系统课程设计报告班级:10网络工程学号:110263100145姓名:欧玉凤一:需求分析系统要求:设计一个校园导游程序,后台操作:1、操作员信息管理如修改密码等2、能根据学校的规模进行添加景点信息、修改景点信息等功能,3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那 个方向的交通管制等)前台为来访的客人提供各种信息查询服务:1、设计学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。2、为来访客人提供图中任意景点相关信息的查询。3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。二:概要设计1、首先是设计欢迎界面,用cout语句直接输出欢迎文字界面2、系统菜单,用cout语句来显示系统菜单,用switch语言离开实现函数功能的转换。3、界面设计系统菜单(menu ()(1)、登陆管理员系统(userpwd();settingpwd();)%1 、修改密码(alterpwd。;)%1 、景点信息的修改(alter。;此函数和调用函数能存进修改信息,但查询时不能查到修 改后的信息)i、按景点编码修改(alternum。;)ii、按景点名称修改(altername();)iii、增加景点信息(alterircO ;)iv、返回管理员菜单(mainmenu ();)%1 、增加景点(sigthircO :此函数做不出来)%1 、设置交通管制(不会设置交通管制的时间)%1 、返回系统菜单(menu ();)%1 、退出系统(exit (0);)(2)、学校简介(读文件0)(3)、景点信息查询(SearchMenu。;)%1 、按经典编号查询%1 、按景点名称查询%1 、查询全部经典信息(dushuju();)%1 、返回系统菜单(menu();)(4) 、景点路径查询(ShortestPath(vO);output(vO,vl);)(5 )、景点间距查询(void ShortestPath(int num)4、数据类型及结构#define Max 32767const MAX_V=20;#defineNUM 11最大景点的个数typedef struct ArcCell(int adj; /相邻接的景点之间的路程struct ArcCell *nextarc;char *info;指向该弧的相关信息指针ArcCell,*ArcNodeP;/ 定义边的类型typedef struct VertexType(int number; /景点编号ArcCell *firstarc;char *sight; / 景点名称char description; / 景点描述)VertexType,AdjListMAX_V; / 定义顶点的类型 typedef struct (VertexType vexNUM; /图中的顶点,即为景点AdjList vertices;ArcCell arcs NUM NUM; /图中的边,即为景点间的距离int vexnum,arcnum,kind; / 顶点数,边数JMGraph; /定义图的类型MGraph G;/密码数据类型char userName9;char name 9;char userPWD7;char PWD7,pwd7;int i;HLE *fp;文件char NAME9,USERPWD7;/修改函数数据类型char MM 100 ,NN 100,AA 1000, m2000 ,xxjj 1000;5、基本算法迪杰斯特拉算法思想按路径长度递增次序产生最短路径算法:把V分成两组:(1) S:已求出最短路径的顶点的集合(2) V-S=T:尚未确定最短路径的顶点集合将T中顶点按最短路径递增的次序加入到S中,保证:(1)从源点V0到S中各顶点的最短路径长度都不大于从V0到T中任何顶点的最短路径长度(2)每个顶点对应一个距离值S中顶点:从V0到此顶点的最短路径长度T中顶点:从V0到此顶点的只包括S中顶点作中间顶点的最短路径长度依据:可以证明V0到T中顶点Vk的最短路径,或是从V0到Vk的直接路径的权值;或是从V0经S中顶点到Vk的路径权值之和2、邻接矩阵建立有无向权图的算法思想:用两个数组分别存储数据元素的信息和数据之间的关系的信息其形式描述如下: ttdefine Max 32767/最大值8 ttdefine NUM 11/最大顶点个数 typedef struct ArcCellint adj; /相邻接的景点之间的路程 char *info; ArcCell; /定义边的类型typedef struct VertexType(int number; /景点编号char *sight; / 景点名称char description; / 景点描述VertexType; /定义顶点的类型typedef structVertexType vex NUM ; /图中的顶点,即为景点ArcCell arcs NUM NUM; /图中的边,即为景点间的距离 int vexnum, arcnum; / 顶点数,边数 MGraph; /定义图的类型其中用二维数组表示途中个边之间的关系。三:详细设计1、主函数模块void main()(system(color 3E);timea();welcome();menu();SearchMenu();)2、密码模块/注册用户名和密码void settingpwd()cout请注册您的用户名和密码!endl;coutH请输入您的用户名:” endl;cinname;if(fp=fopen(B.datn,nwn)=NULL)exit(O);cout文件打开失败!请退出! vvendl;elsefputs(name,fp);fclose(fp);coutn请输入您的密码:” endl;cinPWD;if(fp=fopen(HA.dat,;w,)=NULL)(cout文件打开失败!请退出! vvendl;exit(O);elsefputs(PWD,fp);fclose(fp);coutn注册成功,请稍后! endl;getchar();system(clsH);nendl;coutvv”注册成功,欢迎您使用广西民族大学校园导航系统! mainmenu();修改密码void alterpwd()coutvv”请输入您的新密码:” VV” ”; cinuserPWD;coutn请再输入一次:, cinpwd;if (strcmp(userPWD,pwd)=O)getchar();system(cls);cout密码修改成功,请记住您的新密码! endl; else(cout密码修改失败!”;exit(O);if(fp=fopen(,A.dat,;,w,)=NULL)cout文件打开失败!请退出! endl;exit(O);elsefputs(pwd,fp);fclose(fp);)用户登陆void userpwd()(for(i=0;i3;i+)coutvv请输入您的用户名:H n n;cinuserName;if(fp=fopen(nB.dat,V,rH)=NULL)(coutvv”文件打开失败!请退出! “vvendl;exit(O);else if(fread(NAME,sizeof(int),9,fp)!=9)fclose(fp);cout,请输入您的密码:” cinpwd;if(fp=fopen(”A.dat”*”)=NULL)(coutvv”文件打开失败!请退出! “vvendl;exit(O);else if(fread(USERPWD,sizeof(int),7,fp) !=7) fclose(fp);if (strcmp(userName,NAME)=O) & (strcmp(pwd,USERPWD)=0)(getchar();system(cls);cout”登陆成功,欢迎您使用广西民族大学校园导航系统! endl;mainmenuQ;用户名和密码正确else if (i=3)cout”用户名或密码错误,请重新输入!”endl;用户名或密码错误,提示用户重新输入 1cout”您已连续3次将用户名或密码输错,系统将退出!” endl;连续3次输 错用户名或密码,退出系统exit(O);3、查询模块 void SearchMenu()int choice,num, i;char name7;do(coulV|enai,COUt1| endl;COUt11、按照景点编号查询| endl;coutn12、按照景点名称查询| endl;coutn13、全部景点信息的查询| endl;coutn10、返回系统菜单| endl;coutn1| endl;cout、encn;cout请输入您的选择:endl;cinchoice;switch(choice)(case 1:system(clsn);pingmu();introduce();coutvv”请输入您要查找的景点编号:” vvendl;cinnum;for(i=0;iNUM;i+)(if(num=G. vexi .number)(cout您要查找景点信息如下:”vvendl;coutG.vexi.descriptionendl;if(i=NUM)cout输入有错 11 Hendl;coutn没有找到! “vvendl;break;case 2:system(clsn);pingmu();introduce();coutvv”请输入您要查找的景点名称:” vvendl;cinname;for(i= 1 ;iNUM;i+)if( !strcmp(name,G.vexi .sight)coutvv”您要查找景点信息如下:vvendl;coutG.vexi.descriptionendl;if(i=
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号