项目文件下载地址:
听说点赞后食用更好哦
链接: https://pan.baidu.com/s/1SGPpOBmKgTM3JX43R2HA1g?pwd=uvpy 提取码: uvpy
主界面代码
#include <iostream>
#include <string.h>
#include <windows.h>
#include "jiemian2.h"
using namespace std;
int main() {
while(1)
{
system("cls");
int a;
printf("\n");
printf("\n");
printf(" *********欢迎使用校园导游系统:*********\n");
printf(" ________________________________________________________________\n");
printf(" |----> 请选择你的操作 <----|\n");
printf(" |---->1.进入校园导游系统 <----|\n");
printf(" |---->2.退出系统 <----|\n");
printf(" |______________________________________________________________|\n");
printf(" 请输入你的选项:");
scanf("%d",&a);
system("cls");
if(a==1){
run();
}
else if(a==2){
return 0;
}
}
return 0;
}
界面2代码:
#include"jiemian2.h"
#include <iostream>
#include <string.h>
#include <windows.h>
#include "jiemian3.h"
#include "jiemian4.h"
#include "jiemian5.h"
#include "jiemian6.h"
using namespace std;
void run(){
while(1)
{ system("cls");
int b,c;
printf("\n");
printf("\n");
printf(" *********欢迎使用校园导游系统:*********\n");
printf(" ________________________________________________________________\n");
printf(" |----> 请选择你的操作 <----|\n");
printf(" |---->(1)校园地图总览 <----|\n");
printf(" |---->(2)校内景点查询 <----|\n");
printf(" |---->(3)最短路查询 <----|\n");
printf(" |---->(4)制作成员 <----|\n");
printf(" |---->(5)返回上界面 <----|\n");
printf(" |______________________________________________________________|\n");
printf(" 请输入你的选项:");
scanf("%d",&b);
system("cls");
if(b==1){
running();
}
else if(b==2){
running1();
}
else if(b==3){
running2();
}
else if(b==4){
running3();
}
else if(b==5){
return ;
}
}
}
界面3代码
#include"jiemian3.h"
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
void running(){
while(1)
{
printf(" ******************************\n");
printf(" 欢迎来到西南石油大学 \n");
printf(" ******************************\n");
printf("\n");
printf(" ______________________________________________________________________________________________________\n");
printf(" | -------- ---------------- -------- |\n");
printf(" | 体育馆 <------------- 正大门(西大门) --------------> 校医院 |\n");
printf(" | -------- ---------------- -------- |\n");
printf(" | || || || |\n");
printf(" | || || || |\n");
printf(" | || ------- || |\n");
printf(" | || -------> 石油魂 || |\n");
printf(" |---------- ------ || ------- || |\n");
printf(" | 生活区 ------> 情人岛 || || || ------------|\n");
printf(" | 龙井湖 --- || ||-------> 教职工区域 |\n");
printf(" |---------- ------ || || ------------|\n");
printf(" | || || || || |\n");
printf(" | || ------ || || |\n");
printf(" | || 龙井苑 || || |\n");
printf(" | || ------ || || |\n");
printf(" | || || || |\n");
printf(" | || || || |\n");
printf(" | || || |\n");
printf(" | || ------- -------- || |\n");
printf(" | -----------> 图书馆 -----------> 教学区 <------------- |\n");
printf(" | ------- |\n");
printf(" | || -------- |\n");
printf(" | || || |\n");
printf(" | || || |\n");
printf(" | || || |\n");
printf(" | || ------- || |\n");
printf(" | -----> 健身房 <------ || |\n");
printf(" | ------- |\n");
printf(" |____________________________________________________________________________________________________|\n");
printf("\t\t");
printf(" 按任意键返回上界面 ");
system("pause");
return;
}
}
界面4代码:
#include"jiemian4.h"
#include <iostream>
#include <string.h>
#include <windows.h>
void running1(){
while(1){
system("cls");
printf("\n");
printf("\n");
printf(" *********欢迎使用校园导游系统:*********\n");
printf(" ________________________________________________________________\n");
printf(" |----> 校内景点查询 <----|\n");
printf(" |---->(0)西大门 <----|\n");
printf(" |---->(1)健身房 <----|\n");
printf(" |---->(2)教学区 <----|\n");
printf(" |---->(3)龙井湖 <----|\n");
printf(" |---->(4)情人岛 <----|\n");
printf(" |---->(5)生活区 <----|\n");
printf(" |---->(6)石油魂 <----|\n");
printf(" |---->(7)体育馆 <----|\n");
printf(" |---->(8)图书馆 <----|\n");
printf(" |---->(9)校医院 <----|\n");
printf(" |---->(10)龙井苑 <----|\n");
printf(" |---->(11)教职工区域 <----|\n");
printf(" |---->(12)查看各景点间距离 <----|\n");
printf(" |---->(13)返回上一界面 <----|\n");
printf(" |______________________________________________________________|\n");
printf(" 请输入你的选项:");
int c;
scanf("%d",&c);
system("cls");
if(c==3){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/龙井湖.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==1){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/健身房.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==2){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/教学区.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==4){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/情人岛.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==5){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/生活区.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==6){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/石油魂.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==7){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/体育馆.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==8){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/图书馆.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==9){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/校医院.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==10){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/龙井苑.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==11){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/教职工区域.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==12){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/各景点间距离.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else if(c==0){
FILE *fp;
char buff[255];
fp = fopen("C:/Users/朝俞/Desktop/校园导游系统/校内景点/西门.txt", "r");
while(fgets(buff, 255, (FILE*)fp))
printf("%s\n", buff );
fclose(fp);
printf("\n\n");
printf("按任意键返回上界面");
printf("\n\n");
}
else{
return;
}
system("pause");
}
}
界面5代码
#include"jiemian5.h"
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
#define INF 0x3f3f3f3f
const int N=20;
int ditu[N][N]={0}; //定义地图,求最短路径
int push[N][N]={0}; //定义push求最短路径应该经过的地点
struct jingdian{
int bianhao;
char jingdian_name[10];
}jq[N];
void geshihua(){
for(int i=0;i<=11;i++){
jq[i].bianhao=i;
if(i==1){
strcpy(jq[i].jingdian_name,"健身房");
}
else if(i==2){
strcpy(jq[i].jingdian_name,"教学区");
}
else if(i==3){
strcpy(jq[i].jingdian_name,"龙井湖");
}
else if(i==4){
strcpy(jq[i].jingdian_name,"情人岛");
}
else if(i==5){
strcpy(jq[i].jingdian_name,"生活区");
}
else if(i==6){
strcpy(jq[i].jingdian_name,"石油魂");
}
else if(i==7){
strcpy(jq[i].jingdian_name,"体育馆");
}
else if(i==8){
strcpy(jq[i].jingdian_name,"图书馆");
}
else if(i==9){
strcpy(jq[i].jingdian_name,"校医院");
}
else if(i==10){
strcpy(jq[i].jingdian_name,"龙井苑");
}
else if(i==11){
strcpy(jq[i].jingdian_name,"教职工区域");
}
else if(i==0){
strcpy(jq[i].jingdian_name,"西大门");
}
}
}
void geshi(){
for(int i=0;i<=11;i++)
for(int j=0;j<=11;j++){
ditu[i][j]=INF;
}
ditu[0][7]=36;
ditu[0][9]=42;
ditu[9][2]=58;
ditu[9][11]=124;
ditu[0][6]=52;
ditu[6][0]=52;
ditu[6][2]=78;
ditu[2][6]=78;
ditu[7][5]=35;
ditu[5][7]=35;
ditu[5][4]=66;
ditu[4][10]=68;
ditu[10][4]=68;
ditu[4][6]=65;
ditu[5][8]=72;
ditu[8][1]=55;
ditu[8][2]=34;
ditu[2][1]=53;
ditu[3][4]=0;
ditu[4][3]=0;
}
void floyd(){
int i,j,k;
for( i=0;i<=11;i++)
for( j=0;j<=11;j++)
{
if(i!=j&&ditu[i][j]<INF){
push[i][j]=i;
}
else
push[i][j]=-1;
}
for(k=0;k<=11;k++)
for(i=0;i<=11;i++)
for(j=0;j<=11;j++){
if(ditu[i][j]>ditu[i][k]+ditu[k][j]){
ditu[i][j]=ditu[i][k]+ditu[k][j];
push[i][j]=push[k][j];
}
}
}
void Path(int src,int des,int puth[N][N]){
if(src==des){
return;
}
else{
int pass=puth[src][des];
char dimi[10];
Path(src,pass,puth);
for(int i=0;i<=11;i++){
if(jq[i].bianhao==pass){
strcpy(dimi,jq[i].jingdian_name);
}
}
printf("%s-->",dimi);
}
}
void running2(){
while(1){
system("cls");
geshihua();
geshi();
floyd();
printf("提供查询方式:\n");
printf("1.标号查询。\n");
printf("2.地名查询。\n");
printf("3.返回。\n");
printf("请选择你的查询方式或返回上一界面:");
int k;
int a=-1,b=-1;
scanf("%d",&k);
system("cls");
if(k==1){
printf("\n");
printf(" *********欢迎使用校园导游系统:*********\n");
printf(" ________________________________________________________________\n");
printf(" |----> 支持查询的地点 <----|\n");
printf(" |---->(0)西大门 <----|\n");
printf(" |---->(1)健身房 <----|\n");
printf(" |---->(2)教学区 <----|\n");
printf(" |---->(3)龙井湖 <----|\n");
printf(" |---->(4)情人岛 <----|\n");
printf(" |---->(5)生活区 <----|\n");
printf(" |---->(6)石油魂 <----|\n");
printf(" |---->(7)体育馆 <----|\n");
printf(" |---->(8)图书馆 <----|\n");
printf(" |---->(9)校医院 <----|\n");
printf(" |---->(10)龙井苑 <----|\n");
printf(" |---->(11)教职工区域 <----|\n");
printf(" |______________________________________________________________|\n");
printf("输入你想查询的两个地点的编号:\n");
scanf("%d%d",&a,&b);
printf("\t\t\n");
printf("%d地点到%d地点最短路径长度为: ",a,b);
printf("%d\n",ditu[a][b]);
printf("%d地点到%d地点经过路程地点为: ",a,b);
Path(a,b,push);
printf("%s\n",jq[b].jingdian_name);
printf("按任意键返回上一界面:\n\n");
system("pause");
}
else if(k==2){
printf(" *********欢迎使用校园导游系统:*********\n");
printf(" ________________________________________________________________\n");
printf(" |----> 支持查询的地点 <----|\n");
printf(" |---->(0)西大门 <----|\n");
printf(" |---->(1)健身房 <----|\n");
printf(" |---->(2)教学区 <----|\n");
printf(" |---->(3)龙井湖 <----|\n");
printf(" |---->(4)情人岛 <----|\n");
printf(" |---->(5)生活区 <----|\n");
printf(" |---->(6)石油魂 <----|\n");
printf(" |---->(7)体育馆 <----|\n");
printf(" |---->(8)图书馆 <----|\n");
printf(" |---->(9)校医院 <----|\n");
printf(" |---->(10)龙井苑 <----|\n");
printf(" |---->(11)教职工区域 <----|\n");
printf(" |______________________________________________________________|\n");
printf("输入你想查询的两个地点的地名:\n");
char k1[10],k2[10],di[10];
cin>>k1>>k2;
for(int i=0;i<=11;i++){
strcpy(di,jq[i].jingdian_name);
if(strcmp(di,k1)==0){
a=jq[i].bianhao;
}
if(strcmp(di,k2)==0){
b=jq[i].bianhao;
}
}
printf("\t\t\n");
cout<<" "<<k1<<" ";
printf("到");
cout<<" "<<k2<<" ";
printf("最短路径长度为: ");
printf("%d\n",ditu[a][b]);
cout<<" "<<k1<<" ";
printf("到");
cout<<" "<<k2<<" ";
printf("经过路程地点为: ");
Path(a,b,push);
printf("%s\n",jq[b].jingdian_name);
printf("按任意键返回上一界面:\n\n");
system("pause");
}
else{
return ;
}
}
}
界面6
代码为制作人信息,不宜透露,具体写跟前几界面一致
如何食用(如果有用希望点赞):
本代码使用了模块化处理,可以实现各个界面间的跳转,所以,首先随便打开一编译软件如:EDV。创建一个项目,添加主函数和各个界面函数为 .c 文件,在各个界面添加 .c 函数同时添加 .h 函数,在该函数内添加对应界面内的函数方法,实现各个源代码之间的调用,具体如图。
代码中含有文件读取的地址系我本人电脑中地址,如取需要更改成你们自己电脑中文件读取路径
部分运行效果演示