




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计论文(附有代码!)题 目: 校园导游咨询 学 院: 计算机科学与工程学院专 业: 计算机科学与技术 姓 名: 学 号: 指导教师: 2014年9月22日 摘 要桂林众山环绕,风景优美,加之近年来校园环境也得到不断地改善,来访校园的游客逐渐增加,为了方便众多游客对校园景点的参观,需要给来访人士提供校园导游咨询服务,利用计算机建立一个便利的咨询系统可以很好地解决这个问题。在本设计实验中,我所采用的是邻接矩阵作为数据的存储结构,用不同的功能模块对两地距离和校园道路信息进行编辑。当游客来访时,系统能根据用户输入的景点代号查询景点信息,提供任意两个景点间的最短路径查询,并能查询校园内的交通信息,方便游客访问。工作人员还可以为校园更新景点以及路径信息。本文将简单介绍该系统的开发背景,详细介绍系统的主要设计思路,函数的建立和使用过程,该系统功能的实现方式和实现结果,以及对所遇到问题的分析解决,最后对该系统进行总结描述。关键词:校园导游咨询;C+;数据结构;最短路径;查询; 目 录引言 11系统概述12需求分析12.1 系统需求12.2 开发环境23详细设计33.1 系统结构33.2 数据结构设计以及数据的初始化43.2.1 图结构设计43.2.2 数据的初始化43.3 查询模块的详细设计53.3.1 查询模块功能子函数设计53.4 更新功能模块详细设计73.4.1 更新模块功能子函数设计84所遇到的问题和分析解决105系统特色及关键116结论12参考文献 13第 50 页 共 13 页桂林电子科技大学综合设计说明书用纸 引言随着计算机科学技术的不断提高,计算机依靠其强大的功能已经成为人们生活中不可缺少的一部分,计算机能解决人类生活中的大部分问题,为人类文明和社会进步做出了巨大贡献。桂林是一个全世界著名的旅游城市,近几年来旅游业得到了飞速的发展,来自各个国家各个城市的游客给城市带来了巨大的经济效益。地处尧山地带的桂林电子科技大学风景非常优美,随着我们大学知名度的提高,来访游客数量大大增加,这就需要我们建立一个校园导游咨询系统来解决游客的来访咨询,为游客提供所需要了解的景点信息,或者统观所有景点信息后再选择需要参观的景点;校园里有公车巴士等交通工具,价格合理,乘坐方便,可以为游客们提供代步工具,系统可以为游客提供所有的交通方式由游客自行选择。当游客们参观完某景点需要参观下一个景点时,系统可以为其提供两景点间的最短路径,减少游客的步行量。最终的目的是给各位游客们提供参观校园的便利,让游客更好地了解我们的大学。使校园旅游实现管理信息化,智能化。1 系统概述 从选定题目之后,本人在校园内做了实地调查,画出了大致的校园平面图;并查找相关资料,熟悉了开发环境以及图结构的知识。参考了资料书上的其他类似案例,对系统的开发做了较好的准备。该系统是由用户、管理员、计算机组成的用以进行校园咨询校园更新的系统。可实现通过认为输入查询各类景点信息,交通信息;当校园景点更新时,工作人员可以及时地通过系统更新景点信息,为游客提供任意两景点之间的最短路径。2 需求分析2.1 系统需求校园导游咨询系统的基本要求:(1)设计你所在学校的校园平面图,所含景点不少于10个。(2)以图中顶点表示校内各景点,存放有景点名称、编号、简介等信息;以边表示路径,存放路径长度等相关信息。(3)为来访客人提供图中任意景点相关信息的查询。(4)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。(5)必须具有校园平面图的修改和扩充功能,即某些景点坐标的修改和景点个数的增加。(6)需要有5条以上的文件记录。 (7)为游客提供校园交通方案的查询。 (8)能够根据景点实际变化进行景点信息的更新。 (9)能够将更新后景点信息传入到文本文件里保存。程序设计分析: (1)构造一个无向带权网G并用邻接矩阵来存储; (2)利用Dijkstra算法来计算出起点到各个顶点之间的最短路径并进行存储,弗洛伊德算法将找出每一对顶点之间的最短路径;系统的输入与输出:(1) 键盘输入。(2) 磁盘输入输出。该系统需要具备下面几个使用要求: (1)需要有友好的系统界面,易于理解,操作简单,中文菜单。 (2)数据处理要保证精确度,能给予用户实际有效的信息。 (3)当用户输入错误,需要有友好的提醒界面,并能再次输入。 (4)将用户需要的信息完整地输出到系统界面,不能输出无用信息和不完整的信息。 (5)系统易于读懂,易于维护和扩充。 2.2 开发环境 校园导游咨询系统在联想计算机上进行开发配置为: CPU:AMDTrinityAPUA8-4500M CPU 2.30GHz 操作系统为 windows 7 旗舰版(64)开发平台是VC+6.0开发语言:C+C+是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。3 详细设计3.1 系统结构从该系统整体结构上分析,该系统主要分为查询模块和更新模块,查询模块包括景点信息查询,任意两景点间的最短路径查询,校园交通方案的查询这三个基本查询功能,基本上满足来访游客的查询需求。更新模块包括校园景点信息更新,校园景点道路更新,车辆行驶路线更新等功能,可以对校园各个信息进行更改,以便于来访游客能了解到景点的最新信息。这两个模块之间通过这里已经具有了紧密的联系。因为各种查询必须建立在各种数据的输入更新之上,当校园信息改变时,游客查询得到信息也应该是更新过后的信息。通过查询模块与更新模块之间的功能联系,就可以实现一个有机的循环。系统基本运行界面如下所示,这里我用了一个while(1)将开始菜单放到一个初始大循环里,当用户操作完成一项基本功能后便会自动回到这个主菜单,方便下一个用户的使用。用一个switch(k)由用户输入的相应字符来执行相应的功能函数,最后可以按#号键退出。3.2数据结构设计以及数据的初始化3.2.1图结构设计在本系统中,需要使用图结构来存储各个景点数据。图由若干边和若干顶点组成,在这里每个顶点对应的景点包含有景点编号,景点坐标,景点名称,景点简介这些信息。图是一种非线性的数据结构,其中的数据元素之间是多对多的的关系。对于校园景点来说,其中每一个景点可以看做是一个顶点,若两个景点之间可以直接到达,那么他们有一条边相连,在边上附加一个权值,代表两个景点间的距离。若两景点间不能直接到达,我们可以使用一个给定的数值来代表距离的无穷大。我们使用邻接矩阵来表示图,它由一个顺序存储顶点信息的顶点表和一个存储顶点间的相互关系的关系矩阵两部分组成。如下所示,图结构包括当前顶点数目,当前边的数目。用一个一维数组来存放顶点,用一个二维数组来存放边。typedef structint n,e; /顶点数目,边数目Vertex vexsMaxVertexNum; /存放顶点Vertex* pvexs; /顶点指针int edgesMaxVertexNumMaxVertexNum; /存放边MGraph;3.2.2数据的初始化图结构定义好之后,就需要把图结构中的各个数据项初始化。方便后边程序的使用。首先在程序中定义一个图的全局变量MGr,初始时默认顶点个数也就是景点个数为15,给每个景点按照校园地图附上景点信息,并用一个for循环暂时先给图中每一条边赋值为无穷大,顶点到自身的距离为0。然后通过一个int mile(int a,int b)函数,通过给定的两个景点的编号来调用两个景点的x,y坐标进而求出它们间的距离。并将求出来的距离赋值到图结构的相应的边上。在车辆结构中,也先定义一个车类型的全局变量,用数组来表示三种不同类型的车辆,每种车型包含有车辆名称,车辆速度,车辆票价,车辆行驶路线等基本信息。3.3 查询模块的详细设计本模块主要用于实现游客对现有景点的信息的查询,通过这个模块的功能可以为游客提供需要查找的景点信息。由于本系统需要使用文本文件来存储景点信息,所以我们在程序里要首先创建一个文本文件来存放所有的景点信息,当使用景点查询功能时,首先在文本文件中找到对应的景点信息,然后从文本文件里输出并显示。考虑到如果用户需要一次性查询所有景点信息,则将文本文件里的所有景点信息输出显示。在该模块中,程序还可以实现两个景点间最短路径的查询。图结构中已经存放有边的长度的数组,任意两个景点之间可以有多条路径到达,为了能使用户快速地到达,使用Dijstra算法和打印函数可以实现最短路距离的查询,并将该条路径顺序打印到屏幕上。为了使功能丰富,这里还添加了校园交通方案的查询。提供给用户两个景点之间的多种交通方案供用户选择。给每一种类型的车辆规定一条路径,该种车辆在这条道路上往返,能够经过某些景点,但也有某些景点不能通过。反馈给用户包括车型、车辆从出发点到终点所用的时间、票价信息。3.3.1查询模块功能子函数设计(1) void writefile()函数文本文件的读入函数。使用ofstream fout(ST3.txt)来实现建立打开一个文本文件,并用一个for循环来依次读入校园景点信息,每一个景点信息存放为一行,信息读入完成关闭ST3.(2) void find(int i)与void allvexs()函数这里的整型参数i代表着需要查询的校园景点的编号,使用ifstream fin(ST3.txt)来打开存放有所用景点信息的文本文件,用一个for循环来查找该编号是否存在。在void allvexs()中用一个for循环多次调用void find(int i)函数,实现对所有景点信息的查询。(3) void Dijkstra(MGraph *G,int v,int path,int dist)函数这里使用了著名的Dijkstra算法,它可以实现求出图中某个源点到其余各顶点的最短路径。按照路径长度递增的次序产生最短路径。首先在程序中定义两个个数组distMaxVertexNum、pathMaxVertexNum,数组元素pathi用来存放各个顶点的顶点信息,其中每个元素disti表示起点V0到每个终点的最短路径长度。假设S表示以求出的最短路径的终点集合,那么下一条最短路径即从顶点V0到达顶点Vx的路径,它们之间的最短路径长度要么为弧的权值,要么为distj与Vj到Vx的权值之和。因此下一条路径可以用distx=G-edgesv0Vx或者distx=distj+G-edgesVjVx来存放源点到该顶点的最短路径。(4) int DispPath(MGraph *G,int path,int dist,int start,int end)函数由于前面定义的一维数组dist和path已经在Dijstra函数中将最短路径上的顶点信息和源点到各顶点的距离保存了下来,这时就需要定义一个DispPath函数来输出最短路径上的顶点信息及总距离。系统通过调用用户输入的两个景点编号确定起始景点和目的景点,并使用一个while循环实现依次递减将各景点信息输出。 查询1号景点到4号景点的最短路径:(5) float Time(int a,int b,int c)和int li(int a,int b,int i)函数在车辆类型的初始化中已经为各个车辆录入相关的车辆信息,使用一个一维数组Car.mycari.licheng来存放车辆运营的景点历程,规定它所能经过的景点。利用time()函数来求往返两景点需要的时间。在li()函数中首先需要用for遍历判断用户输入的两个景点是否在车辆规定的运营路径上,由于部分景点不通过,所以路程不能由最短路径求出,只能通过使运营路径上相邻的景点一一相加求出,除以车辆速度,返回一个时间值。最后用li()函数将各个信息输出,无法到达的景点给出相应提示。3.4 更新功能模块详细设计校园导游咨询系统的另一个功能模块就是对于整个系统的数据具有一定的更新功能,对于管理人员而言,当校园环境发生实时变化,他们就需要修改系统内部原本的旧信息,把变化后的新信息录入到系统当中。对于游客而言,他们需要的是当下最新的景点和路径等校园信息,以确定他们的校园旅游方案,不至于出现错误的访问方式。由上面的叙述可知,最初的景点数据信息已经保存在文本文件中了,每个景点信息都占用一行。当某个景点暂停开放或施工,游客是不能访问的,这时就需要从文本文件中删去其中的一行景点信息,游客在访问时就无法得到这个景点的信息。当校园中道路需要关闭通行时,除去路径首尾的两个景点之间的相邻关系,用无穷大替换掉原有的权值,使得他们无法直接到,这样就可以实现道路的删除。同样,当开放新的校园景点和开通新校园道路时,系统也就必须具有校园景点和校园路径的增加功能,管理员可以在不同的地理方位定义新的景点,录入新的景点信息,增加景点与景点之间的相邻关系,通过改变权值,使它们能够直接到达。校园景点地理位置也可以根据实际规划进行修改,通过x,y坐标的调整可以改变整个校园平面图,合理使用可以达到良好的景点排版效果。对于校园的变化,以及乘客的需要,我们还要适当地调整校园车辆的运营线路,方便官大游客的访问。在更新模块中,要特别注意错误处理和条件的判定问题,因为旧的校园信息可能与需要更新的校园信息所冲突,例如地理位置冲突,景点名称冲突等,输入重复以及不合法的输入都可能带给游客错误的信息,所以需要通过必要的提醒信息引导游客的使用。3.4.1更新模块功能子函数设计(1) void addvex()函数景点的添加函数。首先判断景点个数是否达到约定的最大景点个数,否则继续添加新景点的各个景点信息,注意这里的X,Y坐标的输入。用一个for循环将邻接矩阵中新的行和列MGr.edgesij、MGr.edgesji初始化赋值为无穷大。用ofstream fout(ST3.txt,ios:app)打开原来存放景点信息的文本文件实现将新的景点信息添加到原文本文件的末行。图中顶点个数MGr.n+,添加结束。增加景点编号为15的景点。(2) void addedge()函数校园道路添加函数。由用户输入需要添加路径的原有的两个景点的编号,判断输入是否有错,输入正确时,通过这两个景点的坐标给这条路径赋上相应的权值。(3) void zuobiao() 函数修改校园景点坐标函数。由用户输入需要修改的景点的编号,接着给景点输入新的坐标值,主要判断该新坐标是否已经存在,否者会影响最短路径函数的使用。修改完成后,使用writefile()函数将修改后的景点信息重新录入前面定义的文本文件ST3.TXT中。修改景点编号为0的坐标信息。(4) void delroad()函数道路删除函数。由用户输入需要删除路径的两个景点的编号,判断该路径权值是否为无穷大,修改邻接矩阵中相应的矩阵元素,将路径长度权值赋值为无穷大。 (5)void del()函数景点关闭函数。由管理员输入需要关闭的景点编号,用一个for循环将所有能直接到达该点的路径赋值为无穷大,把景点信息改为关闭。打开文本文件,fin.open(ST3.txt),定义一个图类型的指针MGraph *p=NULL,并给它分配对应顶点大小的空间。为了将文本文件里的景点信息删除,用指针对其标上-1删除记号,ofstream fout(ST3.txt),打开文件,再次读入文本,当有-1标号的不再读入,从而实现了在文本文件内将景点信息删除掉。删除景点2和景点3(6) void gaidao()函数校园交通车辆的改道函数。首先定义一个一维数组dMaxVertexNum用来存放顶点信息,由管理员选择需要修改运营路径的车辆类型,用一个for循环实现依次输入车辆运营路径上所经过的景点,这样就完成了一条新的站点线。将数组中的元素存入车辆类型的历程数组中,Car.mycara.lichengi=di。并在屏幕上输出这条线路。改变公交车的行驶路线。4 所遇到的问题和分析解决(1) 在进行文件读写时,只能读出最原始的数据,当对景点信息进行更新后,文件里的信息没有变化。 解决方法:在对景点信息进行更新的功能函数里添加写函数,将修改后的内容再次写入人本内保存。再次验证,结果正确。(2) 当用户输入错误时,利用函数递归进行再一次调用使用户再一次输入,在退出子函数回到上一层函数时出现了其他无关功能干扰项或者又从该函数体中再次进入该函数继续执行,多次输入错误,就出现了多次函数重复输出,影响了函数功能的使用。 解决方法:在函数中只使用if 、else if条件判断来分隔函数调用,并使得函数回到主体函数时就结束。 (3)在使用删除功能的时候,不知道如何实现对文本中指定的某一行的删除。解决方法:通过看书和百度等工具,查阅相关的资料,并向其他同学询问。在程序上慢慢调试,直到解决问题。 (4)在系统完成初期,对用户使用的考虑不周全,自己可以熟练使用此系统,但是他人却不能在没有提示的情况下使用此系统,说明了该系统此时并不具备太多人性化,还不适合用户使用。解决方法:站在用户的角度,充分考虑用户的使用习惯,让其他同学时使用此系统,收集使用评价进一步改善用户使用情况。 (5)在算法的编写时有很多语法和逻辑错误,一直调试不成功,输出的数据不正确。 解决方法:重新复习该算法内容,在草稿纸上将程序上的算法步骤一一列出来,判断出错误出现的地方进行修改。5 系统特色及关键技术(1) 在文本文件中删除指定的一行信息。(2) Dijstra算法。6 结论1、 通过暑假期间的学习准备以及这一段时间对课程设计的学习开发,校园导游咨询系统已经基本完成,能够实现系统所要求的基本功能。完成后的系统能够根据用户的输入实现一系列查询功能,根据管理人员的输入完成添加、删除、修改等更新功能。具体功能为(1)查询指定校园景点信息(2)查询所有校园景点信息(3)校园景点间的最短路径查询(4)校园景点交通方案查询(5)增加一个校园景点(6)增加一条校园道路(7)修改校园景点地理坐标(8)关闭校园景点(9)修改车辆的运营路段。完成后的系统对于设计阶段的功能要求有了一定的增加和完善,使得它更为人性化。2、(1)由于未能做好充分的准备查找到先关资料以及个人能力还是有限,所以未能完成校园整体平面图的打印输出以及更新功能。 (2)在校园交通方案的制作中,由于设计的校园车型数量少和校园地图较为简单,没有对游客给出最佳的交通方案。3、 经过本次对算法与数据结构的课程设计,我得到了很多收获以及经验体会。本次课设让我真正对图这种数据结构有了清晰的了解,能将上学期所学知识真正应用到了实践当中,能结合生活实际通过计算机解决生活中的问题。4、 其次我要感谢我的指导老师。在课程设计上给予了我很多帮助,这是我能顺利完成这次报告的主要原因。课程设计的细节和每个数据,都离不开你们的细心指导。这一次的课程设计也让我明白自己对所学知识并不能熟练应用,常用的C语言语句掌握不好,有时也会犯语法错误,经常需要重新翻开课本重读它的概念用法。在设计过程中对于用户的需求分析夜了一定进步,能把用户的基本需求在计算机中总结并实现。本次课程设计也让我知道在今后的学习中,必须端正态度,打好基础,才能熟练地运用所学的知识。 参考文献数据结构实用教材 (C语言版)电子工业出版社 丛书主编 郑阿奇 2011年4月 算法与数据结构 (第3版) 高等教育出版社 丛书主编 张乃孝 2012年1月 C语言程序设计 (第二版) 清华大学出版社 丛书主编:谭浩强 2009年10 月代码;#include#include #include #include#includeusing namespace std;#define MaxVertexNum 30 /景点个数最大30#define MAXCOST 1000 /定义路径的无穷大typedef struct int number; /景点编号int x,y; /景点坐标char name20; /景点名称 char introduce100; /景点简介Elemtype;typedef struct /定义顶点int num; /顶点编号Elemtype date; /顶点信息Vertex; typedef structint n,e; /顶点数目,边数目Vertex vexsMaxVertexNum; /存放顶点的一维数组Vertex* pvexs;int edgesMaxVertexNumMaxVertexNum; /存放边的长度MGraph;typedef struct char name10; /车型类别int sudu; /车的行驶速度int price; /车票票价int licheng20; /车子所能经过的景点的景点编号int Num; /所经过顶点的数目cartype;typedef struct cartype mycar3;CAR;CAR Car;MGraph MGr; /全局变量,定义MGr为MGraph类型int pathMaxVertexNum; /最短路径上的顶点信息int distMaxVertexNum; /源点到各顶点的距离int mile(int a,int b) /给定两个顶点,由景点坐标求其距离int c,d; c=MGr.vexsa.date.x-MGr.vexsb.date.x; d=MGr.vexsa.date.y-MGr.vexsb.date.y; return sqrt(c*c+d*d);void initMGraph() /初始化图int i,j;MGr.n=15; /初始景点至少15个MGr.e=16; /由16条道路连通for(i=0;iMGr.n;i+) /初始化存放边权值的数组 for(j=0;jMGr.n;j+)MGr.edgesij=MAXCOST; for(i=0;iMGr.n;i+) MGr.edgesii=0; /顶点到自身距离为0void howlong() /由顶点坐标求其间距离MGr.edges01=MGr.edges10=mile(1,0); MGr.edges02=MGr.edges20=mile(2,0);MGr.edges04=MGr.edges40=mile(4,0);MGr.edges23=MGr.edges32=mile(3,2);MGr.edges45=MGr.edges54=mile(5,4);MGr.edges56=MGr.edges65=mile(6,5);MGr.edges78=MGr.edges87=mile(8,7);MGr.edges37=MGr.edges73=mile(7,3);MGr.edges79=MGr.edges97=mile(9,7);MGr.edges910=MGr.edges109=mile(10,9);MGr.edges911=MGr.edges119=mile(11,9);MGr.edges912=MGr.edges129=mile(12,9);MGr.edges1213=MGr.edges1312=mile(13,12);MGr.edges1314=MGr.edges1413=mile(14,13);MGr.edges141=MGr.edges114=mile(14,1);MGr.edges69=MGr.edges96=mile(9,6);void info()MGr.vexs0.num=0;MGr.vexs0.date.x=250;MGr.vexs0.date.y=0;MGr.vexs0.date.number=0;strcpy(MG,信息科技学院);strcpy(MGroduce,桂电附属三本学院);MGr.vexs1.num=1;MGr.vexs1.date.x=200;MGr.vexs1.date.y=0;MGr.vexs1.date.number=1;strcpy(MG,学校正门);strcpy(MGroduce,花江校区大门);MGr.vexs2.num=2;MGr.vexs2.date.x=250;MGr.vexs2.date.y=50;MGr.vexs2.date.number=2;strcpy(MG,迎宾桥);strcpy(MGroduce,迎宾桥,意在迎接来客);MGr.vexs3.num=3;MGr.vexs3.date.x=250;MGr.vexs3.date.y=150;MGr.vexs3.date.number=3;strcpy(MG,图书馆);strcpy(MGroduce,近年才建成的西南最大图书馆);MGr.vexs4.num=4;MGr.vexs4.date.x=300;MGr.vexs4.date.y=80;MGr.vexs4.date.number=4;strcpy(MG,实训楼);strcpy(MGroduce,同学们学习的地方,国家级电子实验室);MGr.vexs5.num=5;MGr.vexs5.date.x=300;MGr.vexs5.date.y=130;MGr.vexs5.date.number=5;strcpy(MG,游泳馆);strcpy(MGroduce,学校里唯一的泳场,共有两个泳池);MGr.vexs6.num=6;MGr.vexs6.date.x=300;MGr.vexs6.date.y=180;MGr.vexs6.date.number=6;strcpy(MG,国防生训练场);strcpy(MGroduce,这里是国防生们进行各种军事训练的地方);MGr.vexs7.num=7;MGr.vexs7.date.x=250;MGr.vexs7.date.y=200;MGr.vexs7.date.number=7;strcpy(MG,科技楼广场);strcpy(MGroduce,这里视野开阔,场地平整,紧挨着相思湖);MGr.vexs8.num=8;MGr.vexs8.date.x=200;MGr.vexs8.date.y=200;MGr.vexs8.date.number=8;strcpy(MG,第五教学楼);strcpy(MGroduce,计算机科学与工程学院办公学习楼);MGr.vexs9.num=9;MGr.vexs9.date.x=250;MGr.vexs9.date.y=250;MGr.vexs9.date.number=9;strcpy(MG,学校食堂);strcpy(MGroduce,这里有4个独立食堂以及3楼其他各色的美食铺);MGr.vexs10.num=10;MGr.vexs10.date.x=230;MGr.vexs10.date.y=280;MGr.vexs10.date.number=10;strcpy(MG,田径场);strcpy(MGroduce,跑步锻炼身体的地方);MGr.vexs11.num=11;MGr.vexs11.date.x=280;MGr.vexs11.date.y=280;MGr.vexs11.date.number=11;strcpy(MG,商业街);strcpy(MGroduce,学校的商业街,美食街,同学购物的地方);MGr.vexs12.num=12;MGr.vexs12.date.x=150;MGr.vexs12.date.y=300;MGr.vexs12.date.number=12;strcpy(MG,风雨体育馆);strcpy(MGroduce,里面有健身房,羽毛球场,篮球场,舞蹈室等体育设施);MGr.vexs13.num=13;MGr.vexs13.date.x=100;MGr.vexs13.date.y=300;MGr.vexs13.date.number=13;strcpy(MG,网球馆);strcpy(MGroduce,这里是校园里唯一的室内网球设施);MGr.vexs14.num=14;MGr.vexs14.date.x=50;MGr.vexs14.date.y=350;MGr.vexs14.date.number=14;strcpy(MG,宿舍区D区);strcpy(MGroduce,较为偏远的宿舍区D区,新的宿舍楼,还有独立的食堂!);void writefile() /将顶点信息写入文件内int i;ofstream fout(ST3.txt);if (!fout)cout文件打开失败!endl;return;coutMGr.n=MGr.nendl;for(i=0;iMGr.n;i+)foutMGr.vexsi.date.numberMGr.vexsi.numMGMGr.vexsi.date.xMGr.vexsi.date.yMGroduceendl;fout.close(); void find(int i) /查找指定景点信息int j;ifstream fin(ST3.txt);if(!fin)cout文件打开失败!endl;return ;for(j=0;jMGr.vexsj.date.numberMGr.vexsj.numMGMGr.vexsj.date.xMGr.vexsj.date.yMGroduce;if(MGr.vexsj.num=i)cout顶点编号:MGr.vexsi.numendl;cout景点编号:MGr.vexsi.date.numberendl;cout景点名称:MGendl;cout景点坐标:(MGr.vexsi.date.x,MGr.vexsi.date.y)endl;cout景点简介:MGroduceendl;fin.close();void allvexs() /显示所有景点信息int i;for(i=0;iMGr.n;i+)find(i);cout=MaxVertexNum)cout非常抱歉,景点个数已经达到上限,无法添加。endl;return ;MGr.vexsj.num=j;MGr.vexsj.date.number=j;cout新景点编号为:jendl;coutMGr.vexsj.date.xMGr.vexsj.date.y;for(i=0;iMGr.n;i+)if(MGr.vexsj.date.x=MGr.vexsi.date.x&MGr.vexsj.date.y=MGr.vexsi.date.y)coutMGr.vexsj.date.xMGr.vexsj.date.y;coutMG;coutMGroduce;for(i=0;i=j;i+)MGr.edgesij=MAXCOST;MGr.edgesji=MAXCOST;ofstream fout(ST3.txt,ios:ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度财务人员个人转正工作总结(6篇)
- 电脑耗材培训课件
- 电脑知识培训计划表课件
- 高考小说探究的种类课件
- 第1课《消息二则:我三十万大军胜利南渡长江》课件 2025-2026学年统编版语文八年级上册
- sem考试试题及答案
- 电网安全知识培训课件
- 电网业务基础知识培训内容课件
- 电线的种类教学课件
- 2025医院消毒供应中心工作标准流程图表
- 二、问题解决型(指令性目标)QC成果案例
- 企业外包业务安全生产专项检查表(全面)1管理学资料
- 航海英语听力与会话第四版朗读题70篇
- 手机保密专题教育课件
- 公司QHSE(职业健康安全环境)体系管理程序文件
- 管理咨询与中国管理咨询实践
- 信息通信建设工程预算定额 (2017版)第四册+通信线路工程预算定额
- 2023年高中音乐课件情怨(独唱)-电视剧《胡雪岩》主题歌
- 广东省珠海市香洲区2022-2023学年八年级下学期期中英语试卷
- PICC常见并发症的预防及处理
- 发电机常规试验作业指导书
评论
0/150
提交评论