资源简介
自己做的校园导游咨询系统,在VC6.0上运行,能够新建地图、加入景点、删除景点、删除两条景点之间道路、查找景点、一景点到其他景点的最短路径、一景点到另一景点的最短路线。 仅供借鉴!!

代码片段和文件信息
#include
#include
#include “MENU.h“
#include
#include
#define MAX 1000
#define MAX_NAME 200 //顶点字符串的最大长度 + 1
#define MAX_VERTEX_NUM 200
#define FALSE 0
#define TRUE 1
typedef int status;
typedef char VertexType[MAX_NAME];
typedef int intint;
int visited[MAX_VERTEX_NUM];
void(*VisitFunc)(char* v); /* 函数变量(全局量) */
typedef struct ArcNode //没有相关信息
{
int adjvex; //所指向的顶点的下标
intint *info; //网权值
struct ArcNode *nextarc;
}ArcNode; //边结点
typedef struct
{
VertexType data;
char NR[MAX];
ArcNode *firstarc;
}VNodeAdjList[MAX_VERTEX_NUM]; //头结点
typedef struct
{
AdjList vertexs;
int vexnumarcnum; //图当前顶点数和弧数
}Graph; //图
int locate_vertex(Graph *GVertexType u) //返回顶点在图中位置
{
int i;
for(i = 0;i < G->vexnum;++i)
if(strcmp(uG->vertexs[i].data) == 0)
return i;
return -1;
}
//****************队列*********************
typedef int Elem;
#define MAXSIZE MAX_VERTEX_NUM
typedef struct
{
Elem elem[MAXSIZE];
int front;
int rear;
}SeqQueue;
void InitQueue(SeqQueue *Q) //初始化
{
Q->front=Q->rear=0;
}
int IsEmpty(SeqQueue *Q) //判空
{
if(Q->front==Q->rear)
return TRUE;
return FALSE;
}
int IsFull(SeqQueue *Q) //判满
{
if((Q->rear+1)%MAXSIZE==Q->rear)
return TRUE;
return FALSE;
}
int EnterQueue(SeqQueue *QElem x) //进队
{
if((Q->rear+1)%MAXSIZE==Q->front)
return FALSE;
Q->elem[Q->rear]=x;
Q->rear=(Q->rear+1)%MAXSIZE;
return TRUE;
}
int DeleteQueue(SeqQueue *QElem *x) //出队
{
if(Q->front==Q->rear)
return FALSE;
*x=Q->elem[Q->front];
Q->front=(Q->front+1)%MAXSIZE;
return TRUE;
}
int GetFront(SeqQueue *QElem *x) //取队头元素
{
if(Q->front==Q->rear)
return FALSE;
*x=Q->elem[Q->front];
return TRUE;
}
//******************图******************
status CreateGraph(Graph *G) //创建图 写入
{
FILE *fp*fp1*fp2;
int ijk;
int w;
VertexType vavb;
ArcNode *p;
printf(“请输入 景点数目 和 道路条数: “);
scanf(“%d %d“&G->vexnum&G->arcnum);
fp=fopen(“num““wt“); // num 储存 顶点数 和 弧数
fprintf(fp“%d %d “G->vexnumG->arcnum);
fclose(fp);
printf(“请输入景点名称 经典简介:\n“);
fp1=fopen(“content““wt“); // content 储存地图 名称 介绍
for(i = 0;i < G->vexnum;++i)
{
printf(“请输入第%d个景点和简介:“i+1);
scanf(“%s %s“G->vertexs[i].dataG->vertexs[i].NR);
G->vertexs[i].firstarc = NULL;
fprintf(fp1“%s %s “G->vertexs[i].dataG->vertexs[i].NR);
}
fclose(fp1);
printf(“请输入景点之间的 联系 以及 长度:\n“G->arcnum);
fp2=fopen(“pow““wt“); // pow 储存 弧之间的关系 及 权值
for(k = 0;k < G->arcnum;++k)
{
printf(“请输入第%d个景点和简介:“k+1);
scanf(“%s %s %d“vavb&w);
fprintf(fp2“%s %s %d “vavbw);
i = locate_vertex(Gva);
j = locate_vertex(Gvb);
p = (ArcNode*)malloc(s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 544 2014-12-22 15:28 map\content
文件 544 2014-12-22 15:28 map\Debug\content
文件 6 2014-12-19 17:47 map\Debug\num
文件 525 2014-12-22 15:28 map\Debug\pow
文件 217167 2014-12-23 16:42 map\Debug\Star_map.exe
文件 297484 2014-12-23 16:42 map\Debug\Star_map.ilk
文件 61269 2014-12-23 16:42 map\Debug\Star_map.obj
I.A.... 236664 2014-12-22 17:04 map\Debug\Star_map.pch
文件 558080 2014-12-23 16:42 map\Debug\Star_map.pdb
文件 33792 2014-12-23 16:42 map\Debug\vc60.idb
文件 53248 2014-12-23 16:42 map\Debug\vc60.pdb
文件 4741 2014-12-22 16:57 map\MENU.h
文件 6 2014-12-19 17:47 map\num
文件 525 2014-12-22 15:28 map\pow
文件 18369 2014-12-23 16:36 map\Star_map.cpp
目录 0 2014-12-23 16:42 map\Debug
目录 0 2014-12-23 21:28 map
----------- --------- ---------- ----- ----
1482964 17
- 上一篇:apriori算法的c语言实现
- 下一篇:C++简单程序设计图书管理系统
相关资源
- 利用C++哈希表的方法实现电话号码查
- 学校超市选址问题(数据结构C语言版
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
- (严版C语言版数据结构源码.rar
评论
共有 条评论