校园导航系统源代码

  • 格式:doc
  • 大小:311.50 KB
  • 文档页数:21

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构-校园导航系统

简介:本系统采用C语言编写,运行环境为Dev-C++;

容以电子科技大学南校区为例;

主要功能有:1.查询景点信息;2.查询两景点间最短距离;3.查询两景点间所有路线;4.查询西电校园地图;5.修改景点和路径信息.

注意事项:在进行修改景点和路径信息操作前,请在可执行文件目录下用记事本创建”superUser.CODE”文件来存放用户名与密码(中间以空格隔开),否则无法进入.

源代码:

#include

#include

#include

#include

#include

#define Max 20000

typedef struct ArcCell

{

int adj; //两个景点间的距离

}ArcCell;

typedef struct VertexType

{

int number; //景点编号

char sight[100]; //景点名称

char description[1000]; //景点简介

char particular1[1000];

char particular2[1000];

char particular3[1000]; //景点详情

}VertexType;

typedef struct

{

VertexType vex[20]; //最多存放20个景点信息ArcCell arcs[20][20]; //两个景点间的距离

int vexnum,arcnum;

}MGraph;

MGraph G;

char nameofschool[100]; //学校名称

int NUM=9;

int P[20][20];

int p[20];

int visited[20];

int a=0;

long int D[20];

int x[20]={0};

//函数声明

void CreateUDN(int v,int a);

void narrate();

void ShortestPath(int num);

void output(int sight1,int sight2);

char Menu();

void search();

char SearchMenu();

void HaMiTonian(int);

void Searchpath1(MGraph g);

void disppath(MGraph g,int i,int j);

void path(MGraph g,int i,int j,int k);

void NextValue(int);

void display();

int Addnewsight(int n);

int Deletesight(int n);

void Changesight();

char Changemenu();

char Sightmenu();

int Maintain(void);

int VerificatianIdentity(void);

void map();

//主函数

int main()

{

int v0,v1;

int MaintainFlag;

char ck;

system("color 0F");

CreateUDN(NUM,11);

do

{

ck=Menu();

switch(ck)

{

case '1':

search();

break;

case '2':

system("cls");

narrate();

printf("\n\n\t\t\t请选择起点景点(0~%d):",NUM-1);

scanf("%d",&v0);

printf("\t\t\t请选择终点景点(0~%d):",NUM-1);

scanf("%d",&v1);

ShortestPath(v0);

output(v0,v1);

printf("\n\n\t\t\t\t请按任意键继续...\n");

getchar();

getchar();

break;

case'3':

system("cls");

narrate();

x[0]=1;

Searchpath1(G);

printf("\n\n\t\t\t\t请按任意键继续...\n");

getchar();

getchar();

break;

case'4':

system("cls");

map();

printf("\n\n\t\t\t\t\t请按任意键继续...\n");

getchar();

getchar();

break;

case'5':

system("cls");

narrate();

MaintainFlag = Maintain();

switch(MaintainFlag){

case'1':

system("cls");

narrate();

NUM=Addnewsight(NUM);

system("cls");

narrate();

break;

case'2':

NUM=Deletesight(NUM);

break;

case'3':

Changesight();

break;

}

break;

};

}

while(ck!='e');

return 0;

}

//主菜单

char Menu()

{

char c;

int flag;

do{

flag=1;

system("cls");

narrate();

printf("\n\t\t\t┏━━━━━━━━━━━━━━━┑\n"); printf("\t\t\t┃┃\n");

printf("\t\t\t┃1、查询景点信息┃\n");

printf("\t\t\t┃2、查询两景点间最短路径┃\n");

printf("\t\t\t┃3、查询两景点间所有路线┃\n");

printf("\t\t\t┃4、查看西电校园地图┃\n");

printf("\t\t\t┃5、修改景点和路径信息┃\n");

printf("\t\t\t┃e、退出┃\n"); printf("\t\t\t┃┃\n");