资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2015/7/9,#,实验项目简介,:,当前,很多人都把高校作为旅游景点之一,为了使游客更好的参观校园,,,需要,设计一个校园导游咨询系统。,基本要求,A.,功能,描述:设计你的学校的校园平面图,所含景点不少于,10,个。以图,中,顶点,表示学校各景点,存放景点名称,代号,简介等信息;以边表示,路,径,存放,路径长度等相关信息。,B.,为,来访客人提供图中任意景点的问路查询,即查询任意两个景点之间,的,一,条最短的简单路径。,C.,为,来访客人提供图中任意景点相关信息的查询,。,实现提示:一般,情况下,校园的道路是双向通行的,可设校园平面图是,一,个,无向图,顶点和边均含有相关信息。,软件开发中的,可行性分析,:,对现有系统的,分析,处理流程和数据流程,当前,校园导游咨询由人工进行。登记游客信息,人工,分配,导 游。,游客,询问导游相关信息。一切操作都是由,人手动,完成。,工作负荷,由于,游客对学校不熟悉,需要在学校的各处设立咨询处,以,解决,游客,所遇到的问题。此外,需要在比较显眼设立景点介绍牌,以及,附近,景点的相关地图指引。大部分都是路标加校园示意图的方式。,费用支出,学校工作人员的工资,日常开销。各个景点的维护与修葺费用。,局限性,A.,缺少景点间的地理关系的分析和应用。,B.,无法选择两点间的最短路径和求景点间最短路径。,C.,不能对景点内的地理位置进行进一步的导航。,D.,浪费一些物资。,软件开发中的需求分析,:,需求分析,目的,:,随着,信息化社会的到来,数字化校园建设是高等学校发展的,必然,趋势,是高校建设的重要组成部分,是一项基础性、长期性和经常性,的工作,其,建设水平是高校整体办学水平。,学校形象和地位的,重要,标志,。,近年来,,我校不断发展,校园面积逐渐扩大,基础建设日益,完,善,,,校园面貌,已是日新月异,来访校园的各界人士逐渐增多。然而,我,校,依然,采用,的是“路标,+,校园示意图”的引导方式给来访者提供,校园,景点信息查询,服务,其中的缺点不言而喻,如不可改变性、不可,查询,性,等等。,需求分析,过程,:,a,),基本要求:,设计你所在学校的校园平面图,所含景点不少于,10,个。以图中顶点,表示校内各景点,存放有景点名称、代号、简介等信息;以边表示,路,径,,存放路径长度等相关信息。,为,来访客人提供图中任意景点相关信息的查询。,为,来访客人提供图中任意景点的问路查询,即查询任意两个,景点,之间,的一条最短的简单路径。,b),问题分析:,系统,要处理的数据有字符型、字符串型、浮点型,如景点的,代号,使用,字符类型、景点名称及简介等信息用字符串型、路径的长度,用,浮点,型等。它们之间存在并列、包含等关系,采用线性单链表、,图,的,邻接矩阵等数据结构来存储数据。,c),系统完成的功能:,来访客人浏览校园全景查询相关景点的信息可查询所有浏览路线,来访客人可以查询从某一景点到另一景点的最短路径;,d),程序设计分析:,利用弗洛伊德算法来计算出起点到各个顶点之间的最短路径并进行,存储,弗洛伊德算法将找出每一对顶点之间的最短路径;,e),系统的输入与输出:,键盘输入,输出等。,f),系统的操作用例:,学校正门(,0,)图书馆(,1,)行政楼(,2,)礼堂(,3,)综合楼(,4,),逸夫楼(,5,)体育场(,6,)东服(,7,)教学区(,8,)教职工公寓(,10),校园平面图顶点代码:,系统总体结构,软件开发中的总体设计,:,总体设计的内容和,过程,程序中包含的模块,主程序模块,主函数:,void main,(,void,),主要功能:声明调用其他子函数的函数,cmd,设计地图模块,函数:,MGraph InitGraph(void),主要功能:用来构造学校地图,调用函数模块,函数:,void cmd(void),主要功能:根据用户选择,调用完成各个功能的子函数,浏览函数模块,函数:,void Browser(MGraph*G),主要目的:浏览校园全景,路径查询模块,函数:,void ShortestPath_DIJ(MGraph*G),主要功能:求起点到各个顶点之间的最短路径,景点查询模块,函数:,void Search(MGraph*G),主要功能:寻找要查询的景点,并输出该景点的信息,初始化模块,函数:,MGraph*CreatUDN(MGraph*G),主要功能:初始化图形,接受用户输入,选择模块,函数:,void Floyd(MGraph*G),主要功能:选择出发点和目的地,确定位置模块,函数:,int LocateVex(MGraph*G,char*v),主要功能:定点位置,菜单模块,函数:,void Menu(void),主要功能:显示菜单,供用户选择,软件开发中的,总体设计,:,详细设计内容和,过程,Browser,函数模块,void Browser(MGraph*G),int,v;,printf,(,n);,printf,(,编号景点名称,简介,n);,for(v=0;vvexnum;v+),printf,(,%-4d,%-16s,%-58s,n,G-vexsv.num,G-vexsv.name,G-,vexsv,.introduction);,printf,(,n);,*,Cmd,函数,模块,*,CreatUDN,函数,模块,*,Floyd,函数,模块,*,InitGraph,函数,模块,*,LocateVex,函数,模块,*,Menu,函数,模块,*,print,函数模块,*,Search,函数模块,*,ShortestPath_DIJ,函数模块,*,主,函数模块,软件开发中的编码,实现,:,编码实现,过程,:,在明确了实验设计目标之后,首先确定了以下几个算法:,*,void,ShortestPath_DIJ(MGraph*G);,迪杰斯特拉,算法来计算出起点到各个顶点之间的最短路径,*,void,Floyd(MGraph*G);,佛洛伊德算法求两景点最短距离;,*,MGraph,InitGraph(void);,用来构造校园地图,*,void,Search(MGraph*G);,寻找要查询的景点,并输出该景点的信息,*,void,Menu();,菜单函数,打印出导游项目菜单,根据实验要求,在有了大致计划后根据设计的算法开始逐步的编写代码,设计过程需要查找各种资料,在百度等搜索工具的帮助下,找到想要的资源。但并非原版照抄,在自己理解的基础上参照方法写出了本程序。虽然过程中出现多次程序报错,但在同学的指导和帮助下得以顺利完成,。,软件开发中的代码,测试,:,代码测试的目的,暴露程序中的错误,以便于积极,调试,代码测试过程,进入演示程序之后如下图所示:,操作命令“,1”,,进入“浏览校园全景”模块,其结果如下图所示:,操作命令“,2,”,进入“查询所有浏览路线”模块,任意选择,0-9,中,1,个景点编号输入。此处选择景点,5,作为测试对象,其结果如下图所示:,操作命令“,3,”,进入“选择出发点和目的地”模块,任意选择,0-9,中两个景点编号输入。此处选择景点,2-6,作为测试对象,其结果如下图所示:,操作命令“,4,”,进入“选择出发点和目的地”模块,任意选择,0-9,中,1,个景点编号输入。此处选择景点,5,作为测试对象,其结果如下图所示:,操作命令“,5,”,进入“退出系统”模块,回车退出,。,代码测试,结论,:,在测试过程中不断出现各种,BUG,,经过反复调试,期间或自我摸索,或查找资料,或请教同学,最终实现了该系统的实现。,实验,总结与体会,这,次的课程设计题目是校园导游咨询系统,运用了迪杰斯特拉算法和,佛洛伊德算法及操作。程序设计较为简单,运行结果正确,,能够实现为来访客人提供校园任意景点的相关信息,以及任意景点的问路查询。在本次程序设计中原本想要把校园地图作为一个结果运行出来,但是没有成功。,通过这次课程设计试验,,我更加体会到了软件工程导论所要求的内容对程序设计的重要性,也让我加深了对其的,理解。而且通过这次课程设计,让我明白现实生活跟程序之间联系,,同时也让我明白了软件工程这门课程的重要性。通过小组三人合作,分配任务,使我们更加团结,在课程设计期间我们一起探讨,一起实践,这些都是最美好的回忆。,
展开阅读全文