滨州学院信息工程学院2015级数据结构 校园导航系统的设计与实现

时间:2022-06-01 18:40:03

**

校园导航系统的设计与实现 - 程序源码

如有问题咨询,请添加微信:liu960411
**


#ifndef _DS_H_
#define _DS_H_

#define NUM 16
#define MAX 65535 
#define OK 1
#define ERROR 0 

typedef struct BuildDistance{//建筑物之间距离
    int distance;//距离 
}BuildDis;
typedef struct BuildType{//景点信息 
    char sign;//景点标识 
    char *buildname;//景点名称 
    char *illustrate;//景点介绍 
}BuildType;
typedef struct initialise{//初始化构图类型 
    BuildDis build[NUM][NUM];
    BuildType type[NUM];
}Init;
Init MAP;//声明全局变量 

int P[NUM][NUM];//行,列均表示对应下表的建筑物,如值为1,表示两点之间可以到达,如为0则相反 
int D[NUM];//存储起点到各个地点的距离
char *SCHOOL;//校园简介指针 
char origin,destination;//起点 终点 
#include <stdio.h>

#endif // _DS_H_

/* **各函数均在Map.h,Menu.h,Searchpaht.h中创建 **ds.h文件为结构体的声明和常量的初始化赋值 **此文件仅是对各函数的调用和程序运行的主入口 Menu();//主菜单函数 Welcame();//欢迎信息函数 Information();//小组信息函数 PlanVisit();//校园平面图函数 CommIntro();//建筑代号提示函数 MapBuilding();//校园信息初始化函数 SearchInfo(char);//建筑信息查询函数 SearchPath();//导航查询起点终点输入函数 ShortPath(int);//查询最短路径函数 OutputPath(int ,int );//路径输出函数 OutMsn();//用户信息反馈及问题咨询函数 goodbye();//程序退出提示界面函数 */

#include <stdlib.h>
#include <stdio.h>

//引入自定义函数 
#include "SearchPath.h"
#include "OutFile.h"
#include "Menu.h"
#include "Map.h"


int main()
{
    int i,j; 
    char c;
    int temp;
    Welcame();
    Information();
    SchoolInfo();
    MapBuilding();
    system("pause");//暂停 
    do{

        c = Menu();
        temp = c - 'A';
        fflush(stdin);//清楚输入输出缓冲区
        switch(c){
            case 'A':
                system("cls");
                printf("\n\t\t\t\t滨州学院 —— 学校简介\n\n");
                printf("%s\n\n\n",SCHOOL);
                system("pause");
                break;
            case 'B':
                system("cls");
                printf("\n\t\t\t\t滨州学院 —— 校园平面图\n\n");
                PlanVisit();
                system("pause");
                break;
            case 'C':
                system("cls");
                printf("\n\t\t\t\t滨州学院 —— 建筑标识展示\n\n");
                CommIntro();
                system("pause");
                break;
            case 'D':
                system("cls");
                c = InputSearchInfo();
                SearchInfo(c);
                system("pause");
                break;
            case 'E':
                system("cls");
                printf("\n\t\t\t\t滨州学院 —— 校园导航\n\n");
                SearchPath();
                system("cls");
                ShortPath(origin - 'A');
                OutputPath(origin - 'A',destination - 'A');
                system("pause");
                break;
            case 'F':
                system("cls");
                OutMsn();
                system("pause");
                break;  
        } 
    }while(c != 'G');
    system("cls");
    printf("\n\n\t\t\t\t课程设计展示完毕!!!\n");
    Information();  
    goodbye();
    system("pause");
    return OK;
}//main()-END!!!

#include <stdio.h> 
#include "ds.h"

