数据结构课程设计-校园导航
数据结构校园导航系统课程设计报告
《校园导航系统》课程设计报告
姓名:蒋小文
学号:110236100123 班级:1班
专业:网络工程
指导教师:唐轶媛蒋荣萍
时间:2012年7月5日信息科学与工程学院
目录
摘要 (1)
1.目的 (2)
2.要求 (2)
3.题目 (2)
4.任务 (2)
1).需求分析 (3)
2).概要设计 (4)
3).详细设计 (5)
4).调试分析 (8)
5.课设总结 (18)
6.附录源代码 (19)
1.目的
数据结构是计算机专业的核心课程,是一门实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C (C++)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。
2.要求
2.1 课程设计时间为2周;
2.2 设计语言C(C++)不限;
2.3 课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。上机时带上源程序、数据结构教材、C语言教材。
2.4 上机任务
(1)选择并定义合适的数据结构;
(2)根据程序所要完成的基本要求,设计出完整的算法;
(3)设计出主程序(main函数),使其成为完整的程序。
2.5 上机时间:上午8:30--11:30,下午3:00--5:30
3.题目
题目:校园导航系统
设计一个校园导游程序,后台操作:
3.1、操作员信息管理如修改密码等
3.2、能根据学校的规模进行添加景点信息、修改景点信息等功能,
3.3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等)
数据结构课程设计_校园导航系统 _课程设计报告
南京工程学院
课程设计说明书(论文)
题目校园导航系统
课程名称数据结构
院系通信工程学院
专业信息工程
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:2008 年12月29 日至年月日
目录
1.课程设计题目 (1)
2.软件功能描述 (1)
3.软件总体设计 (1)
3.1数据结构描述与定义 (1)
3.2模块设计 (3)
4.测试结果与分析 (4)
5.课程设计总结 (5)
附录:源程序清单 (6)
1.课程设计题目
校园导航系统
2.软件功能描述
在近一个星期的努力下,我编写的校园导航系统软件终于能够成功完成。采用工程思想,将系统共分一下几个模块:数据结构定义模块、导航图建立模块、求最短路径模块、主菜单;
下面是具体各功能简单的实际应用:
➢数据结构定义模块:模块定义了导航图中各个节点的基本结构类型,主要采用邻接矩阵的存储结构来真实反映各节点到其他所有节点的路径长度(权值大小)。
➢导航图建立模块:采用上述结构体类型对导航图中每个节点进行赋值。包括:各定点的名称(地点名),各个节点到其他所有节点的真实路径长度(赋权值)。
➢求最短路径模块:本模块的基本思想是采用迪杰斯特拉算法求最短路径。次模块是本校园导航系统的核心模块,求两点间的最短路径与求一点到其他所有点最
短路径两个子功能均是在最短路径算法模块的基础上进行调用,进而实现导航功
能。
➢主菜单:主菜单中主要是显示导航图中的所有导航节点,能够快速方便的对各个地点进行导航。
以上程序的几个模块,构成了校园导航系统的基本组成部分,程序运行良好,达到了课程设计的基本要求。由于所学知识有限,功能各个方面还有欠妥之处,希望得到指出与改正。
数据结构课程设计校园导航
一、课程设计目的
本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及
编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、
牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和
应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序
设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
二、课程设计内容
1)问题描述
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有
关景点介绍、游览路径等问题。
2)基本要求
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。
(3)查询图中任意两个景点间的所有路径。
(4)增加、删除、更新有关景点和道路的信息
三、课程设计过程
1.需求分析
(1)设计学校的校园平面图,选取出若干的具有代表性的景点构成一个抽象的
无向带权图,顶点为景点,边的权值代表了景点间路径的长度。
(2)将景点的序号,名称,介绍存放起来准备查询。
(3)提供任意景点的信息;
(4)提供任意经典的路径查询及其最优路线的查询
(5)平面图景点的增加及删除,以及边和权值(长度)的改变
2.概要设计
1:第一点是主界面的设计,首先,为了该系统各个功能的管理,设计出含有多个菜单项的
校园导航设计
前言
本课程设计主要解决当人们来到本校园中通过较简易的导航系统进行校园游览的程序设计。在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用C语言,程序运行平台为Windows 98/2000/XP。对于最短路径采取了迪杰斯特拉算法,在程序设计中,采用了结构化与面向对象两种解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在生活中解决实际问题
现代社会,新兴科技日新月异,信息千变万化,人们在渴望得到最多最广的信息的同时又渴望得到信息的路径能越来越简单,易操作,而且能在简易的操作中得到更多的信息。这就要求信息咨询系统的开发者在开发之时能尽可能的全面理解客户的想法要求,而且在开发的时候能更简易的操作和更新,这种思想都符程序设计的开发思想。
本次设计任务是设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径),其实就是数据结构中图类的问题。将校园景点作为图的结点,将景点间的路径作为图的边,路径距离作为边的权值。这样一来,求两景点间最短路径的问题就抽象成了求图中一结点到另一结点的问题。
目录
一、需求分析
二、概要设计
2.1算法设计说明
2.2数据结构与函数考虑
三、详细设计
3.1学校以及各景点介绍模块
3.2查询最短路径(主要)
3.3查询参观路线
3.4查询各点距离
3.5主菜单页面显示
3.6 退出
四、调试分析
4.1调试结果
4.2 分析思考
五、小结
参考文献
附录
课程设计任务书
数据结构_校园导游系统课程设计
滨江学院
《数据结构》课程设计题目校园导游咨询程序设计
学号
学生姓名
院系
专业
指导教师
二O一二年月日
1、题目的内容及要求
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2、需求分析
(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。
3、概要设计
1.功能模块图;
void CreateUDN();//创建无向网
void Search();//查询景点信息
void Shortestpath(int i);//计算最短路径
void Output(int sight1,int sight2);//输出函数
2.各个模块详细的功能描述。
CreateUDN();//创建无向网、主要用来保存各景点信息
Search();//查询景点信息、景点的名称及介绍
Shortestpath(int i);//计算两景点间最短路径
Output(int sight1,int sight2);//输出两景点最短路径及信息
3.模块图
4、详细设计
一、图的储存结构
#define Max 30000
#define NUM 10
typedef struct ArcCell
{
int adj; /* 相邻接的景点之间的路程*/ }ArcCell; /* 定义边的类型*/
typedef struct VertexType
数据结构课程设计—校园导航报告
课程设计报告
学院、系:大学学院计算机科学与技术系
专业:软件工程
班级:2008级9班
课程设计科目数据结构
学生:04080904 喆
指导教师:娄雅芳
完成时间:2010年10月-12月
校园导航系统设计报告
一、设计任务与目标
设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本系统是一个涉及大学学院相关景点和场所查询系统,是为了方便人们能够更快更准地获得学校各个景点和场所的详细信息。
本系统为用户提供以下功能:
(一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。
(二)、查询校园各个场所和景点信息;
(三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学
校。
校园导航查询系统的开发方法总结如下:
(1) 调查,了解学校各个场所与场所或者是各个景点与景点之间的信息,
路径和距离,从外来人员或者参观者和走访者的角度出发,该如何设
计才能满足用户需求。
(2) 分析,对调查得到的数据进行分析,根据其要求实现的功能分析系统
结构和界面将实现的基本功能。
(3) 设计与开发,设计系统界面并编辑实现其各个功能的代码。
(4) 调试,在设计完成后,调试系统运行的状况,修改完善系统,然后进行
测试。
二、方案设计与论证
校园旅游模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点或场所,用图的
边代表景点或场所之间的路径。所以首先应创建图的存储结构。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值采用图存储。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度,最短路线和最佳路径时可分别用迪杰斯特拉(Dijkastra)算法和哈密而顿回路算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径和距离。
数据结构课程设计
数据结构课程设计
题目一:
调试本学期所做的所有实验题目,并编写一个主函数调用这些程序。
题目二:
1.校园导航问题
设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
2.编写程序要求对输入的一串电文字符实现哈夫曼编码,再对哈夫曼编码生成的代码串进行译码,输出电文字符串。
3.文章编辑
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
4. 算术表达式求值
一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(7+15)*(23-28/4)#。引入表达式起始、结束符是为了方便。编程利用“ 算符优先法”求算术表达式的值。
要求:
(1)从键盘读入一个合法的算术表达式,输出正确的结果。
校园导航系统 数据结构课程设计 C++开发
分类号编号
华北***大学
North China Institute of Water Conservancy and
Hydroelectric Power
课程设计
题目校园导航
院系信息工程学院
专业计算机科学与技术
姓名******
学号201117000
指导教师*****
2012年7月6 日
目录
1.需求分析 (1)
1.1问题描述 (1)
1.2课程设计目的 (1)
1.3设计要求 (1)
2.概要设计 (2)
2.1任务定义 (2)
2.2数据结构 (2)
2.3 校园平面图展示 (2)
2.4系统功能图 (4)
3.详细设计 (4)
3.1各个模块名称和功能 (4)
3.2具体函数模块详解 (5)
3.2.1校园平面图展示 (5)
3.2.2任意两点的所有路径 (5)
3.2.3校园基础设施介绍 (6)
3.2.4指定两点间最短路径 (6)
3.2.5单点到其他左右顶点间最短路径 (6)
3.2.6华北水利水电学院简介 (7)
3.2.7访客留言 (7)
3.2.8浏览访客留言 (7)
3.3 主要算法思想描述 (7)
3.4各函数之间的调用关系示意图 (7)
4.测试与分析 (8)
4.1测试显示 (8)
4.2调试分析 (12)
4.2.1调试过程中遇到的问题与解决方案 (12)
4.2.2算法的时空复杂度分析 (12)
5.用户使用说明 (12)
6.实验总结 (14)
7.参考文献 (14)
8.附件 (15)
校园导航系统
1.需求分析
1.1问题描述
我们熟悉一个地方的地形情况通常是借助于一张地图,通常的地图包含的信息十分的有限,而且具体到某一个建筑物,你不能了解到它的进一步的详细的情况。因此,导航系统就应运而生了。
数据结构-算法实验报告——校园导航系统
数据结构与算法分析课程设计报告
设计题目:校园导航咨询系统
专业
学号
姓名
2013 年3 月3 日
一、问题描述
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)(参考课本P186-P192)。
二、需求分析
本程序分为五个模块,分别是显示校园全景、查询景点信息、问路查询系统、查看游览路线和退出系统。
(1)显示校园全景
展示校园概貌图和各景点编号、名称。
(2)查询景点信息
输入要查询的景点编号,显示景点的编号、名称和景点的简单介绍。
(3)问路查询系统
输入要参观的两个景点的编号(按从大到小输入),显示两个景点间的最短路径游览方式和最短路径长。
(4)查看游览路线
查询某个景点到其他景点的所有路径,并显示其长度。
(5)退出系统
查询完毕关闭窗口,显示退出系统的界面
三、概要设计
1、主要函数:
void main() 主函数,程序入口
csinfo() 初始化景点信息
csroad() 初始化道路信息
showpath() 显示校园全景
search() 查询景点信息
floyd() 弗洛伊德函数,查询两个景点之间的最短路径所要经过的中间节点
print(int i,int j) 打印两个景点的路径及最短距离
shortpath() 问路查询,求最短路径
ShortestPath_DIJ(Maph * M) 利用Dijkstra算法来计算出起点到各个顶点之间的最短路径,以v0为起点
menu() 显示菜单选项
2、主要变量:
ps[MaxPointNum] 定义主要景点信息,存放景点的编号、名称、简要介绍等信息
数据结构课程设计校园导游
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关
景点介绍、游览路径等问题。
基本要求:
1、查询各景点的相关信息。
2、查询图中任意两个景点间的最短路径。
3、查询图中任意两个景点间的所有路径。
4、增加、删除、更新有关景点和道路的信息。
/*校园导游程序*//*[问题描述]
用无向网表示学校的校园景点平面图,图中顶点表示主要景点,
存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
游客通过终端可询问:
(1)从某一景点到另一景点的最短路径。
(2)游客从公园进入,选取一条最佳路线。
(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。
[基本要求]
(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的
道路,
边上的权值表示距离.为此图选择适当的数据结构。
(2)把各种路径都显示给游客,由游客自己选择浏览路线。
(3)画出景点分布图于屏幕上。
[实现提示]
(1)构造一个无向图G并用邻接矩阵来存储。
(2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来
记录,
最短路径长度就用一维数组d[i]存放;i的范围:0~20。
(3)一维数组have[]是用来记录最短路径出现顶点的顺序。
(4)根据起点和终点输出最短路径和路径长度。
*/
#define INFINITY 10000 /*无穷大*/
数据结构课程设计之校园导航系统
##大学
数据结构课程设计报告题目:校园导航系统
院(系):计算机工程学院
学生姓名:
班级:学号:
起迄日期: 2011.6.19--6.30
指导教师:
指导教师评语:成绩:
签名:
年月日20XX—20XX年度第 2 学期
一、需求分析
1.问题描述:
从理工大学的平面图中选取10个有代表性的景点,抽象成一个无向带权图。以图中顶点表示景点,边上的权值表示两地之间的距离,求取任意两点间最短路径。
2.基本功能
本程序主要实现的功能是为用户提供路径咨询。根据用户指定的始点和终点输出相应路径(用到output()函数),或者根据用户指定的景点输出景点的信息(用到search()函数)。
3.输入输出
本程序主要输入输出信息是景点编号和景点名称,以字符串的形式输入输出。
二、概要设计
1.设计思路:
本程序是校园导航系统,即求两点间的最短路径。其主要算法是迪杰斯特拉算法,在此基础上再加上菜单函数输出函数造图函数查找函数即可。
2.数据结构设计:
抽象数据类型图的定义如下:
ADT Graph{
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。
数据关系R:
R={VR}
VR={(v,w)|v,w V,(v,w)表示v和w之间存在路径}
基本操作p:
CreatGraph(&G,V,VR)
初始条件:V是图的顶点集,VR是图中边的集合。
操作结构:按V和VR的定义构造图G。
DestroyGraph(&G)
初始条件:图G存在。
操作结果:销毁图G。
LocateVex(G,u)
初始条件:图G存在,u和G中顶点有相同特征。
操作结果:若G中存在顶点u,则返回该顶点在图中位置;否则返回其他信息。
数据结构课程设计-校园导航系统
安徽省巢湖学院计算机与信息工程学院
课程设计报告
课程名称《数据结构》
课题名称校园导航系统
专业计算机科学与技术
班级10计本2班
学号********
姓名吴宗林
联系方式152****6478
指导教师江家宝
20 11 年12 月29 日
目录
1、数据结构课程设计任务书 (1)
1.1、题目 (1)
1.2、要求 (1)
2、详细设计 (1)
2.1、程序中所采用的数据结构及存储结构的说明 (1)
2.2、算法的设计思想 (2)
3、调试与测试: (2)
3.1、调试方法与步骤: (2)
3.2、测试结果的分析与讨论: (2)
4、时间复杂度的分析: (4)
5、源程序清单和执行结果 (5)
6、C程序设计总结 (9)
7、致谢 (10)
8、参考文献 (10)
1、数据结构课程设计任务书
1.1、题目
校园导航问题
1.2、要求
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
1)设计校园平面图,在校园景点选10个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
2、详细设计
模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等;
2.1、程序中所采用的数据结构及存储结构的说明
(1)图。采用邻接矩阵存储,其中图所用到的结构体为:
typedef struct
校园导航系统
题号:第七题
题目:校园导航问题
1,需求分析:
设计您得学校得平面图,至少包括10个以上得景点(场所),每两个景点间可以有不同得路,且路长也可能不同,找出从任意景点到达另一景点得最佳路径(最短路径)。
要求:
(1)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息、
(2)为来访客人提供图中任意景点相关信息得查询。
(3)为来访客人提供任意景点得问路查询,即查询任意两个景点之间得一条最短路径。
(4)修改景点信息。
实现提示:
一般情况下,校园得道路就是双向通行得,可设计校园平面图就是一个无向网。顶点与边均含有相关信息、
选做内容:
(1)提供图得编辑功能:增、删景点;增、删道路;修改已有信息等、
(2)校园导游图得仿真界面。
2,设计:
2。1 设计思想:
〈1>,数据结构设计:
(1)图。采用邻接矩阵存储,其中图所用到得结构体为:
typedef struct
{
SeqList vertices; //表示图中得顶点
intEdge[MaxVertices][MaxVertices]; //表示图中得边
int numOfEdge; //表示图中边得数目}AdjMGraph;
(2)景点。用顺序表存储。所用到得结构体为:
typedef struct
{
charname[20]; //顶点名称
ﻩint code; //顶点代号
ﻩchar introduction[50]; //顶点信息简介
}DataType;
(3)景点之间得连接描述,所用到得结构体为:
typedef struct
数据结构报告 校园导航问题
数据结构报告校园导航问题
一、引言
校园导航问题是在大型校园环境中,为了帮助学生、教职员工和访客快速准确
地找到目的地而提出的。校园导航系统需要提供用户友好的界面和高效的导航功能,以满足用户的需求。本报告将介绍一个基于数据结构的校园导航系统的设计和实现。
二、问题描述
在大型校园中,学生、教职员工和访客常常面临找不到目的地的问题。校园导
航系统的目标是提供一个方便、快捷且准确的导航服务。该系统需要满足以下需求:
1. 提供校园地图:系统需要包含校园的地图信息,包括建筑物、道路和其他地
标的位置和连接关系。
2. 支持路径规划:用户可以输入起始点和目的地,系统能够计算出最短路径,
并提供导航指引。
3. 支持多种交通方式:系统需要考虑不同交通方式,如步行、自行车和汽车,
并根据用户选择提供相应的路径。
4. 提供实时信息:系统需要实时更新校园地图信息,包括建筑物的开放时间、
道路的交通情况等。
三、设计思路
为了实现校园导航系统,我们可以采用以下数据结构和算法:
1. 图结构:校园地图可以表示为一个有向加权图,其中节点表示建筑物或地标,边表示道路或连接关系,边的权重表示距离或时间。
2. 最短路径算法:可以使用Dijkstra算法或A*算法计算起始点到目的地的最短路径。
3. 用户界面:可以设计一个用户友好的界面,包括输入起始点和目的地、选择
交通方式等功能。
四、系统实现
基于上述设计思路,我们可以实现一个校园导航系统。系统的实现可以分为以
下几个步骤:
1. 数据采集:收集校园地图信息,包括建筑物和道路的位置和连接关系。可以
使用GPS定位和地图绘制工具进行数据采集。
数据结构课程设计-校园导航
课程设计报告
课程名称数据结构课程设计题目校园导航
指导教师
设计起始日期
学院计算机学院
系别计算机科学与工程
学生姓名
班级/学号
成绩
一、需求分析
本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求:
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本课题实现校园多个场所(至少10个)的最短路径求解。
(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。
(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。
(3) 程序所能达到的功能:本程序可供任何人使用,主要功能 1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
a.首先看到的是校园导航系统的菜单:
b.查看浏览路线等待输入起始景点:
C.选择出发点与目的地等待输入起始景点与目的地编号:
d.参看景点信息等待输入景点编号:
二、概要设计
本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算
法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。
校园导航系统课程设计
课程设计
课程名称数据结构校园导题目名称航系统13软件工专业班级
二O—五年六月一日
目录
1弓丨言 (5)
1.1问题的提出 (5)
1.2国内外研究的现状 (5)
1.3任务与分析 (5)
2程序的主要功能 (6)
3程序运行平台 (6)
4总体设计 (7)
4. 1数据结构类型定义 (7)
4.2函数声明 (7)
4.3创建导航图,即无向图 (8)
4.4最短路径导航函数 (8)
5程序方法的说明 (9)
5. 1主菜单 (9)
5.2主函数 (10)
5. 3迪杰斯特拉算法实现 (13)
6模块分析 (15)
7系统测试 (15)
7.1系统登录界面 (15)
7.2功能一:学校简介 (16)
7. 3功能二:两点最短距离导航 (16)
7.4功能三:某点到其他所有点的最短距离 (17)
7.5功能四:显示全校地图 (17)
7. 5退出导航系统 (18)
8结论 (19)
附录: (19)
蚌埠学院计算机科学与技术系本科课程设计成绩评定表
附件4分工协作说明(以列表形式具体说明每个人所做的工作);
1.1问题的提出
设计一个校园导航系统,为来访的客人提供各种信息查询服务。
1.2国内外研究的现状
这个问题一直是国内外研究的热门话题。
1. 3任务与分析
设计你的学校的平面图,至少包括8个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)
2程序的主要功能
(1)设计校园平面图,在校园景点选8个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计-校
园导航
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
课程设计报告
课程名称数据结构课程设计题目校园导航
指导教师
设计起始日期 5.9~5.16
学院计算机学院
系别计算机科学与工程
学生姓名
班级/学号
成绩
一、需求分析
本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求:
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
本课题实现校园多个场所(至少10个)的最短路径求解。
(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。
(2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。
(3) 程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
a.首先看到的是校园导航系统的菜单:
b.查看浏览路线等待输入起始景点:
C.选择出发点与目的地等待输入起始景点与目的地编号:
d.参看景点信息等待输入景点编号:
二、概要设计
本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。
系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。
选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。
选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。
选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景
点与目的景点,并有空格隔开就得到两景点之间的最佳路径。
选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。
选择“退出系统”项,就会退出程序。
三、详细设计
(1)十三个单位的图
0:前门
1:图书馆
2:教二楼
3:实验楼
4:操场
5:教一楼
6:食堂
7:水房
8:学一公寓
9:学二公寓
10:学三公寓
11:学四公寓
12:后门
(2)主程序流程图:
(3)弗洛伊德的算法:
void Floyd(MGraph *G)
{
int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];//定义参数for(v=0;v
for(w=0;w
{
D[v][w]=G->arcs[v][w].adj;
for(u=0;u
p[v][w][u]=0;
if(D[v][w] { p[v][w][v]=1;p[v][w][w]=1; } } for(u=0;u for(v=0;v for(w=0;w if(D[v][u]+D[u][w] { D[v][w]=D[v][u]+D[u][w]; for(i=0;i p[v][w][i]=p[v][u][i]||p[u][w][i]; } while(flag) { cout<<"请输入出发点和目的地的编号(用空格隔开):"; cin>>k>>j; if(k<0||k>G->vexnum||j<0||j>G->vexnum) //判断输入的景点编号正确与否 { cout<<"景点编号不存在!请重新输入出发点和目的地的编号:"; cin>>k>>j; } if(k>=0&&k flag=0; } cout< for(u=0;u if(p[k][j][u]&&k!=u&&j!=u) //输出路线 cout<<"-->"< cout<<"-->"< cout<<" 总路线长"< } 四、调试分析 (1)在程序设计中遇到了输出景点信息的表不整齐,用setw()解决了;默认的界面太小,不能完整的看到输出信息,用了system("mode con: cols=100 lines=40")命令语句设置了行数和列数。 (2)经验和体会 经过一段时间来的努力,终于初步实现系统功能,但肯定还存在不少漏洞。这是我们第三次做课程设计,也是第三次编写一个比较完整和具有一定功能的的系统代码,第二次几个人合作制作系统,制作过程中存在储多的不足,遇到过许多的困难,曾经灰心丧气过,但是最终还是坚持了下来,虽然做得不怎么样,但我们已经努力地去做了,由于基础也不怎么扎实,所以困难会比其它组更多更艰巨。刚开始做系统缺乏全局观念,分工也不是很合理,做得很零碎,所以在组合的时候也出现了很多问题。