校园导游咨询系统
- 格式:doc
- 大小:730.50 KB
- 文档页数:31
石家庄经济学院
本科生课程设计报告书
题目校园导游咨询系统
姓名
学号
学院信息工程学院
专业计算机
指导教师
完成日期:2012年7 月5 日
校园导游咨询系统
1 需求分析
需要设计一个校园导游咨询系统,为来访的客人提供各种信息查询服务。
a)基本要求:
设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放有景点名称、代号、简介等信息;以边表示路径,
存放路径长度等相关信息。
为来访客人提供图中任意景点相关信息的查询。
为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
b)问题分析:
系统要处理的数据有字符型、字符串型、浮点型,如景点的代号使用字符类型、景点名称及简介等信息用字符串型、路径的长度用浮点型
等。它们之间存在并列、包含等关系,采用线性单链表、图的邻接矩阵
等数据结构来存储数据。
c)系统完成的功能:
来访客人浏览校园全景
查询相关景点的信息
可查询所有浏览路线
来访客人可以查询从某一景点到另一景点的最短路径;
d)程序设计分析:
构造一个无向带权网G并用邻接矩阵来存储;
利用弗洛伊德算法来计算出起点到各个顶点之间的最短路径并进行存储,弗洛伊德算法将找出每一对顶点之间的最短路径;
e)系统的输入与输出:
键盘输入,磁盘输入、输出等。
f)系统的操作用例:
学校北门(0)学生公寓(1)博物馆(2)惠馨园(3)操场(4)图书馆(5)校医院(6)主楼(7)教学楼(8)实验
楼(9)
校园平面图顶点代码以及各顶点之间的权值所构成的邻接矩阵:
校园北门
学生公寓
校医院博物馆
惠馨园操场
图书馆
教学楼
实验楼
主楼
树
校园平面图
0 1 2 3 4 5 6 7 8 9 0 0 100 200 400
1 0
300
2 0 100
3 0 100
200 4 0 300
250 5 0 350 6 0 50 200 7 0 50 8 0 20 9
2、概要设计:
(1)抽象数据类型:
ADT Graph {
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。
数据关系R:R={VR}
VR={
径。}
基本操作P:
CreateGraph(&G,V,VR);
初始条件:V是校园平面图的顶点集,VR是校园平面图中弧的集合。
操作结果:按V和VR的定义构造校园平面图G。
DestroyGraph(&G);
初始条件:校园平面图G存在。
操作结果:销毁校园平面图G。
LocateVex (G,u);
初始条件:校园平面图G存在,u和G中顶点有相同特征。
操作结果:若校园平面图G中存在顶点u,则返回该顶点在图中的
位置,否则返回其他信息。
list();
初始条件:校园平面图存在
操作结果:查询校园全部景点。
introduce();
初始条件:校园平面图存在
操作结果: 查询每个景点的详细信息
shortestdistance(MGraph &G)
初始条件:校园平面图G存在,v和w是G中两个顶点。
操作结果:若v和w之间存在路径,则以Path返回两点之间的最
短路径,返回其他信息。
} ADT Graph
(2)设计系统原型:
主程序模块
void main()
{
初始化:
邻接矩阵
接受命令;
处理命令;
}
存储无向带权图模块
(3)操作界面:
石家庄经济学院导游图
1.浏览校园全景
2.查看所有游览路线
3.选择出发点和目的地,查找最短旅游路线
4.查看景点信息
5.退出系统
Option-:
3、详细设计:
1. 存储结构
typedef struct ArCell
{
int adj; //路径长度
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];\
typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息,
{
char name[30];
int num;
char introduction[100];//简介
}infotype;
typedef struct
{
infotype vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum,arcnum;
}MGraph;
MGraph b;
1.基本操作函数声明:
Status CreateGraph(&G,V,VR);//按V和VR的定义构造校园平面图G Status DestroyGraph(&G);//销毁校园平面图G
Status LocateVex (G,u);//若校园平面图G中存在顶点u,则返回该顶点在
//图中的位置,否则返回其他信息
Status list();//查询校园全部景点
Status introduce();//查询每个景点的详细信息