資源簡介
自己做的校園導游咨詢系統,在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?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?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?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++簡單程序設計圖書管理系統
評論
共有 條評論