char Menu(){//主菜单
    char c;
    int tag,temp = 0;
    system("cls");
    do{
        Welcame();
        tag = 0;//循环标志 
        printf("\n\n\t\t\t\t滨州学院校园导航主菜单 \n");
        printf("\t\t\t**************************************\n");
        printf("\t\t\t*** ***\n");
        printf("\t\t\t*** A. 滨州学院简介 ***\n");
        printf("\t\t\t*** B. 校园平面图 ***\n");
        printf("\t\t\t*** C. 校园建筑名称及标识 ***\n");
        printf("\t\t\t*** D. 校园建筑信息介绍 ***\n");
        printf("\t\t\t*** E. 校园导航 ***\n");
        printf("\t\t\t*** F. 用户信息反馈及信息咨询 ***\n");
        printf("\t\t\t*** G. 关闭程序 ***\n");
        printf("\t\t\t*** ***\n");
        printf("\t\t\t**************************************\n\n");
        if(temp)
            printf("\t\t\t校园导航 --- 您输入有误,请重新输入\n\t\t\t(例如: A 按 Enter):");
        else 
            printf("\t\t\t校园导航 --- 请输入您的选择\n\t\t\t(例如: A 按 Enter):");
        fflush(stdin);//清楚输入输出缓冲区
        scanf("%c",&c);
        if(c < 'A' || c > 'G'){
            system("cls");//清屏
            tag = 1;
            temp = 1;
        }
    }while(tag);
    return c;
}//Menu()-END!!!



