校园导游程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
洛阳理工学院
课程设计报告
课程名称数据结构课程设计
题目校园导游程序
课程设计任务书
1、设计题目:校园导游程序
2、设计内容与要求:
[问题描述]
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。[基本要求]
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。
(3)查询图中任意两个景点间的所有路径。
(4)增加、删除、更新有关景点和道路的信息。
课程设计评语
成绩:
指导教师:_______________
年月日
3、流程图
4、模块划分
(1)主函数:void main( )
(2)void CreateUDN(int v,int a); /* 造图函数*/
(3)void narrate(); /*说明函数*/
(4)void ShortestPath(int num); /*最短路径函数*/
(5)void output(int sight1,int sight2); /*输出函数*/
(6)char Menu(); /* 主菜单*/
(7)void search(); /* 查询景点信息*/
(8)char SearchMenu(); /* 查询子菜单*/
(9)void HaMiTonian(int); /*图的遍历*/
(10)void Searchpath1(MGraph g);/*查询两个景点间的所有路径*/
(11)void disppath(MGraph g,int i,int j);
(12)void path(MGraph g,int i,int j,int k);/*确定路径上第k+1个顶点的序号*/(13)void NextValue(int);
(14)void display(); /* 显示遍历结果*/
(15)int Addnewsight(int n); /*添加新的景点和路径*/
(16)int Deletesight(int n); /*删除景点和路径*/
5、数据结构类型定义
typedef struct ArcCell{
int adj; /* 相邻接的景点之间的路程*/
}ArcCell; /* 定义边的类型*/
typedef struct VertexType{
int number; /* 景点编号*/
char sight[100]; /* 景点名称*/
char description[1000]; /* 景点描述*/
}VertexType; /* 定义顶点的类型*/
typedef struct{
VertexType vex[20]; /* 图中的顶点,即为景点*/
ArcCell arcs[20][20]; /* 图中的边,即为景点间的距离*/ int vexnum,arcnum; /* 顶点数,边数*/
}MGraph; /* 定义图的类型*/
6、测试结果
1、查询景点信息
2、查询两景点间最短路径
3、查询两景点间所有路径
4、添加新的景点和路径
5、删除已有的景点和路径
6、修改删除已有的景点和路径
7、实验心得
经过几天的课程设计,总的来说收获还是很大的!首先代码能力明显提高,有了想法基本都能顺利表达出来;再者就是数据结构的选择使用能力也有了很大的提高!虽说平时的实验课我们也有用各种数据做题,但那些都是很明确的知道该做什么操作,存什么,我们的发挥空间不大一般照做就行,然而这次实习我们却在自主的选择判断,这本身就是一个很大的提高!还有就是算法方面的学习有了初步进阶,如最短路径,这样比较简单的图论算法能比较熟练的写出来。但是还是有很多的只是不了解!收获真的很多,但是最大的收获可能就是对编程的兴趣吧,在一次次的改错,一次次的完成想要的效果后,越写越有感觉!当然还收获了无知,更确切的说是自知,原来我们现在什么也不算,还有很多有用的只是等着我们去学习!
课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
8、源程序
#include
#include
#include
#include
#include
#define Max 20000
typedef struct ArcCell
{
int adj; /* 相邻接的景点之间的路程*/
}ArcCell; /* 定义边的类型*/
typedef struct VertexType
{
int number; /* 景点编号*/
char sight[100]; /* 景点名称*/
char description[1000]; /* 景点描述*/
}VertexType; /* 定义顶点的类型*/
typedef struct
{
VertexType vex[20]; /* 图中的顶点,即为景点*/
ArcCell arcs[20][20]; /* 图中的边,即为景点间的距离*/
int vexnum,arcnum; /* 顶点数,边数*/
}MGraph; /* 定义图的类型*/
MGraph G; /* 把图定义为全局变量*/
char nameofschool[100];
int NUM=9;
int P[20][20]; /* */
int p[20];/*全局数组,用来存放路径上的各顶点*/
int visited[20];/*全局数组,用来记录各顶点被访问的情况*/
int a=0;/*全局变量,用来记录每对顶点之间的所有路径的条数*/