校园导航系统源代码
- 格式:doc
- 大小:311.50 KB
- 文档页数:21
数据结构-校园导航系统
简介:本系统采用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");