ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:18.36KB ,
资源ID:9652805      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9652805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(校园导游系统.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

校园导游系统.docx

1、校园导游系统#include#include#include#define MaxVertexNum 13#define Infinity 1000#define MAXSIZE 100typedef structint ID;char name17;char introduction256;Vexsinfo;typedef structVexsinfo vexsMaxVertexNum;int arcsMAXSIZEMAXSIZE;int arcNum;int vexNum;MGraph; int visited12;int d23;MGraph campus;void MainWork()

2、;MGraph InitGraph();void IntroductionCompus(MGraph c);void Browsepath(MGraph c);void ShortestPath(MGraph c);void SeeAbout(MGraph c);int LocateVex(MGraph c,int v);int ChangeGraph(MGraph *c);int CreatGraph(MGraph *c);int DelVex(MGraph *c);int DelArc(MGraph *c);int EnVex(MGraph *c);int EnArc(MGraph *c)

3、;int NewGraph(MGraph *c);void PrintMatrix(MGraph c);/第一个函数 菜单建立void MainWork()int yourChoice;char isExit;campus=InitGraph();dosystem(cls);yourChoice=0;printf(*欢迎使用校园导航系统*n);printf(*亲! welcome to 山东工商学院!*n);printf(*导游系统菜单*n);printf( -1学校景点-n); printf( -2查看路线-n);printf( -3查询景点间最短路径-n); printf( -4景点信息

4、-n);printf( -5更改图信息-n);printf( -6打开邻接矩阵-n);printf( -7退出-n);printf(请输入菜单选择的数字:);scanf(%d,&yourChoice);switch(yourChoice)case 1: system(cls);IntroductionCompus(campus);system(pause);break;case 2: system(cls);Browsepath(campus);system(pause);break;case 3: system(cls);ShortestPath(campus);system(pause);

5、break;case 4: system(cls);SeeAbout(campus);system(pause);break;case 5: system(cls);ChangeGraph(&campus);break;case 6: system(cls);PrintMatrix(campus);system(pause);break;case 7: printf(您确定要退出系统?(YES/NO):); getchar();isExit=getchar();system(cls); if(isExit=YES|isExit=yes) exit(0); else isExit=n; brea

6、k; default:system(cls);printf(输入选择无法识别,请按照菜单指导输入n); system(pause);getchar();break;while(yourChoice!=7|isExit=n);/第二个函数 构造图MGraph InitGraph() int i=0,j=0; MGraph c; c.vexNum=MaxVertexNum; c.arcNum=17; for(i=0;ic.vexNum;i+) c.vexsi.ID=i;strcpy(c.vexs0.name,山东工商学院东门);strcpy(c.vexs0.introduction,学校进出口之一

7、);strcpy(c.vexs1.name,办公楼);strcpy(c.vexs1.introduction,一共11层);strcpy(c.vexs2.name,南校门);strcpy(c.vexs2.introduction,旁边有许多小吃);strcpy(c.vexs3.name,女生宿舍群);strcpy(c.vexs3.introduction,女生居住、日常生活场所);strcpy(c.vexs4.name,篮球场);strcpy(c.vexs4.introduction,学生课间娱乐、体育锻炼场所);strcpy(c.vexs5.name,人工湖);strcpy(c.vexs5.

8、introduction,学校主要景点);strcpy(c.vexs6.name,体育馆);strcpy(c.vexs6.introduction,校运会、大型活动过举办场所);strcpy(c.vexs7.name,图书馆);strcpy(c.vexs7.introduction,包含自修室、电子阅览室、藏书室);strcpy(c.vexs8.name,男生宿舍群);strcpy(c.vexs8.introduction,男生居住、日常活动场所);strcpy(c.vexs9.name,机械楼);strcpy(c.vexs9.introduction,包含机械、动力、物理、信息实验室);st

9、rcpy(c.vexs10.name,食堂);strcpy(c.vexs10.introduction,学生日常主要就餐处,共三楼);strcpy(c.vexs11.name,落雪湖);strcpy(c.vexs11.introduction,二教学楼旁边);strcpy(c.vexs12.name,商业街);strcpy(c.vexs12.introduction,学校商业街);for(i=0;ic.vexNum;i+)for(j=0;jc.vexNum;j+)c.arcsij=Infinity;/初始化图的邻接矩阵c.arcs01=3;c.arcs02=4;c.arcs03=5;c.arc

10、s15=2;c.arcs14=5;c.arcs26=1;c.arcs23=3;c.arcs35=3;c.arcs36=2;c.arcs47=3;c.arcs48=2;c.arcs57=1;c.arcs79=2;c.arcs810=1;c.arcs911=1;c.arcs1012=1;c.arcs1011=2;for(i=0;ic.vexNum;i+)for(j=0;jc.vexNum;j+)c.arcsji=c.arcsij;return c;/第三个函数 学校景点显示void IntroductionCompus(MGraph c)int i;printf(nn编号 景点名称 简介nn);p

11、rintf(*n);for(i=0;ic.vexNum;i+)printf(% -10d% -25s% -80sn,c.vexsi.ID,c.vexsi.name,c.vexsi.introduction);printf(*nn);/第四个函数 显示路径void Browsepath(MGraph c)int v,w,i,min,t=0,x,flag=1,v0;int final18,d18,p1818;printf(n请输入一个起始景点的编号:);scanf(%d,&v0);printf(nn);while(v0c.vexNum)printf(n你所输入的景点编号不存在n);printf(请

12、重新输入);scanf(%d,&v0);for(v=0;vc.vexNum;v+)finalv=0;dv=c.arcsv0v;for(w=0;wc.vexNum;w+)pvw=0;if(dvInfinity)pvv0=1;pvv=1;dv0=0;finalv0=1;for(i=1;ic.vexNum;i+)min=Infinity;for(w=0;wc.vexNum;w+)if(!finalw)if(dwmin)v=w;min=dw;finalv=1;for(w=0;wc.vexNum;w+)if(!finalw&(min+c.arcsvwdw)dw=min+c.arcsvw;for(x=0;

13、xc.vexNum;x+)pwx=pvx;pww=1;for(v=0;vc.vexNum;v+)if(v!=v0)printf(%s,c.vexsv0.name);for(w=0;w%s,c.vexsw.name);printf(-%s,c.vexsv.name);printf(t总路线长度为%d百米,dv);printf(n);/第五个函数 显示最短路径void ShortestPath(MGraph c)int i,j,k,v,u,w,d1818,p181818;for(v=0;vc.vexNum;v+) for(w=0;wc.vexNum;w+) dvw=c.arcsvw; for(u=

14、0;uc.vexNum;u+) pvwu=0; if(dvwInfinity) pvwv=1; pvww=1; for(u=0;uc.vexNum;u+)for(v=0;vc.vexNum;v+)for(w=0;wc.vexNum;w+)if(dvu+duwdvw)dvw=dvu+duw;for(i=0;ic.vexNum;i+)pvwi=pvui+puwi;printf(n请输入出发景点和目的地的编号);scanf(%d%d,&k,&j);printf(nn);while(kc.vexNum|jc.vexNum)printf(n您输入的景点不正确!n请重新输入:);scanf(%d%d,&k

15、,&j);printf(nn);printf(%s,c.vexsk.name);if(k=j)printf(-%s,c.vexsj.name);printf(nnn总长为0百米nnn);else for(u=0;u%s,c.vexsu.name);printf(-%s,c.vexsj.name);printf(nnn总长为%d百米nnn,dkj);/第六个函数 景点信息查询void SeeAbout(MGraph c)int k;printf(n请输入要查询的景点编号n);scanf(%d,&k);while(kc.vexNum)printf(n您输入的景点不存在n请重新输入:);scanf(

16、%d,&k);printf(n编号:%-4dn,c.vexsk.ID);printf(n景点名称:%-10sn,c.vexsk.name);printf(n介绍:%-80sn,c.vexsk.introduction);/第七个函数 查找景点的序号 int LocateVex(MGraph c,int v)int i;for(i=0;ivexNum,&c-arcNum);printf(n下面请输入景点的信息:n);for(i=0;ivexNum;i+)printf(请输入景点的编号:);scanf(%d,&c-vexsi.ID);printf(n请输入景点的名称:);scanf(%s,&c-v

17、exsi.name);printf(n请输入景点的简介:);scanf(%s,c-vexsi.introduction);for(i=0;iarcNum;i+)for(j=0;jarcNum;j+)c-arcsij=Infinity;printf(下面请输入图的边的信息:n);for(i=1;iarcNum;i+)printf(n第%d条边的起点 终点 长度为:,i);scanf(%d%d%d,&v0,&v1,&distance);m=LocateVex(*c,v0);n=LocateVex(*c,v1);if(m=0&n=0)c-arcsmn=distance;c-arcsnm=c-arcs

18、mn;return 1;/第十个函数 删除景点int DelVex(MGraph *c)int i=0,j;int m,v;if(c-vexNum=0)printf(图中已无丁点);return 1;printf(n下面请输入你要删除的景点编号:);scanf(%d,&v);while(vvexNum)printf(n输入错误!请重新输入);scanf(%d,&v);m=LocateVex(*c,v);if(m0)printf(顶点%d不存在!,v);return 1; /*对定点信息所在顺序表进行删除m点的操作*/for(i=m;ivexNum;i+)c-vexsi.ID=c-vexsi+1

19、.ID;strcpy(c-vexsi.name,c-vexsi+1.name);strcpy(c-vexsi.introduction,c-vexsi+1.introduction);for(i=m;ivexNum-1;i+)for(j=0;jvexNum;j+)c-arcsij=c-arcsi+1j;for(i=m;ivexNum-1;i+)for(j=0;jvexNum;j+)c-arcsji=c-arcsji+1;c-vexNum-;return 1;/第十一个函数 删除边int DelArc(MGraph *c)int m,n,v0,v1;if(c-arcNum=0)printf(图中

20、已无边,无法删除.);return 1;printf(n下面请输入你要删除的边的起点和终点编号:);scanf(%d %d,&v0,&v1);m=LocateVex(*c,v0);if(m0)printf(顶点%d不存在!,v0);return 1;n=LocateVex(*c,v1);if(narcsmn=Infinity;c-arcsnm=Infinity;c-arcNum-;printf(边(%d,%d)删除成功!,v0,v1);return 1;/第十二个函数 添加景点int EnVex(MGraph *c)int i;printf(请输入你要增加结点的信息:);printf(n编号)

21、;scanf(%d,&c-vexsc-vexNum.ID);printf(名称:);scanf(%s,c-vexsc-vexNum.name);printf(简介:);scanf(%s,c-vexsc-vexNum.introduction);c-vexNum=c-vexNum+1;for(i=0;ivexNum;i+)c-arcsc-vexNum-1i=Infinity;c-arcsic-vexNum-1=Infinity;return 1;/第十三个函数 添加边int EnArc(MGraph *c)int m,n,distance;printf(n请输入边的起点和终点编号,权值);sca

22、nf(%d %d %d,&m,&n,&distance);while(mc-vexNum|nc-vexNum)printf(输入错误,请重新输入:);scanf(%d %d,&m,&n);if(LocateVex(*c,m)0)printf(此顶点%d不存在);return 1;if(LocateVex(*c,n)arcsmn=distance;c-arcsnm=c-arcsmn;printf(边(%d,%d)添加成功!,m,n);return 1;/第十四个函数 更新图信息int NewGraph(MGraph *c) int changenum; int i,m,n,t,distance,v0,v1;printf(n下面请输入您要修改的景点的个数:n);scanf(%d,&changenum);while(changenumc-vexNum)printf(n输入错误!请重新输入:);scanf(%d,&changenum);for(i=0;ichangenum;i+)printf(n请输入景点的编号:);scanf(%d,&m);t=LocateVex(*c,m)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2