预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一.设计目的 强化上机动手能力,在理论和实践的基础上进一步巩固《数据结构》课程学习的内容,掌握工程化软件设计的基本方法; 掌握图的创建和应用; 掌握迪杰斯特拉以及Prim等基本算法思想; 掌握if语句及switch语句的运用方法及嵌套应用方法; 掌握C语言主函数和被调用函数之间的参数传递方式,学会函数的调用过程和方法; 掌握结构体类型变量的定义和使用; 掌握指针变量和指向指针的指针变量的定义及使用,进一步了解指向结构体的指针变量的概念及使用方法; 能够采用模块化思想调试程序; 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力; 为后续各门计算机课程的学习打下坚实基础。 二.设计内容 用C语言编写了《西邮校园导游咨询系统》,通过使用循环、条件、数组、结构体、函数、指针、等相关C语言知识学习编写较大的程序,结合数据结构中的算法思想实现一个导游咨询系统基本的功能。 三.概要设计 1.功能模块图; 退出界面 西邮沿途风景,ATM机介绍新 鲜资讯 修改景点信息,新西邮 两个景点间的最短距离 输入出发点和目的地获取所有游览线路 从某一景点出发的最短连通路线 从一个景点到其他所有景点的最短距离 查看景点信息 浏览校园 全景 西邮校园导游咨询系统 2.各个模块详细的功能描述。 (1).浏览校园全景 可让用户浏览校园平面全景图,图上信息包括景点名称,路径长度,风景位置,ATM机位置等,一目了然。 (2).查看景点信息 用户根据界面显示的校园景点信息表,输入要查询的景点名称,可以查看景点信息。 (3).从一个景点到其他所有景点的最短距离 利用迪杰斯特拉算法,由用户输入要查询的景点编号,查询该景点到其余所有景点的最短路径,以及最短路径长度。 (4).从某一景点出发的最短连通路线 利用Prim算法求最短连通图,也就是说,让用户输入起始的景点名称就可以查询由该景点出发的所有最短连通图。 (5).用户输入出发点和目的地获取所有游览线路 利用图的深度遍历,调用递归的思想逐个遍历景点,找到由出发点到目的地的所有游览路线,并打印出来。 (6).两个景点之间的最短距离 在菜单中通过switch语句进入排序功能,同样使用迪杰斯特拉算法求出图中两个节点之间的最短路径,这里由用户输入两个景点的名称就可查询两个景点之间的最短路径,以及路径长度。 (7).修改景点信息,新西邮 在菜单中通过switch语句进入修改功能,输入要修改的景点信息数目以及要修改景点的序号,输入新的信息以及修改的路径,即修改成功,重新查询就可查询到新的景点信息。 (8).西邮沿途风景,ATM机介绍新鲜资讯 在菜单中通过switch语句进入查询功能,改模块主要是方便用户了解西邮的推荐景点的位置以及常用的ATM机的位置,每天会更新“旭日苑”和“美食广场”推荐的美食,我觉得是个比较贴近生活的模块。 (9).安全退出 用exit(0)实现,退出导游系统; (10).main函数 通过主函数main()将各个模块结合起来,main()函数主要调用了menu()菜单。 四.详细设计 1.功能函数的调用关系图 主函数main() Case1:显示校园全景图 Case2:查看景点信息 Case3:从一个景点到其余所有景点最短路径 Case4:从一个景点出发的最短连通图 Case5:出发点到目的地的所有路径 Case6:两个景点之间的最短距离 Case7:修改景点信息 Case8:景点位置,ATM机介绍,今日资讯 Case9:退出系统 菜单menu() 2.各功能函数的数据流程图 录入信息模块 开始 邻接矩阵存储 申请空间 依次设置景点编号 输入 路径长 输入 介绍 输入 名称 景点信息存储在邻接矩阵中 查找信息模块 输入要查找的景点名称 调用locate()函数 所查询景点序号存在 输出信息 不存在 返回主菜单 选择2 两景点最短路径模块 输入两个景点的名称 调用Dijkstra()函数 按景点序号依次比较找最短路径 返回主菜单 选择6 输出最短路径和长度 两景点所有路径模块 输入两个景点的名称 调用path()函数 由该景点开始试探有无到终点的路径,递归再找下一个顶点 返回主菜单 选择3 输出两景点所有路径 一景点出发的最短连通路径模块 输入出发景点的名称 调用Prim()函数 从该景点出发选择与它关联的最小权值的边,加入到最小生成树中的集合 返回主菜单 选择4 输出最小生成树 修改景点信息模块 调用Newgraph()函数函数 修改景点的基本信息,以及边的信息 返回主菜单 选择7 修改成功,查询信息已变 3.重点设计及编码