校园导游咨询程序设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计
设计题目:校园导游咨询
学院:信息学院
班级:计算机1008班
姓名:
学号: 20101221180 日期: 2012 年 3 月
校园导航问题
[问题描述]
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
[基本要求]
(1)设计所在学校的校园平面图,所含景点不少于十个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个顶点之间的一条最短的简单路径。
(4)校园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道、人行道),以致可按客人所需分别查询人行路径或车行路径。
(6)扩充每个景点的林洁景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
(7)实现校园导游的仿真界面。
校园导航问题 (2)
一、概要设计 (4)
二、详细设计 (6)
三、调试分析 (12)
四、调用关系 (12)
五、用户操作指南 (13)
[测试数据]
一、概要设计
1. 数据类型
#define V_MAX 20
#define E_MAX 200
typedef struct {
char name[10];//名字
//char code[10];//代码
char info[20];//信息,简介
int x,y;//坐标
}VType;//顶点类型
typedef struct {
int live;//标记是否存在,如果被删除则为0,存在为1
char name[10];// 路名
int length;//路的长度
char ivex[10],jvex[10];//路(边)连接的两个顶点的名字
int type;//表示道路类型,0表示两个都是,1表示人行道,2表示行车道
}EdgeType;//边类型
typedef struct AdjNode{
int length;// 弧的长度
char name[10];//关联的顶点的名字
struct AdjNode *next;//下一条弧
}AdjNode;//弧结点
typedef struct {
int live;//标记是否存在,如果被删除则为0,存在为1
int flag;//标记是否被访问过
VType data;//顶点的信息
AdjNode *first_adj;//指向该顶点的第一条弧
}VNode;//景点(顶点)结点
typedef struct {
VNode vex[V_MAX];//顶点数组
EdgeType edge[E_MAX];//边的数组
int v_num,e_num;
}Graph;//图类型
////////////////////////////////
Graph G;
AdjNode *p;
2.基本函数
////////////////////////////////
void creatGraph(Graph &G);//创建校园图
void load(Graph &G);//从文件中读取数据
void save(Graph &G);//保存数据入文件
int find_v(Graph G,char name[10]);//通过输入景点名字,返回该景点在vex数组里的下标
void print_Graph(Graph G);//以邻接矩阵的形式输出图信息
int direction(Graph G,char bname[10],char fname[10]);//用于判断并输出一个景点在另外一个景点的方位信息
void search_view(Graph G);//查询并输出景点的所有信息
void del_v(Graph &G);//删除景点
void add_v(Graph &G);//增加景点
void add_e(Graph &G)//增加道路
void modify_v(Graph &G);//修改景点信息
void del_e(Graph &G);//删除道路
二、详细设计
本程序由m.cpp、head.h、Menu.h、dijie.h4个文件构成。
1、m.cpp
主要用于调用菜单函数
#include
#include
#include
#include
#include "head.h"
#include "dijie.h"
#include "allpath.h"
#include "Menu.h"
void main()
{
load(G);
// while(1)
menu();
}
2.Menu.h
存放用于显示系统仿真界面的函数
void mobifyMenu()
{
while(1)
{
system("cls");
int choose;
printf("------------------------------------------");printf("\n");
printf(" 校园导游系统 ");printf("\n");
printf("------------------------------------------");printf("\n");
printf(" 景点或者道路信息的修改扩充 ");printf("\n");
printf("\n");
printf("------------------------------------------");printf("\n");
printf("1. 增加新景点\n");
printf("2. 删除景点\n");
printf("3. 修改景点\n");
printf("4. 增加新道路\n");
printf("5. 重新构建校园景点和路径信息\n");