《校园导游咨询*》设计报告
—20—
《校园导游咨询*》设计报告
七、 附录:程序设计源代码
20121764周桐-校园导游咨询系统.cpp
// 20121764.cpp : 定义控制台应用程序的入口点。 //
#include \ #include \ #include \ #include \
void main(){
system(\); int f=1;//循环判断器 string st;
int select;//选择器
//**********初始化校园地图信息************ //初始化景点 Site site[15];
site[0].setSite(0,\北校门\,\学校的北入口\,2,14); site[1].setSite(1,\北图书馆\,\学校北侧图书馆\,12,14); site[2].setSite(2,\崇德楼\,\经管学院楼\,26,14); site[3].setSite(3,\奋进楼\,\公共机房\,12,28);
site[4].setSite(4,\北运动场\,\具有足球场、篮球场、健身房等\,26,28); site[5].setSite(5,\行政楼\,\计算机学院楼及其他行政办公\,12,32);
site[6].setSite(6,\教师活动中心\,\又称H楼,具有桌球、乒乓球、会议室、舞厅等\,12,39); site[7].setSite(7,\雕塑\,\校园雕塑\,26,39); site[8].setSite(8,\南校门\,\学校南入口\,2,50); site[9].setSite(9,\至诚楼\,\办理学生事务处\,12,50);
site[10].setSite(10,\大礼堂\,\学校大型文艺演出、讲座场所\,26,50); site[11].setSite(11,\南图书馆\,\学校南侧的图书馆\,12,52);
site[12].setSite(12,\大学生文化活动中心\,\团委、学生会、社联所在处\,12,58); site[13].setSite(13,\风帆广场\,\绿地,景色优美\,26,58);
site[14].setSite(14,\南运动场\,\具有足球场、篮球场、羽毛球场等\,12,70); //初始化道路 Road road[18];
road[0].setRoad(site[0],site[1],5); road[1].setRoad(site[1],site[2],2); road[2].setRoad(site[1],site[3],3); road[3].setRoad(site[2],site[4],3);
—21—
《校园导游咨询*》设计报告
road[4].setRoad(site[3],site[4],2); road[5].setRoad(site[3],site[5],1); road[6].setRoad(site[5],site[6],3); road[7].setRoad(site[6],site[7],6); road[8].setRoad(site[4],site[7],1); road[9].setRoad(site[6],site[9],3); road[10].setRoad(site[7],site[10],6); road[11].setRoad(site[8],site[9],6); road[12].setRoad(site[9],site[10],4); road[13].setRoad(site[9],site[11],5); road[14].setRoad(site[11],site[12],4); road[15].setRoad(site[10],site[13],10); road[16].setRoad(site[12],site[13],10); road[17].setRoad(site[12],site[14],4); BGraph school(site,road,15,18);
ShellExecute(NULL,TEXT(\),TEXT(\地图.jpg\),NULL,NULL,SW_SHOWNOACTIVATE);//显示Welcome_Vision(); while (1) {
main_menu(school);//调用主界面 cin>>st; if (IsDigit(st)) {
select=stringToNum
case 1:findSite(school);break;//进入查询景点信息界面 case 2:guide(school);break;//进入景点导航界面
case 3:alterSiteRoadView(school);break;//进入修改景点或道路子菜单 case 4:developView(school);break;//进入开发人员工具界面 case 5:ShellExecute(NULL,TEXT(\),TEXT(\地case 0:
system(\);
cout<<\退出系统后,用户自定义的景点、道路将被清空,是否确认退出?确认cin>>st; if(st==\)
f=0;break;//判断器清零,退出系统
地图图片
图.jpg\),NULL,NULL,SW_SHOWNORMAL);break;//显示地图
输入[1],暂不退出输入其他内容\< —22— 《校园导游咨询*》设计报告 default:cout<<\您的输入有误!请重新输入!\< } else {cout<<\您的输入有误!请重新输入!\< } exit_view(); } ArcNode.h #pragma once class ArcNode { public: int adjvex; //邻接点下标值 ArcNode *nextarc; //指向下一个边结点的指针 int sceneLevel; int distance; public: ArcNode(void); ArcNode(int adjvex0,int sceneLevel0,int distance0); ~ArcNode(void); }; ArcNode.cpp #include \ #include \ //无参构造函数 ArcNode::ArcNode(void) { nextarc=NULL; } //带参构造函数,传入顶点下标、景色等级、距离 ArcNode::ArcNode(int adjvex0,int sceneLevel0,int distance0) { adjvex=adjvex0; —23— 《校园导游咨询*》设计报告 } sceneLevel=sceneLevel0; distance=distance0; nextarc=NULL; ArcNode::~ArcNode(void) { } BGraph.h #pragma once #include \ #include \ #include \ #include \ const int MaxSize=20; class BGraph { public: }; BGraph(Site a[],Road b[], int n, int e); //构造函数,初始化一个有n个顶点e条边的图 void addSite(); void addRoad(); ~BGraph(); //析构函数,释放邻接表中各边表结点的存储空间 void pGraph();//输出邻接表 void pMatrix();//输出邻接矩阵 void showInfo(); Site searchByName(string name); //根据景点名搜索 void DFSTraverse(int v,int visited[]);//深度优先遍历 void BFSTraverse(int v,int visited[]);//广度优先遍历 void findPath(); VertexNode adjlist[MaxSize]; int dis[MaxSize][MaxSize];//距离邻接矩阵 int scn[MaxSize][MaxSize];//风景邻接矩阵 int vertexNum, arcNum; //图的顶点数和边数 public: //存放顶点表的数组 BGraph.cpp —24—