校园导游系统课程设计报告.docVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南京航空航天大学 《数据结构》课程设计报告 校 园 导 游 系 统 目录 需求分析…………………………2 程序的主要功能…………………2 程序运行平台……………………2 数据结构…………………………2 算法设计思想及时间复杂度……2 测试用例及结果…………………5 存在的不足与对策及编程体会…6 程序源代码………………………6 一、需求分析 南航学生家长及入学新生很需要一个导游程序,来引领他们参观和了解南航。 二、程序的主要功能 1、查询各景点的相关信息 2、查询任意两景点间的所有路径 3、查询任意两景点间的最短路径 1、增加景点 4、推荐参观路线 2、删除景点 5、更新导游信息(操作需管理员密码) 3、更新道路信息 6、对景点联通性的浏览(2阶矩阵表示) 4、更新景点信息 7、学校全景一览 5、修改管理员密码 三、程序运行平台 Microsoft Visual C++ 6.0 四、数据结构 图的邻接矩阵存储表示,栈的顺序存储表示 五、算法设计思想及时间复杂度 主要函数介绍: 1、求两点间的所有路径: a)相关函数: void dfs(MGraph G,SqStack path,int *used,int u,int w);//深度优先遍历 b)主要算法思想:栈的相关操作+深度优先搜索 创建一个空栈保存路径,一个空数组保存已标记节点,首先让起点进栈,并标记为已访问,然后调用深度优先搜索,如果该顶点的相邻顶点(即与其有直接通路的顶点)未被访问过就标记为已访问,进栈,然后对它调用深度优先搜索,依次类推,直到获得所有到指定终点的路径。 c)时间复杂度:O(VE),其中V为图的顶点数目,E为图中边的数目。 2、求两点间的最短路径: a)相关函数: void ShortestPath(MGraph G,int v0,int P[][Nmax],int *D);//查询任意两景点间的最短路径 void PrintShortest(MGraph G,int v1,int v2,int P[][Nmax],int *D); //输出最短路径 b)主要算法思想:迪杰斯特拉算法 假设起点为v0,S为已找到的从v0出发的最短路径的终点的集合,其初始状态为空集。而vj为当前求得的从v0出发的最短路径的终点,则将j加到集合S中去,然后修改从v0出发到集合S的补集上任一顶点vk可达的最短路径的长度。重复上两步共n-1次即可。 c)时间复杂度:O(V*V*V),V表示图中的顶点数目。 3、推荐参观路径: a)相关函数: void RecommentPath(MGraph G);//推荐参观路线 void NextValue(int k,int n);//生成下一个顶点 void Hamiltonian(int k,int n);//搜索所有的回路 b)主要算法思想:回溯法求哈密顿回路。 c)时间复杂度:O(E),其中E为图中边的数目。 4、更改导游信息 a)相关函数: void MakeChange(MGraph G,char *pass);//更新导游信息(操作需管理员密码) void ChangeText(MGraph G,char *pass);//更新文本内容 b)主要算法思想: 第一个函数操作需要有管理员权限,初始密码为:1234,不然信息的安全性无法保证。修改后的信息会通过上面第二个函数写入文件,保证下次运行是修改后了的信息。 特色函数介绍: 1、验证密码正确性及修改密码函数 int ConfirmPassword(char *pass);//验证密码是否正确 void ChangePassword(char *pass);//修改管理员密码 用户输入密码时,程序会自动输出“*”符号,以保证密码不被其他人看到。修改密码时,程序提示用户输入两遍,以验证密码的正确性。 所以只有拥有密码的管理员才能够更新导游信息和修改密码。初始密码为:1234. 2、验证输入有效性的函数 int ConfirmChoice(int low,int high);//验证输入是否合法,是,则返回用户的选择 如果输入不合法,则程序输出出错信息,并提示用户重新输入选择。 六、测试用例及结果 以下是程序部分功能运行结果的截图: 七、存在的不足与对策及编程体会 存在的不足: 1、我的程序中有一个功能是为用户推荐游览路径,我的主要思想就是用回溯法在图中搜索哈密顿回路。即只要沿着该条简单回路,能不重复地游遍全校的景点,就把它当做推荐路线。 2、程序功能还不够强大,比如可以增加一个功能是:

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档