• 大小: 3.93MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-29
  • 语言: 其他
  • 标签: 管理系统  景区  

资源简介

开发景区管理系统,对景区进行管理。使用图的数据结构来保存景区景点信息,为用户提供 创建图、查询景点信息、景点导航、搜索最短路径、铺设电路规划等功能(共三次实验)。 景点数据:景点信息(附件中的Vex.txt)、道路信息(附件中的Edge.txt)

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include “Stack.h“
#include “Graph.h“
//using namespace std;

void cleanStr(char string[]);

Graph::Graph() {
int i j;
for (i = 0; i < 20; i++) {
for (j = 0; j < 20; j++) {
m_aAdjMatrix[i][j] = -1;
}
}
m_nVexNum = 0;
}


//初始化图
bool Graph::InitGraph(char VexFileName[] char EdgeFileName[]) {
ifstream vexFile(VexFileName);
ifstream edgeFile(EdgeFileName);
char string[256] = { 0 };
Vex  tempVex;
Edge tempEdge;
int vexNum = 0;

if (!vexFile.is_open() || !edgeFile.is_open()) {
return false; //文件打开失败
}

cleanGraph(); //建图前清零,以免重复创建时出错
vexFile.getline(string 256);
vexNum = str2int(string);
for (int i = 0; i < vexNum; i++) {
cleanStr(string);
vexFile.getline(string 256);
tempVex.num = str2int(string);
vexFile.getline(tempVex.name 20);
vexFile.getline(tempVex.desc 1024);
if (!InsertVex(tempVex)) return false; //顶点插入失败
}

cleanStr(string);
while (!edgeFile.eof()) {
edgeFile >> tempEdge.vex1 >> tempEdge.vex2 >> tempEdge.weight;
if(!InsertEdge(tempEdge)) return false; //插入边失败
}

vexFile.close();
edgeFile.close();
return true;
}


//插入顶点
bool Graph::InsertVex(Vex sVex) {
if (m_nVexNum < 20) {
m_aVexs[m_nVexNum++] = sVex; //插入顶点到数组中
return true;
}
else {
return false; //顶点已满
}
}


//插入边
bool Graph::InsertEdge(Edge sedge) {
if (sedge.vex1 < 0 || sedge.vex1 >= 20 || sedge.vex2 < 0 || sedge.vex2 >= 20) {
return false; //顶点的编号越界了
}
else {
m_aAdjMatrix[sedge.vex1][sedge.vex2] = sedge.weight;
m_aAdjMatrix[sedge.vex2][sedge.vex1] = sedge.weight;
return true;
}
}


//获取顶点
Vex Graph::GetVex(int nVex) {
return m_aVexs[nVex];
}


//找与指定顶点相连的边
bool Graph::FindEdge(int nVex int aEdge[]) {
int i;
if (nVex > -1 && nVex < 20) {
for (i = 0; i < m_nVexNum; i++) {
aEdge[i] = m_aAdjMatrix[nVex][i];
}
return true;
}
else {
return false; //顶点编号不对
}
}

//获取顶点数
int Graph::GetVexNum(void) {
return m_nVexNum;
}

//将图清零
void Graph::cleanGraph(void) {
int i j;
for (i = 0; i < 20; i++) {
for (j = 0; j < 20; j++) {
m_aAdjMatrix[i][j] = -1;
}
}
m_nVexNum = 0;
}

struct De {
int vex;
int i;
De() { vex = -1; i = 0; }
};
//获取所有路径,用链表返回
Path *Graph::DFSAll(int v) {
bool isVisited[20] = { false }flag=true;
Path *pathList=new Path;
Path *tempPath = NULL*pTail=pathList;
int i n=0;
Stack stack;
De tempDe;

if (v < 0 || v >= m_nVexNum) return NULL; //输入的顶点超过边界

tempDe.vex = v;
tempDe.i = 0;
tempPath = new Path;
tempPath->vexs[n++] = v;
tempPath->next = NULL;
isVisited[v] = true;
while(true) {
for (i = tempDe.i; i < m_nVexNum; i++) {
if (m_aAdjMatrix[tempDe.vex][i] > 0 && !isVisited[i]) {
isVisited[i] = true;
tempDe.i = i+1;
stack.push(tempDe);
tempDe.vex = i;
tempPath->vexs[n++] = i;
i = -1; //f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3922  2017-05-16 14:10  实验2-4\GraphCPro\Debug\cl.command.1.tlog

     文件      57524  2017-05-16 14:10  实验2-4\GraphCPro\Debug\CL.read.1.tlog

     文件       4220  2017-05-16 14:10  实验2-4\GraphCPro\Debug\CL.write.1.tlog

     文件         91  2017-04-28 15:12  实验2-4\GraphCPro\Debug\Edge.txt

     文件     204336  2017-05-16 14:05  实验2-4\GraphCPro\Debug\Graph.obj

     文件      94208  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.exe

     文件        406  2017-05-09 15:24  实验2-4\GraphCPro\Debug\GraphCPro.exe.embed.manifest

     文件        472  2017-05-09 15:26  实验2-4\GraphCPro\Debug\GraphCPro.exe.embed.manifest.res

     文件        381  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.exe.intermediate.manifest

     文件    1007180  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.ilk

     文件         86  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.lastbuildstate

     文件       2320  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.log

     文件    1068032  2017-05-16 14:10  实验2-4\GraphCPro\Debug\GraphCPro.pdb

     文件       1449  2017-05-09 15:21  实验2-4\GraphCPro\Debug\GraphCPro.vcxprojResolveAssemblyReference.cache

     文件          0  2017-05-09 15:24  实验2-4\GraphCPro\Debug\GraphCPro.write.1.tlog

     文件        208  2017-05-09 15:24  实验2-4\GraphCPro\Debug\GraphCPro_manifest.rc

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link-cvtres.read.1.tlog

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link-cvtres.write.1.tlog

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.12988-cvtres.read.1.tlog

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.12988-cvtres.write.1.tlog

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.12988.read.1.tlog

     文件          2  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.12988.write.1.tlog

     文件       3698  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.command.1.tlog

     文件       7562  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.read.1.tlog

     文件       2098  2017-05-16 14:10  实验2-4\GraphCPro\Debug\link.write.1.tlog

     文件      46218  2017-05-16 14:02  实验2-4\GraphCPro\Debug\Main.obj

     文件        790  2017-05-16 14:10  实验2-4\GraphCPro\Debug\mt.command.1.tlog

     文件        650  2017-05-16 14:10  实验2-4\GraphCPro\Debug\mt.read.1.tlog

     文件        326  2017-05-16 14:10  实验2-4\GraphCPro\Debug\mt.write.1.tlog

     文件       1094  2017-05-09 15:26  实验2-4\GraphCPro\Debug\rc.command.1.tlog

............此处省略30个文件信息

评论

共有 条评论