- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合实验十二 校园导游咨询
实验目的
(1) 熟练掌握图的创建及遍历基本操作算法。
(2) 熟练掌握最短路径算法。
(3) 利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。
二、 实验内容
【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径。
【测试数据】
由读者根据实际情况指定。
【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
【选作内容】
(1)求校园图的关节点。
(2)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(3)提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。
(4)校园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道、人行道等)、沿途景色等级,以至可按客人所需分别查询人行路径或车行路径或观景路径等。
(6)扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
(7) 实现校园导游图的仿真界面。
程序代码及结果:
#includeiostream
#includeiomanipusing namespace std;const int MaxSize=18;const int INFINITY=65535;//最大值无穷
class direction;template class T class MGraph;template class Tclass VertexNode//定义头结点{friend class MGraphT; public:int vex;//顶点名称T vexname;//顶点名称T vexinf;//顶点信息direction dir;//存放顶点方位信息的direction类的dir。};
class direction{public:int ln;//存放在方向图中的横坐标,表示东西int col;//存放在方向图中的纵坐标,表示南北};
template class Tclass MGraph//定义无向图的邻接矩阵{public:MGraph(); //构造函数,初始化具有n个顶点的图void printvexname();//显示所有景点及景点代号void printvexinf(int i);//显示代号为i景点的名称及信息void printroad(int i,int j);//显示景点i~j的最短路径方案信息void printdir(int i,int j);//显示景点i到j的方向信息,如“向东100m,向南200m”VertexNodeT adjlist[MaxSize]; //存放景点全部信息的 景点类数组int vertexNum,arcNum; //图的顶点数和边数void Root(int p,int q);//递归寻找pq间的最短路径int Path[MaxSize][MaxSize],Dist[MaxSize][MaxSize];//创建Path和Dist分别存放两点间最短路径的前驱节点,两点间最短路径长度int Line[MaxSize];//Line存放路径int kkk;//Line[]数组的标记private:T vertex[MaxSize]; //存放图中顶点的数组int arc[MaxSize][MaxSize];//存放图中边的数组};
*************************【以下为类的实现 即类函数的定义】***********************************
template class TMGraphT::MGraph()//a[]为景点代号,b[]为景点名称,c[]为景点信息,d[]为景点方位信息的横坐标,e[]为景点方位信息的纵坐标//s[]为存放景点邻接矩阵信息的一维数组,根据其对称性可以用公式赋值给二维数组arc[][]{int s[]={0,1,0,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,4,2,0,0,0,0,0,2,3,0,0,0,0,0,2,3,1,0,0,0,2,0,2,0,0,
您可能关注的文档
最近下载
- 新苏教版六年级上册科学全册知识点归纳 (超全).doc VIP
- 农业保险合同.docx VIP
- 六年级上册数学教学设计-第3单元分数除法工程问题例7.docx VIP
- 新能源汽车热管理技术(1).pptx VIP
- 恶性肿瘤治疗与患者护理.pptx VIP
- 高考20个热点主题满分作文模板——标题、开头、结尾、分论点-2024年高考语文作文考前必备素材与押题范文.docx VIP
- 以问题为导向的医院医保管理经验分享题库答案-2025年华医网继续教育答案.docx VIP
- (高清版)B-T 27921-2023 风险管理 风险评估技术.pdf VIP
- 《熔化和凝固》+flashppt课件.pptx VIP
- 新生儿呼吸窘迫综合症护理.pptx VIP
文档评论(0)