如何使用C++实现简单校园导游系统
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,小编给大家分享一下如何使用C++实现简单校园导游系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下#inclu
千家信息网最后更新 2025年01月21日如何使用C++实现简单校园导游系统
小编给大家分享一下如何使用C++实现简单校园导游系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
具体内容如下
#include#include #include #include #include #include #define INF 32767int visited[100],password; //password为后台管理的登录密码FILE *fp;char na[100];char str1[100],str3[100];int N,M;int a[100][100];using namespace std;typedef struct{ int num; char name[100]; char introduction[100];} VertexType;typedef struct{ int edges[100][100]; int n,e; VertexType vex[100];} MGraph;typedef struct ANode{ int adjvex; struct ANode *nextarc;} ArcNode;typedef struct Vnode{ ArcNode *firstarc;} VNode;typedef VNode AdjList[100];typedef struct{ AdjList adjlist; int n,e;} ALGraph;MGraph g;//将文本文件打开并输出文件中的内容void ReadData1(MGraph &g){ M=N; FILE *fp; int i = 0,j; if ((fp=fopen("path.txt", "r"))==NULL) { printf("error open!"); exit(0); } for(i=0; i adjlist[i].firstarc=NULL; for(i=0; i =0; j--) { if(g.edges[i][j]!=INF) { p=(ArcNode *)malloc(sizeof(ArcNode)); p->adjvex=j; p->nextarc=G->adjlist[i].firstarc; G->adjlist[i].firstarc=p; } } G->n=g.n; G->e=g.e;}//查找相应景点的介绍void FindIntroduction(MGraph &g){ int x,d; while(1) { printf("请输入要查询的景点的编号:"); scanf("%d",&x); ReadData(g); printf("景点的名称:%s\n",g.vex[x].name); printf("景点的简介:"); printf("%s\n",g.vex[x].introduction); printf("是否要继续查询(0.继续 1.不继续):"); scanf("%d",&d); while(1) { if(d==0||d==1) break; else { printf("输入的数据不合理,请重新输入:"); scanf("%d",&d); } } if(d==0) continue; else break; }}//输出两个顶点间的最短路径void Dispath(MGraph &g,int A[][100],int path[][100]){ int i,j,k,s,u,v; printf("请输入你所在位置的编号:"); scanf("%d",&u); printf("请输入你要去位置的编号:"); scanf("%d",&v); int apath[100],d; for(i=0; i =0; s--) printf("->%s",g.vex[apath[s]].name); printf("\n"); printf(" 路径长度为:%d",A[i][j]); printf("\n"); } } }}//查找两顶点间的最短路径void FindMinPath(MGraph &g){ int A[100][100],path[100][100]; int i,j,k; for(i=0; i A[k][j]+A[i][k]) { A[i][j]=A[k][j]+A[i][k]; path[i][j]=path[k][j]; } } } } Dispath(g,A,path);}//查找两顶点间的所有路径void FindaPath(MGraph &g,ALGraph *G,int u,int v,int path[],int d){ int w,i; ArcNode *p; visited[u]=1; d++; path[d]=u; if(u==v&&d>=1) { printf(" "); for(i=0; i ",g.vex[path[i]].name); printf("%s",g.vex[path[d]].name); printf("\n"); } p=G->adjlist[u].firstarc; while(p!=NULL) { w=p->adjvex; if(visited[w]==0) FindaPath(g,G,w,v,path,d); p=p->nextarc; } visited[u]=0;}//删除景点简介信息void delete_str(char str1[], char str2[],int len,char str3[]){ int num=0,k=0,i=0,j=0; //num用来记录子串的个数 k用来记录子串的位置 char *p=str2; //使用p还原str到初始位置 while(str1[i]!='\0') { if(str1[i]!=str2[j]) { str3[k++]=str1[i++]; //当str1中的字符与str的首字符不相同时 } else { char *temp=str2; for(; (str1[i]==str2[j])&&str2[j]!='\0'; j++) { i++; } if(j==len) { num++; //出现重复子串,num加一 } else { //主字符串中存在和子串前几个字符相同的一段字符 //退出循环并将这段字符写进新的字符数组中 for(int m=0; m ='0'&&a[i]<='9') pass=pass*10+a[i]-'0'; else if(a[i]=='\b') //当遇到退格键不做处理 { printf("\b \b"); i--; } else { pass=0; break; //退出for循环后,再次接受 } } fflush(stdin); //清除键盘缓存区中已经有的输入 printf("\n"); if(pass==0) //此条件成立可能由两种情况引起:输入了非数字字符被直接重置为0,或6位全0后正常退出for循环 { printf("密码要求全为数字,且不能全0!\n"); printf("请重新输入密码: "); } else break; } return pass;}//在图中增加一个顶点void add_point(MGraph &g){ int i,d; N++; g.vex[N-1].num=N-1; printf("%d\n",N); printf("请输入要增加景点的名称:"); scanf("%s",g.vex[N-1].name); printf("%s\n",g.vex[N-1].name); printf("请输入该景点与其它景点间的路径长度:"); for(i=0; i =0&&i<=N-1&&j>=0&&j<=N-1&&j>=0) { if(g.edges[i][j]!=INF&&g.edges[j][i]!=INF) { printf("该两点之间已存在路径,是否进行修改(0.修改 1.不修改):"); scanf("%d",&k); if(k==0) { printf("请输入要修改的路径的长度:"); scanf("%d",&length); g.edges[j][i]=g.edges[i][j]=length; printf("修改成功!"); } else g.edges[j][i]=g.edges[i][j]; } else { printf("请输入要增加的路径的长度:"); scanf("%d",&length); g.edges[j][i]=g.edges[i][j]=length; printf("添加成功!\n"); } break; } else { printf("输入的顶点在原图中不存在!\n"); continue; } } while(1);}//删除图中的一个顶点void delete_point(MGraph &g){ int i,j,m; printf("%d\n",N); printf("请输入要删除景点的编号:"); scanf("%d",&m); do { if(m>=0&&m<=N-1) break; else { printf("请输入要删除景点的编号:"); scanf("%d",&m); } } while(1); for(i=0; i n; i++) visited[i]=0; system("color F0"); printf("\t\t *******************************\n"); printf("\t\t * 1.用户 *\n"); printf("\t\t * 2.管理人员 *\n"); printf("\t\t *******************************\n"); printf("请选择相应的编号进行下一步操作:"); scanf("%d",&k); do { if(k==1||k==2) break; else { printf("输入数据不合理,请重新输入:"); scanf("%d",&k); } } while(1); if(k==1) { system("title 校园景点介绍及路径查询系统"); system("color F0"); printf("\n\n\n\n\n\n\n\n\n\n\n\n"); printf("\t\t\t欢迎进入校园景点介绍及路径查询系统!\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("正在进入,请稍后...\n"); printf("===============================================================================\r"); for(j=0; j<80; j++) { Sleep(50); printf(">"); } system("cls"); do { printf("\t\t *******************************\n"); printf("\t\t * 1.景点简介 *\n"); printf("\t\t * 2.两景点间最短路径 *\n"); printf("\t\t * 3.两景点间所有路径 *\n"); printf("\t\t * 4.退出系统 *\n"); printf("\t\t *******************************\n"); printf("请输入要进行的操作的编号:"); scanf("%d",&x); do { if(x>=1&&x<=4) break; else { printf("输入数据不合理,请重新输入:"); scanf("%d",&x); } } while(1); if(x>=1&&x<=3) { printf("\t\t *******************************\n"); if(N%2!=0) { for(i=0; i 需要的文件:
path.txt的内容:
0 20 60 150 32767 60 32767 100 300 150 20 0 50 100 32767 32767 32767 32767 32767 32767 60 50 0 32767 32767 300 40 32767 32767 32767 150 100 32767 0 32767 32767 32767 100 32767 32767 32767 32767 32767 32767 0 50 32767 32767 32767 30 60 32767 300 32767 32767 0 200 32767 32767 50 32767 32767 40 32767 32767 200 0 32767 32767 32767100 32767 100 32767 32767 32767 0 50 32767 32767 300 32767 32767 32767 32767 32767 32767 50 0 35050 32767 32767 32767 30 50 32767 32767 350password.txt的内容:
pass 123456data.txt的内容:
0 三元湖 烟大的一道靓丽的风景1 钟楼 配备有专业设备的实验综合楼2 八景园 休息和聊天的好去处3 小树林 各种社团的活动场所,4 九龙广场 海豚雕塑加上美丽的喷泉很漂亮5 八餐 美味的饭菜让人回味无穷6 一餐 豪华的装修,美味的饭菜7 体育场 锻炼和饭后散步的好去处8 七餐 全亚洲最大的学生餐厅9 新图 藏书丰富,安静的环境让人很舒服以上是"如何使用C++实现简单校园导游系统"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
输入
景点
路径
信息
j++
系统
内容
字符
密码
成功
位置
简介
顶点
校园
不合理
数据
长度
查询
管理
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ps4港版连接哪个服务器最好
泰拉瑞亚开服务器精简服务端
系统和网络安全防范培训
兄弟标签打印机数据库打印
甘肃百纳网络技术有限公司
如何查看网络安全性
晚归系统数据库
网络安全金融日宣传周总结
访问服务器上的虚拟机
软件开发定制合同6%
网吧服务器都是安装什么驱动
软件开发文档引言
软件开发常见项目问题
中国名人百科数据库薛稳发
it软件开发公众号好听名字
网络安全法 教案
8开纸画网络安全手抄报四年级
互联网创业 软件开发
软件开发实习报告3000字
凡易网络技术工作室
中学网络安全教育事例
node 数据库事务
网络安全工程师证书有效期
中信银行软件开发岗工资
数据库超出了时间自动更新
360手机软件开发平台
网络配置测试与网络安全
vb查询sql数据库为空
双层计算机软件开发技术
凡易网络技术工作室