- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公园导游系统
公园导游系统
摘 要 本课程设计主要解决游客方便的查询景点的当前信息,以及管理员随时修改景点信息。在课程设计中,系统开发平台为Windows xp,程序设计设计语言采用 C++,数据存储采用文件方式,程序运行平台为Windows 98/2000/XP。对于最佳路线的计算采用了dij最短路径算法来计算,在程序设计中,采用了结构化的解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。
关键词 程序设计;文件;C++;景点信息管理,最短路径
1 引 言
本课程设计主要解决游客查看各景点的当前信息,以及景点间的最佳路线,同时提供管理员修改各种信息的功能。
1.1 课程设计目的
在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法[2]。
在结构化程序设计中关键是如何将问题域中的行为(即操作)抽取出来,作为C++程序中的函数。由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。
而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为C++程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。
2 关键技术
2.1 文件存储
对文件的操作是软件开发过程中一个比较重要的环节,系统中的数据都是以文件的方式存放在系统磁盘上的,平时用户对文件的操作只限于删除和剪切和粘贴。但系统中提供了操作文件的函数接口,通过函数,可以以二进制的形式获取文件中的数据,而且还可以对文件进行修改。
2.2 单源点最短路径
对最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:
确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。
确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。全局最短路径问题 - 求图中所有的最短路径。
用于解决最短路径问题的算法被称做“最短路径算法”Dijkstra算法
图4.1系统运行总框图
5 主要函数的构成
本系统的函数主要构成如表5-1所示:
表5-1系统中主要实现功能的函数的构成
函数名 用途 1 Menu1 登录初界面。 2 Menu2 游客登录后主菜单。 3 Menu3 管理员登录菜单。 4 Menu4 管理员身份验证菜单。 5 Menu5 管理员身份验证后主菜单。 6 Insert 增加景点。 7 Delete 关闭景点。 8 Alter 修改景点信息。 9 Watch 查看景点信息以及最佳路线。 10 dij 最短路径的算法。
6 信息系统功能的分析设计
6.1 说明
以下所述各功能除登录功能及添加功能(1)外,其他所有模块都已在类的开始为对应记录集类定义了对象。
6.2 登录功能
用户启动程序后最先进入的是登录界面在这里进行选择。如果是游客,则选择游客登录方式,如果是管理员,则选择管理员登录方式。登录界面如图6.1所示:
图6.1登录界面
该界面从主函数开始,执行menu1()函数。
6.3 初始化功能
该功能目的在于初始化各景点间的路线,暂时将全部景点间的路线设为无穷大,并
从number文件中获取当前景点数目。
memset(arc,50,sizeof(arc));//初始化各景点之间的路线为无限大
fin.open(number.txt);//打开文件number.txt文件,获取当前景点总数
if(fin.is_open())
{
finnum;
T=num;
}
6.4 添加功能
本功能用于管理员将新增加的景点信息及时存储起来,对系统中的数据及时更新,函数开始首先调用ifstream类的自定义对象调用open()函数将目前的景点信息提取出来存放到临时结构体中,然后等管理员输入完新景点的信息后,再调用ofstream类的自定义对象将全部信息存储到指定文件中。
6.5 查询功能
本功能用于管理员将全部景点信息存储起来。如果用户选择查看全部景点列表,则用ifstream类的自定义对象将全部景点信息存储到临时结构体中,遍历所有的景点名并且输出,如果用户选择查看单个景点的详细信息,则根据用户选择的景点名遍历结构体对象数组来查找,当找到指定景点名后输出他的全部属性,即该景点的详细信息,如果输入不合法,返回上级菜单
文档评论(0)