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