数据结构—课程设计—校园导航问题报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与计算机学院
课程设计说明书
课程名称: 数据结构-课程设计
课程代码: 8404181
题目: 校园导航问题
年级/专业/班:
学生姓名:
学号:
开始时间:年月日
完成时间:年月日
课程设计成绩:
指导教师签名:年月日
数据结构课程设计任务书
学院名称:数学与计算机学院课程代码:8404181
专业:年级:
一、设计题目
校园导航问题
二、主要内容
设计西华大学的平面图,至少包括10个以上的场所,找出从任意场所到达另一场所的最短路径。
三、具体要求及应提交的材料
1.每个同学以自己的学号和姓名建一个文件夹,如:“312009*********张三”。里面应包括:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中)、任务书和课程设计说明书的电子文档。
2.打印的课程设计说明书(注意:在封面后夹入打印的“任务书”以后再装订)。
四、主要技术路线提示
涉及无向图的操作。该设计共分三部分,一是建立西华大学平面图的存储结构,二是解决单源点最短路径问题,最后再实现任意一对场所之间的最短路径问题。
五、进度安排
共计两周时间,建议进度安排如下:
选题,应该在上机实验之前完成
需求分析、概要设计可分配4学时完成
详细设计可分配4学时
调试和分析可分配10学时。
2学时的机动,可用于答辩及按教师要求修改课程设计说明书。
注:只用课内上机时间一般不能完成设计任务,所以需要学生自行安排时间做补充。
六、推荐参考资料(不少于3篇)
[1]苏仕华等编著,数据结构课程设计,机械工业出版社,2007
[2]严蔚敏等编著,数据结构(C语言版),清华大学出版社,2003
[3]严蔚敏等编著,数据结构题集(C语言版),清华大学出版社,2003
指导教师签名日期年月日
系主任审核日期年月日
校园导航问题
校园导航问题
摘要:程序设计目的是用哈斯图方式计算两个旅游点的最短距离以及路线。编程所实现的功能除了可以查询两个旅游点的最短距离以及最短的路线,还可以看到旅游点的介绍,以及逛遍所有旅游点所能组成的所有路线可能,实现全面查询。
关键字:景点;路线;距离;校园导航
1.课程设计题目
设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同
的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
2.分析
2.1设计基础:要掌握最短路径的实现方式。
2.2分析设计课题的要求,要求编程实现以下功能:
(1)查询景点路径
(2)查询景点信息
(3)查看参观路线
(4)查询各景点之间的距离
2.3主控菜单设计
为实现通信录管理的操作功能,首先设计一个含有多个菜单项的主控菜单程序,然后
再为这些菜单项配上相应的功能。
程序运行后,给出菜单项的内容和输入提示,如下:
1.学校简介
2.查询景点路径
3. 查询景点信息
4. 查看参观路线
5. 查询各景点之间的距离
6. 退出
2.4设计课题已明确要求,有关的定义如下:
typedefstructArcCell{
intadj; // 相邻接的景点之间的路程
char *info;
}ArcCell; // 定义边的类型
typedefstructVertexType{
int number; // 景点编号
char *sight; // 景点名称
char *description; // 景点描述
}VertexType; // 定义顶点的类型
typedefstruct{
VertexType vex[NUM]; // 图中的顶点,即为景点
ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离
intvexnum,arcnum; // 顶点数,边数
}MGraph; // 定义图的类型
3.步骤
3.1函数调用图
函数调用关系3.2主代码
#include
#include
#include
#include
#define Max 32767
#define NUM 11
typedef struct ArcCell{
int adj; // 相邻接的景点之间的路程
char *info;
}ArcCell; // 定义边的类型
typedef struct VertexType{
int number; // 景点编号
- 1 -
char *sight; // 景点名称
char *description; // 景点描述
}VertexType; // 定义顶点的类型
typedef struct{
VertexType vex[NUM]; // 图中的顶点,即为景点
ArcCell arcs[NUM][NUM]; // 图中的边,即为景点间的距离int vexnum,arcnum; // 顶点数,边数
}MGraph; // 定义图的类型
MGraph G; // 把图定义为全局变量
int P[NUM][NUM]; // //
long int D[NUM]; // 辅助变量存储最短路径长度
int x[13]={0};
void CreateUDN(int v,int a); // 创建图的函数
void pingmu(); //屏幕输出函数
void introduce();
void ShortestPath(int num); //最短路径函数
void output(int sight1,int sight2); //输出函数
void PrintMGraph();
char Menu(); // 主菜单
void search();
;// 查询景点信息
char SearchMenu(); // 查询子菜单
void HaMiTonian(int); // 哈密尔顿图的遍历
void NextValue(int);
void display(); // 显示遍历结果
void main() // 主函数
{ int v0,v1;
char ck;
system("color 0");
CreateUDN(NUM,11);
do
{
ck=Menu();
switch(ck)
{
case'1':
introduce();
printf("\n\n\t\t\t%-25s\n\n",G.vex[0].description);
- 2 -