#include <string.h>
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#define Max 20000 //定义路径最大值
typedef struct ArcCell{
int adj; //相邻接的景点之间的路程
}ArcCell; //定义边的类型
typedef struct VertexType{ //存储景点信息的结构体
int number; //景点编号
char name[100]; //景点名称
char description[1000]; //景点描述
}VertexType; //定义顶点的类型
typedef struct{
VertexType vex[20]; //图中的顶点,即为景点
ArcCell view[20][20]; //图中的边,即为景点间的距离
int vexnum,arcnum; //图中顶点数,边数
}MGraph; //定义图的类型
MGraph MG; //把图定义为全局变量
int NUM=9; //当前景点的数量
int P[20][20];
int p[20]; //全局数组,用来存放路径上的各顶点
int visited[20]; //全局数组,用来记录各顶点被访问的情况
int a=0; //全局变量,用来记录每对顶点之间的所有路径的条数
long int D[20]; //辅助变量存储最短路径长度
int x[20]={0};
char userName[15]={"admin"},pwd[7]={"123456"},newPwd[7];//username[15]原始账号,pwd[7]原始密码,pwd1修改密码时的比较
char c; //方便用户的使用,按下任意键可以返回
void CreateUDN(int v,int a); //造图函数,地图初始化
void narrate(); //说明函数,显示校园的景点
void shortRoad(int num); //最短路径函数
void output(int sight1,int sight2); //输出函数
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);//确定路径上第k+1个顶点的序号
void NextValue(int);
void display(); //显示遍历结果
int Addnewsight(int n); //添加新的景点和路径
int Deletesight(int n); //删除景点和路径
void Changesight(); //修改景点和路径
char Changemenu(); //修改路径或顶点的选择菜单
char Sightmenu(); //选择需该景点的菜单
void login(); //用户登录界面
void homePage(); //系统主菜单
void quit(); //程序退出界面
void map(); //校园地图界面
int main(){ //主函数
CreateUDN(NUM,11); //初始化
//login();
homePage();
}
void login(){ //登录界面
int i=0,k=0,j; //i是循环变量,k是判断输入三次密码,j是输入密码时的循环
system("color 3f"); //系统函数,color显示颜色,3湖蓝色,f是亮白色
printf("\n\n");
printf("\t 系统默认用户名:admin,密码:123456\n");
printf("\t┏—————————————————————————————-┓\n");
printf("\t┃ **********************************************************┃\n");
printf("\t┃ ***┏————————————————————————-┓ ***┃\n");
printf("\t┃ ***┃ ************************************************┃ ***┃\n");
printf("\t┃ ***┃ *** ***┃ ***┃\n");
printf("\t┃ ***┃ *** 欢迎使用校园导游程序系统 ***┃ ***┃\n");
printf("\t┃ ***┃ *** ***┃ ***┃\n");
printf("\t┃ ***┃ *** 姓名 ***┃ ***┃\n");
printf("\t┃ ***┃ *** ***┃ ***┃\n");
printf("\t┃ ***┃ *** 17计科本三 ***┃ ***┃\n");
printf("\t┃ ***┃ *** ***┃ ***┃\n");
printf("\t┃ ***┃ *** 2018年9月15日 ***┃ ***┃\n");
printf("\t┃ ***┃ *** ***┃ ***┃\n");
printf("\t┃ ***┃ ************************************************┃ ***┃\n");
printf("\t┃ ***┗————————————————————————-┛ ***┃\n");
printf("\t┃ **********************************************************┃\n");
printf("\t┗—————————————————————————————-┛\n");
char userName1[15]; //定义与原始密码相比较的变量
for(i=0;i<3;i++){
printf("\n请输入用户名:");
gets(userName1);
printf("\n请输入6位密码:");
for(j=0;j<100;j++){
newPwd[j]=getch();
if(newPwd[j]=='\r')
break;
printf("*");
}
newPwd[j]='\0';
if((strcmp(userName,userName1)==0)&&(strcmp(pwd,newPwd)==0)){
printf("\n\n您已经成功登录");
k=1;
for(i=0;i<20;i++){
printf(".");
Sleep(100);
}
system("cls");
homePage(); //跳转到主界面
break;
}
else printf("\n用户名或密码无效请重新输入:\n");
continue;
}
if(k==0)
printf("\n连续输入错误3次将退出程序\n");
Sleep(2000); //程序暂停函数(单位毫秒),本次暂停2000毫秒
quit(); //连续三次错误跳转退出界面
}
void homePage(){
int cmd; //用户选择的编号
int v0,v1;
while(1){
printf("\n\n");
printf("\t┏——————————————————————————————-┓\n");
printf("\t┃ ╔========================================================╗ ┃\n");
printf("\t┃ ║ 欢 迎 使 用 校 园 导 游 程 序 系 统 ║ ┃\n");
printf("\t┃ ╚========================================================╝ ┃\n");
printf("\t┃ *********************************************************** ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ * 1.景点信息查询 * 2.景点最短路径 * ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ *********************************************************** ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ * 3.两景点的路劲 * 4.校园地图显示 * ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ *********************************************************** ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ * 5.景点路劲添加 * 6.退出信息删除 * ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ *********************************************************** ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ * 7.景点路劲修改 * 8.退出信息系统 * ┃\n");
printf("\t┃ * * * ┃\n");
printf("\t┃ *********************************************************** ┃\n");
printf("\t┗——————————————————————————————-┛\n");
printf("\t请选择功能 1 - 8 :");
scanf("%d",&cmd);
getchar();
system("cls");
switch(cmd){
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);
shortRoad(v0); /* 计算两个景点之间的最短路径 */
output(v0,v1); /* 输出结果 */
printf("\n\n\t\t\t\t请按任意键继续...\n");
getchar();
getchar();break;
case 3:
system("cls");
narrate();
x[0]=1;
Searchpath1(MG);
printf("\n\n\t\t\t\t请按任意键继续...\n");
getchar();
getchar();break;
case 4:map();break;
case 5:
system("cls");
narrate();
NUM=Addnewsight(NUM);
system("cls");
narrate();break;
case 6:NUM=Deletesight(NUM);break;
case 7:Changesight();break;
case 8:quit();break;
default:printf("\n 非法操作,请重新输入!\n");
}
system("pause");
system("cls");
}
}
void map(){ //浏览校园地图
system("cls");
printf("\t\n 武汉工商学院 \n");
printf("\t-------------------------------------------------------------------------\n");
printf("\t| ----------------- ‖ ------------
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 基本要求: 1) 设计学校的校园平面图,所含景点不少于10个。图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。 2) 查询各景点的相关信息; 3) 查询图中任意两个景点间的最短路径。 4) 查询图中任意两个景点间的所有路径。
资源推荐
资源详情
资源评论
收起资源包目录
C语言数据结构课程设计-校园导游系统.zip (1个子文件)
C语言数据结构课程设计-校园导游系统
代码.cpp 24KB
共 1 条
- 1
资源评论
拾光分享网
- 粉丝: 790
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功