int Welcame(){
    printf("\n\n\n\n\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    printf("\t\t☆☆☆☆☆ Welcome to BinZhou University ☆☆☆☆☆\n");
    printf("\t\t☆☆☆☆☆ 欢迎来到滨州学院 ☆☆☆☆☆\n");
    printf("\t\t☆☆☆☆☆ 欢迎您使用滨州学院导航系统 ☆☆☆☆☆\n");
    printf("\t\t☆☆☆☆☆祝您在滨州学院 学的开心,玩的愉快 ☆☆☆☆☆\n");
    printf("\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
    return OK;
}//Welcame-END!!! 

int Information(){
    printf("\n\n\t\t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    printf("\t\t ☆☆☆ 信息工程学院--数据结构课程设计 ☆☆☆\n");
    printf("\t\t ☆☆☆ 滨州学院校园导航系统 ☆☆☆\n");
    printf("\t\t ☆☆☆ ☆☆☆\n");
    printf("\t\t ☆☆☆ 第二小组 ☆☆☆\n");
    printf("\t\t ☆☆☆ 组长:刘×× ☆☆☆\n");
    printf("\t\t ☆☆☆ 成员: 张×× 宋×× 苗×× ☆☆☆\n");
    printf("\t\t ☆☆☆ 指导老师:李× ☆☆☆\n");
    printf("\t\t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
    return OK;
}//Information()-END!!!

int CommIntro(){
    printf("\n\n\t ○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○\n");
    printf("\t ○○☆☆☆☆☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆☆☆☆○○\n");
    printf("\t ○○☆ 建筑代号提示区 ☆○○\n");
    printf("\t ○○☆ 实验楼: A 信息楼: B 图书馆: C 田径场: D ☆○○\n");
    printf("\t ○○☆ 校医院: E 学生公寓:F 艺术学院:G 飞行学院:H ☆○○\n");
    printf("\t ○○☆ 教学区一:I 教学区二:J 学苑会堂:K 第一餐厅:L ☆○○\n");
    printf("\t ○○☆ 第二餐厅:M 第三餐厅:N 学院南门:O 学院北门:P ☆○○\n");
    printf("\t ○○☆ 代号统一规定为 大写英文字母! ☆○○\n");
    printf("\t ○○☆ 操作提示:请您仔细阅读,以方便您的使用 ☆○○\n");
    printf("\t ○○☆ ☆○○\n");
    printf("\t ○○☆ 建筑名称后为建筑代号 ☆○○\n"); 
    printf("\t ○○☆ 如需选择建筑物时,请输入相应代号 ☆○○\n"); 
    printf("\t ○○☆ 例如输入:A 按下 Enter ☆○○\n"); 
    printf("\t ○○☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆○○\n");
    printf("\t ○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○\n\n");
    return OK;
}

void goodbye(){
    int i;
    char bye[90] = "Thanks for watch, our curriculum design - campus navigation system is completed!!!\n\n";
    printf("\n\t\t");
    for(i = 0;i < 85;i ++){
        Sleep(115);
        printf("%c",bye[i]); 
    }
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

}

#include <stdio.h>
#include "ds.h"


int PlanVisit(){
    printf("\n\n\t\t\t▂▃▄▆▇█***滨州学院平面图***█▇▆▄▃▂\n\n");
    printf("\t\t*************************************************************\n");
    printf("\t\t* *\n");
    printf("\t\t* 北 学院北门 *\n");
    printf("\t\t* ↑ 校医院 ║ *\n"); 
    printf("\t\t* 西← →东 ╔═╦═╧══╬═══╦═══╗ *\n");
    printf("\t\t* ↓ ║ ║ ║ ║ ║ *\n");
    printf("\t\t* 南 ╔╝ 学 第 ║ ║ ║ *\n");
    printf("\t\t* ║ 生 ╔三餐╢ ║ ║ *\n");
    printf("\t\t* ╔╝ 公═╦╝ 厅 ║ 田 ║ *\n");
    printf("\t\t* ║ 寓 ╔╝ ╠═══径═══╣ *\n");
    printf("\t\t* ╔╝ ╔╝ ║ 场 ║ *\n");
    printf("\t\t* ║ ╔╝ ║ ║ ║ *\n");
    printf("\t\t* ╔╝第╔╝ ║ 第 ║ ║ *\n");
    printf("\t\t* ╟二餐╬═══════╬一餐═╩═╤═╣ *\n");
    printf("\t\t* ╔╝ 厅 ║ ║ 厅 教学 ║ *\n");
    printf("\t\t* ╔╝ 图书馆 ╟飞院 区二 ║ *\n");
    printf("\t\t* ║ ║ ╠═══════╝ *\n");
    printf("\t\t* ╔╝ ║ ╟实验 *\n");
    printf("\t\t* ║ 教学╬区一 ║ 楼 *\n");
    printf("\t\t* ╔╝ ║ ║ *\n");
    printf("\t\t* ║ ║ ║ *\n");
    printf("\t\t* ╔╝ ║ ╔╝ *\n");
    printf("\t\t* ║ 艺术 ║ ╔═╝ *\n");
    printf("\t\t* ╔╝ 学院 信息楼 ╔═╝ *\n");
    printf("\t\t* ╚══╬═════╬══╝ *\n");
    printf("\t\t* 学苑会堂 ║ *\n");
    printf("\t\t* 学院南门 *\n"); 
    printf("\t\t* *\n"); 
    printf("\t\t*************************************************************\n\n");
    return OK;

}//PlanVisit()-END!!!

int MapBuilding(){
    int i,j;
    for(i = 0;i < NUM;i ++){
        MAP.type[i].sign = i+'A';
    }
    //地图建筑名称初始化 
    MAP.type[0].buildname = "实验楼"; 
    MAP.type[1].buildname = "信息楼"; 
    MAP.type[2].buildname = "图书馆"; 
    MAP.type[3].buildname = "田径场"; 
    MAP.type[4].buildname = "校医院"; 
    MAP.type[5].buildname = "学生公寓"; 
    MAP.type[6].buildname = "艺术学院"; 
    MAP.type[7].buildname = "飞行学院"; 
    MAP.type[8].buildname = "教学区一"; 
    MAP.type[9].buildname = "教学区二"; 
    MAP.type[10].buildname = "学苑会堂"; 
    MAP.type[11].buildname = "第一餐厅"; 
    MAP.type[12].buildname = "第二餐厅"; 
    MAP.type[13].buildname = "第三餐厅"; 
    MAP.type[14].buildname = "学院南门"; 
    MAP.type[15].buildname = "学院北门"; 
    //建筑物信息介绍初始化 
    MAP.type[0].illustrate = "\t实验楼为滨州学院教学与研究的实验场所,为学生提供实验的教学条件,为老师课题研究提供场所与实验工具,实验楼位于飞行学院南侧,在实验楼还设有大学生创业孵化基地。为大学生创业提供支持\n\n";
    MAP.type[1].illustrate = "\t信息楼设有计算机基础、计算机硬件技术、软件技术、计算机网络技术、通信工程、物联网工程、数字媒体技术、计算机公共课教学部等8个教研室和计算机与通信技术实验中心。设有计算机网络技术、嵌入式系统、微机原理、软件技术、通信原理、移动通信、光纤通信、物联网技术等16个专业实验室。拥有仪器设备2600多台套,设备总值1500余万元\n\n";
    MAP.type[2].illustrate = "\t图书馆大楼建于2003年,2004年9月启用。大楼位于校园中心地带,雄伟壮观。馆舍面积2.1万平方米,高十层,设有密集书库、报纸文献库、自然科学书库、社会科学书库、文学书库、工具书库、特藏文献书库、黄河三角洲文献室等12个书库;设有期刊阅览室、文献检索课实习室、电子文献阅览室、自修室等5个专门阅览室,共有阅览座位3000余个;另外还设有一个学术报告厅、一个展览厅、一个会议室。整座大楼设施齐全,功能完备,充满现代化气息 \n\n";
    MAP.type[3].illustrate = "\t田径场主要为学生提供体育锻炼和体育活动的场所,承担体育教学任务与日常的户外活动;每年的运动会都会涌现出一批英姿飒爽的运动员;田径场的看台可以同时容纳一千多名学生,从而可以让学生们为运动员加油呐喊\n\n";
    MAP.type[4].illustrate = "\t校医院是为保障学生身体健康而设立,为学生做好强有力的后勤保障;校医院采用先进的科学技术,为学生问诊,开药和必要的健康知识普及\n\n";
    MAP.type[5].illustrate = "\t学生公寓是为学生提供休息的场所,学生内务为大学生活开始的第一课。在进入大学生活后的第一天整理内务,结识同学就是在学生公寓开始的,这里是我们梦想开始的地方\n\n";
    MAP.type[6].illustrate = "\t艺术学院是有美术,音乐,舞蹈专业组成,在这里你可以听的悦耳的歌声,欣赏到优美的舞姿和巧美的美术作品,在艺术学院外的格局布局优美,一侧环湖是艺术学院学生晨练的好地方\n\n";
    MAP.type[7].illustrate = "\t飞行学院设有独立的行政教学办公楼,资料室、展览室、电子备课室、多媒体教室、多功能健身房等建设齐全,为飞行技术专业学生学习、生活、训练、实验创造了良好的环境。现已和中国飞龙专业航空公司、北京泛美国际航空学校有限公司、滨州大高航空城、山东太古飞机工程有限公司等单位签订了联合办学协议。飞行学院确立了以教学为中心,以学生为主体,以培养人才为根本的办学理念,按照“思想过硬、行为规范、纪律严明、技术精湛”的院训,对学生实行“准军事化”管理,努力造就适应现代民航事业的合格人才\n\n"; 
    MAP.type[8].illustrate = "\t教学区一是有教学楼1-7组成,这里承担的大部分同学的教学产生任务,同时为学生提供自习场所,各教室均安装现代教学设备,采用传统教学与现代科技教学为一体的德,智,美的全面教育,使同学全面发展\n\n";
    MAP.type[9].illustrate = "\t教学区二是有教学楼8-10组成,这里承担部分院系的教学场所任务与自习。同时承担院校的各大小考试,配有严密的监控系统各教室均安装现代教学设备,采用传统教学与现代科技教学为一体的德,智,美的全面教育,使同学全面发展\n\n";
    MAP.type[10].illustrate = "\t学苑会堂是由五百人会堂和千人会堂组成,承担该院校的重要活动场所,例如:各院系的重要全体会议,邀请著名教授演讲,节日庆典活动\n\n";
    MAP.type[11].illustrate = "\t第一餐厅是服务于学生和教职工,飞行学院和乘务学院主要吃饭地点;在一餐有各种菜系,同时也有地方特产食物,例如:掉渣饼,酱香饼\n\n";
    MAP.type[12].illustrate = "\t第二餐厅提供各地风味饮食,以面食为主。有牛肉板面,麻辣面,兰州拉面等,此餐厅后有二餐洗浴中心,对于学生洗澡后在去吃个饭再好不过了\n\n";
    MAP.type[13].illustrate = "\t第三餐厅有各地特色风味菜品,主要以套餐为主,同时内有高档餐厅其一楼为超市,超市中有各种商品,水果,而且物美价廉\n\n";
    MAP.type[14].illustrate = "\t学院南门为学校正门,门口有滨州学院四字显于*,随后可见后方信息楼;南门外为大学文化创意城,在此有各种美食,在那你会品得美味\n\n";
    MAP.type[15].illustrate = "\t学院北门为学校后门,此门距宿舍,田径场距离近,便于学生外出;";
    //建筑物距离初始化
    for(i = 0;i < NUM;i ++){
        for(j = 0;j < NUM;j ++){
            MAP.build[i][j].distance = MAX;
        }
    }
    MAP.build[0][1].distance = MAP.build[1][0].distance = 420;
    MAP.build[0][6].distance = MAP.build[6][0].distance = 620;
    MAP.build[0][7].distance = MAP.build[7][0].distance = 170;
    MAP.build[0][10].distance = MAP.build[10][0].distance = 620;
    MAP.build[0][14].distance = MAP.build[14][0].distance = 550;
    MAP.build[1][6].distance = MAP.build[6][1].distance = 200;
    MAP.build[1][8].distance = MAP.build[8][1].distance = 300;
    MAP.build[1][10].distance = MAP.build[10][1].distance = 200;
    MAP.build[1][14].distance = MAP.build[14][1].distance = 160;
    MAP.build[2][5].distance = MAP.build[5][2].distance = 550;
    MAP.build[2][8].distance = MAP.build[8][2].distance = 100;
    MAP.build[2][11].distance = MAP.build[11][2].distance = 380;
    MAP.build[2][12].distance = MAP.build[12][2].distance = 220;
    MAP.build[2][13].distance = MAP.build[13][2].distance = 570;
    MAP.build[3][4].distance = MAP.build[4][3].distance = 470;
    MAP.build[3][9].distance = MAP.build[9][3].distance = 620;
    MAP.build[3][11].distance = MAP.build[11][3].distance = 480;
    MAP.build[3][13].distance = MAP.build[13][3].distance = 340;
    MAP.build[3][15].distance = MAP.build[15][3].distance = 490;
    MAP.build[4][5].distance = MAP.build[5][4].distance = 150;
    MAP.build[4][12].distance = MAP.build[12][4].distance = 650;
    MAP.build[4][13].distance = MAP.build[13][4].distance = 310;
    MAP.build[4][15].distance = MAP.build[15][4].distance =  200;
    MAP.build[5][11].distance = MAP.build[11][5].distance = 690;
    MAP.build[5][12].distance = MAP.build[12][5].distance = 560;
    MAP.build[5][13].distance = MAP.build[13][5].distance = 180;
    MAP.build[5][15].distance = MAP.build[15][5].distance = 200;
    MAP.build[6][10].distance = MAP.build[10][6].distance = 30;
    MAP.build[6][12].distance = MAP.build[12][6].distance = 730;
    MAP.build[6][14].distance = MAP.build[14][6].distance = 360;
    MAP.build[7][11].distance = MAP.build[11][7].distance = 160;
    MAP.build[9][11].distance = MAP.build[11][9].distance = 240;
    MAP.build[10][12].distance = MAP.build[12][10].distance = 730;
    MAP.build[10][14].distance = MAP.build[14][10].distance = 360;
    MAP.build[11][12].distance = MAP.build[12][11].distance = 300;
    MAP.build[11][13].distance = MAP.build[13][11].distance = 320;
    MAP.build[12][13].distance = MAP.build[13][12].distance = 570;
    MAP.build[13][15].distance = MAP.build[15][13].distance = 300;
    return OK;  
}//MapBuilding()-END!!!

int SearchInfo(char x){
    switch (x){
        case 'A':
            printf("\t%s\n",MAP.type[0].illustrate);
            break;
        case 'B':
            printf("\t%s\n",MAP.type[1].illustrate);
            break;
        case 'C':
            printf("\t%s\n",MAP.type[2].illustrate);
            break;
        case 'D':
            printf("\t%s\n",MAP.type[3].illustrate);
            break;
        case 'E':
            printf("\t%s\n",MAP.type[4].illustrate);
            break;
        case 'F':
            printf("\t%s\n",MAP.type[5].illustrate);
            break;
        case 'G':
            printf("\t%s\n",MAP.type[6].illustrate);
            break;
        case 'H':
            printf("\t%s\n",MAP.type[7].illustrate);
            break;
        case 'I':
            printf("\t%s\n",MAP.type[8].illustrate);
            break;
        case 'J':
            printf("\t%s\n",MAP.type[9].illustrate);
            break;
        case 'K':
            printf("\t%s\n",MAP.type[10].illustrate);
            break;
        case 'L':
            printf("\t%s\n",MAP.type[11].illustrate);
            break;
        case 'M':
            printf("\t%s\n",MAP.type[12].illustrate);
            break;
        case 'N':
            printf("\t%s\n",MAP.type[13].illustrate);
            break;
        case 'O':
            printf("\t%s\n",MAP.type[14].illustrate);
            break;
        case 'P':
            printf("\t%s\n",MAP.type[15].illustrate);
            break;
    default:
        printf("\t系统异常,\n");
    }
    return OK;
}//SearchInfo()-END!!!

#include <stdio.h> 
#include "ds.h"

int SearchPath(){//导航查询 
    int tag;
    CommIntro();
    do{
        tag = 0;
        printf("\n\t您好,请输入你的起点位置:");//提示输入起点 
        scanf("%c",&origin);
        if(origin <'A' || origin > 'P'){
            tag = 1;
            system("cls");
            fflush(stdin);//清楚输入输出缓冲区 
            CommIntro();
            printf("\n\t对不起,您输入的起点有误,请您重新输入!!!"); 
        }
    }while(tag);
    fflush(stdin);//清楚输入输出缓冲区 
    do{
        tag = 0;
        printf("\n\t您好,请输入你的终点:");//提示输入目的地
        scanf("%c",&destination);
        if(destination <'A' || destination > 'P'){
            tag = 1;
            system("cls");
            fflush(stdin);//清楚输入输出缓冲区 
            CommIntro();
            printf("\t您好,你输入的起点为:%c(%s)\n",origin,MAP.type[origin-'A'].buildname);
            printf("\n\t对不起,您输入终点有误,请您重新输入!!!"); 
        }
    }while(tag);
    return OK;
}//SearchPath()-END!!!

int ShortPath(int num){//路径查询函数
    int i,j,k,l;//i,j,l循环变量 k记录D数组中依次最短的下表 
    int final[NUM];
    int min;
    for(i = 0;i < NUM ;i ++){
        final[i] = 0;
        D[i] = MAP.build[num][i].distance;
        for(j = 0;j < NUM;j++){
            P[i][j] = 0;    
        }
        if(D[i] < MAX){
            P[i][num] = 1;
            P[i][i] = 1;}
    }
    D[num] = 0;
    final[num] = 1; 
    for(i = 0;i < NUM;i ++){
        min = MAX;
        for(j = 0;j < NUM;j++){
            if(!final[j]){
                if(D[j] < min){
                    k = j;
                    min = D[j];}
            }
        }
        final[k] = 1;
        for(j = 0;j < NUM;j ++){
            if(!final[j] && ((min + MAP.build[k][j].distance)< D[j])){
                D[j] = min + MAP.build[k][j].distance;
                for(l = 0;l < NUM;l ++){
                    P[j][l] = P[k][l];
                }
                P[j][j] = 1;
            }
        }
    }
    return OK;
}//ShortPath(int)-END!!!

int OutputPath(int origin,int destination){//路径输出函数 
    int i,j,o,d;//i,j为循环变量;o为起点序号,d为终点序号 
    o = origin;
    d = destination;
    PlanVisit();
    if(o != d){//判断起点与终点是否相同,不同进入if语句,相同进入else语句 
        printf("\n您好,亲爱的用户 起点:%c -> (%s) 终点:%c -> (%s)\n\n",origin + 'A',MAP.type[origin].buildname,destination + 'A',MAP.type[destination].buildname);
        printf("为您规划的最短距离为:%d米\n\n",D[destination]);
        printf("为您规划的导航路线为:%s",MAP.type[origin].buildname);
        for(i = 0;i < NUM;i++){
            P[d][o] = 0;
            for(j = 0;j < NUM;j ++){
                if(P[d][j] && MAP.build[o][j].distance < MAX){
                    printf("--->%s",MAP.type[j].buildname);
                    P[d][j] = 0;
                    o = j;
                }
            }
        }
        printf("\n\n\n\n\t\t\t\t\t\t***** 导航结束 祝您心情愉快 *****\n\n");
    } 
    else{
        printf("\n您好,亲爱的用户 起点:%c -> (%s) 终点:%c -> (%s)\n",origin + 'A',MAP.type[origin].buildname,destination + 'A',MAP.type[destination].buildname);
        printf("为您规划的最短距离为:%d米\n",D[destination]);
        printf("为您规划的导航路线为:%s.\n\n",MAP.type[origin].buildname);
    }
    return OK;
}//OutputPath()-END!!!

char InputSearchInfo(){
    char c;
    int tag;
    printf("\n\n\t\t\t\t滨州学院 —— 建筑信息查询\n");
    CommIntro();
    do{
        tag = 0;
        printf("\t 请您输入你要查询的建筑标识: ");
        scanf("%c",&c);
        if(c < 'A' || c > 'P'){
            tag = 1;
            system("cls");
            printf("\n\n\t\t\t\t滨州学院 —— 建筑信息查询\n");
            CommIntro();
            printf("\t 用户您好,您输入的有误,请重新输入...\n");
        }
    }while(tag);
    printf("\n\t 您查询的建筑为:%c-->(%s)详细信息展示如下:\n\n",c,MAP.type[c-'A'].buildname);
    return c;
}

int SchoolInfo(){//校园信息介绍 
    SCHOOL = "\n\t滨州学院(Binzhou University)是一所省属全日制综合性普通本科院校,坐落在中国古代著名军事家“兵圣”孙武的故乡、渤海之滨、富饶美丽的黄河三角洲腹地现代生态园林型城市——滨州市。学校党委、行政团结带领全校师生员工,坚持以马克思列宁主义、*思想、*理论、“三个代表”重要思想、科学发展观为指导,围绕建设以航空为主要特色的高水平应用型大学的办学定位,大力实施质量立校、人才强校、特色兴校、开放活校、和谐治校“五大战略”,学校各项事业蓬勃发展。校园占地1970亩,校舍建筑面积44.1万平方米,固定资产总值14.08亿元。设有21个实验中心(室),其中2个为省级实验教学示范中心;教学科研仪器设备总值1.6亿元。图书馆纸质图书158万册,电子图书110万册,中外文纸质期刊2000余种,电子期刊28332种,拥有电子文献数据库118个。加大学生学科竞赛、大学生研究训练计划等,获*项目和奖励1166项、省部级项目和奖励2997余项,发表学术论文和作品867余篇,取得专利授权159项。 国内权威机构麦可思公司调查显示,我校毕业生毕业半年后非失业率稳定且高于全国非“211”本科院校,毕业生对母校推荐度和满意度评价均高于全国非“211”本科院校。大力开展教师教育,2012年被批准为山东省第二批省级教师教育基地。与中国科学院、山东大学等21家单位联合培养硕士研究生,是山东省教育厅批准的研究生联合培养基地。 学校重视科学研究,实施“一流学科建设计划”、“1355科技创新工程”,不断强化优势特色,提高科技创新能力。建有2个省级重点学科、4个省文化艺术科学重点学科。建有校级科研机构16个,拥有1个*科普教育基地、9个省部级重点实验室(研究中心、基地)、3个省级(社)科普教育基地、3个省高校重点实验室(基地)和24个市厅级创新平台。承担*科研项目52项、省部级科研项目381项;获得专利授权467项,取得鉴定成果70项;获市厅级以上科研成果奖励1593项。发表学术论文5600余篇,其中SCI、EI收录481篇;出版学术著作161部。《滨州学院学报》被评为“全国地方高校名刊”,“孙子研究”栏目入选教育部“名栏建设工程”。 学校积极服务社会和行业,主动对接“一带一路”“两区两圈”和“民航强国”等发展战略,制定实施《服务黄河三角洲区域发展行动计划(2016-2020年)》《服务民用航空业行动计划(2016-2020年)》,与山东社会科学院、滨州市*、青岛科技大学、山东理工大学、青岛国际机场、济南机场、东营胜利机场签订战略合作协议。建有黄河三角洲高效生态经济发展研究院等一批服务区域、行业发展的创新平台,与地方*、企业、行业签订合作协议100余项,合作项目600 余项,服务经费1000余万元;与地方、行业联合培养培训各类急需人才35000余名。 学校坚持引育并举,实施“三百工程”、“黄河英才工程”、“1121人才工程”、“‘双师双能型’教师素质提升工程”,大力加强人才队伍建设。现有现有专任教师919人,其中,博士生导师4人、硕士生导师41人,教授、副教授291人,博士、硕士803人;有国家“千人计划”特聘教授1人、国务院*特殊津贴获得者1人、全国社科普及专家1人、“黄河英才”特聘教授2人,山东省有突出贡献的中青年专家1人、省级优秀教学团队4个、省级教学名师7人、省级优秀教师6人、山东省高校首席专家2人。聘请8名院士担任学校名誉院长、顾问或客座教授,聘任兼职教授和具有丰富实践经验的兼职教师180余人。 学校坚持走特色办学之路,精心打造飞行技术和黄河三角洲生态、黄河三角洲文化、孙子文化研究等特色品牌。围绕服务我国民航事业,2006年设置了飞行技术专业,组建了飞行学院,成为全国第一家培养飞行员的地方普通本科院校;现有飞行学院、航空工程学院、机场学院、乘务学院等4个航空类学院,有飞行驾驶、飞行安全、民航机务工程、空中交通管理与签派、机场运行与管理、飞行器动力工程、飞行器制造工程、空中乘务等10个航空类专业(方向);先后与中国国际货运航空公司、山东航空股份有限公司、海南航空股份有限公司等12家单位“订单式”联合培养飞行驾驶、飞行安全、空中乘务等运输航空人才,已有1000余名学生顺利毕业,2010届飞行技术专业毕业生吕吉昌已在山东航空公司升任机长;与山东海若通用航空有限公司、山东高翔通用航空有限公司等4家航空公司联合培养通用航空人才。借助地域地缘和文化优势,建有山东省黄河三角洲生态环境重点实验室、山东省黄河三角洲文化研究基地、山东省高校孙子兵法与兵学研究基地等,积极开展黄河三角洲生态环境、文化和孙子文化研究,取得了一系列成果。 学校不断深化国际合作与交流,与美国、英国、法国、加拿大、澳大利亚等国家的30余所大学、教育机构建立了交流与合作关系,先后举办了市场营销、学前教育、软件技术等6个中外合作办学项目,国际化进程不断加快。 学校坚持以人为本,依法治校,*管理,不断加强党建和思想政治教育工作,致力于绿色、文明、平安、和谐校园建设,取得了显著成绩。先后获得“全国法制宣传教育先进单位”“全国绿化模范单位”“全国高校学生公寓管理服务工作先进单位”“省级文明单位”“平安山东建设先进单位”“山东省高校平安校园”等30多项省级及以上荣誉称号;《中国教育报》《中国经济导报》《中国民航报》《大众日报》《高教领导参考》《山东高等教育》、光明网、大众网等媒体多次对学校改革发展情况进行报道,学校影响力和美誉度进一步提升。 目前,学校正全面贯彻党的十八大和十八届三中、四中、五中全会精神,深入学习贯彻*总书记系列重要讲话精神,主动适应经济发展新常态,紧紧抓住“黄蓝”两区开发建设和深化高等教育综合改革的重大机遇,按照“顶天立地”的发展思路,同心同德,开拓创新,向着建设以航空为主要特色的高水平应用型大学的目标而阔步前进!";
    return OK;
} 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "ds.h"

int OutMsn(){
    FILE *fp;
    char str[300];
    if((fp = fopen("D:\\fankui.txt","a+")) == NULL) 
        printf("\n\n\t\t对不起,您的PC不存在D盘或您没有权限操作磁盘文件!!!\n感谢您的参与!谢谢");
    printf("\n\n\t\t\t\t信息反馈系统\n\n");
    printf("\t\t明德 砺学 日新 致远\n\n");
    printf("\t\t\t自强不息 守正出奇\n\n");
    printf("\n请你输入你想要咨询的问题,以便我们解决\n请输入:");
    scanf("%s",str);
    fprintf(fp,"咨询的问题:%s\n",str);
    printf("\n请您留下您的联系方式,以便我们与您取得联系\n联系方式:");
    scanf("%s",str);
    fprintf(fp,"咨询者联系方式:%s\n\n",str); 
    fclose(fp);
    printf("\n\n\n\n\t\t\t\t您的问题已提交 感谢您的参与\n\n\t\t\t\t请保持您的联系方式畅通,我们将尽快给您回复。\n\n\n\n\n\n\n\n");

    return OK;
}

//**程序结束**