当前位置:文档之家› 校园导游

校园导游

校园导游
校园导游

南通大学数据结构课程设计

校园导游系统

实验报告

学生姓名

所在院系

专业

学号

指导教师

南通大学

2014年 1 月 12 日

前言

南通大学坐落于素有“江海明珠”、“历史文化名城”美誉的沿海开放城市——江苏省南通市,是江苏省人民政府和交通运输部共建的综合性大学。学校的办学历史最早可追溯到近代著名实业家、教育家张謇先生于1912年创办的私立南通医学专门学校和南通纺织专门学校。2004年,南通医学院、南通工学院、南通师范学院三校合并组建南通大学。经过一个世纪的办学历程,南通大学现已建设成为一所规模结构合理、学科门类齐全、教学质量优秀、办学效益明显的地方综合性大学。

南通大学现有4个校区,占地面积3700余亩,有25个学院和1所大型综合三级甲等附属医院,有全日制在校生3.5万余人,设有94个本科专业,涵盖文学、理学、工学、医学、艺术学、经济学、法学、教育学、历史学、管理学等10个学科门类。学校始终坚持人才培养的中心地位,全面深化教育教学改革。2007年以优秀成绩通过教育部本科教学工作水平评估。学校拥有国家特色专业建设点、江苏省品牌专业、江苏省特色专业,以及国家级教学团队、国家级教学成果奖、国家精品课程、国家精品教材、国家级实验教学示范中心、江苏省高等教育教学成果奖等一批优质教学资源。学校是江苏省首批教学工作先进高校。

学校师资力量雄厚,现有教职工3000多人,教学科研人员近2200人,其中博士、硕士生导师700余人,拥有国家有突出贡献的中青年专家、国家杰出青年科学基金获得者、首届江海杰出英才奖获得者、享受国务院特殊津贴人员、教育部优秀骨干教师、江苏省有突出贡献的中青年专家、省“333”工程培养对象、省高校“青蓝工程”培养对象等各类杰出人才。

学校广泛开展国际交流与合作,与英国、美国、澳大利亚、日本、香港等国家和地区的40多所高校和科研院所建立了友好合作关系,开展多个国际交流项目。

学校是全国精神文明建设先进单位,全国精神文明建设典型“莫文隋”精神的发源地,江苏省思想政治工作优秀单位,江苏省文明单位标兵,江苏省文明学校,全国普通高等学校毕业生就业工作先进集体和江苏省研究生招生管理工作优秀单位。校党委被评为“江苏省高校先进基层党组织”,校党校获得“江苏省红旗基层党校”称号。

面对新的机遇和挑战,学校在跨越发展、协调发展、和谐发展之路上奋勇前行,加快推进从教学型大学向教学研究型大学的转变,立足南通,服务江苏,面向全国,逐步走向世界,积极为科技进步、经济建设和社会发展提供强有力的人才支持、智力支撑和知识贡献,为建设“有特色、高水平的地方综合性大学”而努力奋斗!

随着知名度的不断提升,越来越多的人希望了解南通大学,因此非常需要一个导游系统来直观地介绍南通大学。因此我就针对南通大学主校区的主要景点,进行了本次课程设计,利用校园导游系统直观地介绍南通大学主校区。

编者

目录

一、课程设计目的 (1)

二、问题描述 (1)

三、设计要求

(1)基本要求 (1)

(2)较高要求 (1)

四、思想分析

(1)定义数据类型 (2)

(2)主要操作函数 (2)

五、详细设计 (2)

六、总结与体会 (5)

附1:源代码 (6)

附2:调试结果 (13)

附3:南通大学主校区平面图 (16)

一、课程设计目的

1.训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题的能力。

2.初步掌握程序开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4.训练用系统的观点和程序开发一般规范进行程序开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作与学习作风。

二、问题描述

校园占地几千亩,生活设施分布较散;校园内景色优美,景点甚多。在校园内移动,因时间、交通工具和用户兴趣等原因,需要选择线路。本设计的主要任务是为在南通大学新校区内生活、购物、参观的人们提供行走路线查询、选择、景点介绍的帮助。需实现的基本功能如下。

(1)景点信息的查询。

(2)邻接景点信息的查询。

(3)给出到某个景点的最佳路线。

(4)给出到所有景点的最佳路线。

(5)修改景点信息。

三、设计要求

(1)基本要求

①设计校园游览图,景点不少于6个。

②设计全景图的显示方式。

③设计图的存储结构。

④文件读入或键盘方式输入图的顶点信息和边信息,在内存中创建图。

⑤一旦创建完地图,以文件形式保存,以免重复创建。

⑥实现上述基本功能。

⑦设计足够多的测试用例。

(2)较高要求

①为管理员提供图的编辑功能:增、删景点;增、删道路;修改已有信息等。

②提供任意场所的问路查询功能,即任意两个景点之间的所有路径。

③根据该软件用途,增加其他功能。

④校园导游图的仿真界面。

四、思想分析

1.定义数据类型:

(1)包含景点序号(num)、景点名称(view)、简介(info)等;

(2)定义无向网,实际情况每两个不相同的景点间均有权值;2.主要操作函数:

(1) ArcCell();

权值,弧的相关信息;

(2) VertexType();

景点序号、景点名称、景点简介;

(3) MGraph();

顶点表,两个地点的距离,顶点数与边数;

(4)ShortestPath();

用Dijkstra算法求最短路径,查询两景点间最短路径;

(5)Menu();

主菜单;

(6)Main();

主函数;

(7)output();

输出函数;

五、详细设计

(1)权值,弧的相关信息

struct ArcCell{

int adj;

char *info;

};

(2)景点序号、景点名称、景点简介

struct VertexType{

int number;

char *view;

char *info;

};

(3)顶点表,两个地点的距离,顶点数与边数

struct MGraph{

VertexType vex[NUM];

ArcCell arcs[NUM][NUM];

int vexnum,arcnum;

};

(4)用Dijkstra算法求最短路径,查询两景点间最短路径

void ShortestPath(int num)

{

int v,w,i,t;

int final[NUM];

int min;

for(v=1;v

{

final[v]=0;

D[v]=G.arcs[num][v].adj;

for(w=1;w

P[v][w]=0;

if(D[v]<32767)

{

P[v][num]=1;

P[v][v]=1;

}

}

D[num]=0;

final[num]=1;

for(i=1;i

{

min=Max;

for(w=1;w

if(!final[w])

if(D[w]

{

v=w;

min=D[w];

}

final[v]=1;

for(w=1;w

if(!final[w]&&((min+G.arcs[v][w].adj)

{

D[w]=min+G.arcs[v][w].adj;

for(t=0;t

P[w][t]=P[v][t];

P[w][w]=1;

}

}

}

(5)主菜单

char Menu()

{

char c;

int flag;

do{

flag=1;

cout<<" **************************************** "<<'\n';

cout<<" 欢迎使用南通大学导航图系统"<<'\n';

cout<<" 1.景点信息的查询"<<'\n';

cout<<" 2.邻接景点信息查询"<<'\n';

cout<<" 3.给出到某个景点的最佳路线"<<'\n';

cout<<" 4.给出到所有景点的最佳路线"<<'\n';

cout<<" 5.修改景点信息"<<'\n';

cout<<" e.退出"<<'\n';

cout<<" **************************************** "<<'\n';

cout<<" 请输入您的选择: ";

cin>>c;

if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='e')

flag=0;

}while(flag);

return c;

}

(6)输出函数

void output(int view1,int view2)

{

int a,b,c,d,q=0;

a=view2;

if(a!=view1)

{

cout<"<

<<"最短距离为" <

d=view1;

for(c=0;c

{

gate:;

P[a][view1]=0;

for(b=0;b

{

if(G.arcs[d][b].adj<32767&&P[a][b])

{

cout<<"走"<

q=q+1;

P[a][b]=0;

d=b;

if(q%8==0) cout<<'\n';

goto gate;

}

}

}

cout<<'\n';

}

}

六、总结与体会

经过了几天的课程设计,我对数据结构程序设计有了全新的认识。尤其是当拿到一个不小的任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。

通过本次课程设计,我觉得熟练掌握所学的算法对于编程解决实际问题非常有效。我们应该在平时多用我们所学的数据结构知识编写程序,尝试解决实际的问题。

选定一个项目后,我们应该先对这个项目进行概要的分析、设计,分析出这个程序是干什么用的,应该实现什么功能,这些功能应该包含哪些函数,函数之间应该是怎样的调用关系,比如说我做的“南通大学导游”系统,它就是一个为人们提供南通大学相关信息的软件,它包括南通大学主校区主要景点的名称、简介,能够查询任意两个景点间的最短距离,为大家提供更便捷的服务,为人们规划多条路线供选择,可以让管理员自己对景点进行动态添加。进行这些是做项目时首先应该考虑的,如果概要设计做不好,那下面的其他设计也就很难做好。

概要设计做好后,我们就要开始做详细设计,详细设计就是将做好的概要设计进行完善,将每个函数要实现的功能用伪代码写出来,或者是用流程图画出来,因为伪代码更容易转换为C++源代码,因此我采用伪代码的方式进行详细设计,详细设计做好后,我们就能基本上知道每个程序应该如何实现它自身的功能,写源代码是也就不会那么盲目。

写源代码将详细设计转化为C++代码的过程,上面的详细设计做好后,我们只需在其基础上将一些简单的或者是用汉语代替的语句用C++语句写出来,再将一些语法错误改过来,并将概要设计和详细设计时未考虑到的东西在C++语句中完善,最终形成一个可执行的C++文件。刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。

写完程序后并不是意味着项目结束,还有一件很重要的步骤就是调试,也就是将自己写的软件从头到尾将每个功能试用一下,如果运行的结果与预期一样,那程序通过测试,如果结果与预期的不一样,那说明程序还有问题,还需要继续改。

这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,

老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。

数据结构这门课程更加注重设计灵活、巧妙的算法,提高程序运行效率,这对我逻辑思维能力的提高有相当大的帮助。虽然这次课程设计还算圆满完成,但我在以后的学习中也决不会放下数据结构,而是经常回顾和温习,并多从生活中寻找和发现问题,进而尝试用数据结构的知识设计算法,并进行简单的实现。相信这样的积累过程对我今后的学习生活大有帮助,让我受益终生。

最后,再次衷心感谢丁卫平老师在本次课程设计中对我的悉心指导!

附1(源代码):

#include

using namespace std;

#define Max 10000

#define NUM 12

struct ArcCell{

int adj; //权值

char *info; //该弧的相关信息

};

struct VertexType{

int number; //景点序号

char *view; //景点名称

char *info; //景点简介

};

struct MGraph{

VertexType vex[NUM]; //顶点表

ArcCell arcs[NUM][NUM]; //两个地点的距离

int vexnum,arcnum; // 顶点数与边数

};

MGraph G;

int P[NUM][NUM];

long int D[NUM];

int x[13]={0};

void CreateUDN(int v,int a);

void pingmu();

void ShortestPath(int num); //两个地点最短路径

void output(int view1,int view2);

char Menu();

void NextValue(int);

void main() // 主函数

{

int v0,v1,v2,v3,n,j;

char ck1,ck2;

char char1[10],char2[10];

CreateUDN(NUM,12);

do

{

ck1=Menu();

switch(ck1)

{

case '1':

int i;

cout<<" ####################################### "<<'\n';

cout<<" 南通大学景点概况"<<'\t'<<'\n';

cout<<" "<<"景点序号"<<'\t'<<" 景点名称"<<'\t'<<"景点简介"<

for(i=1;i

{

cout<<"

"<

}

cout<<" ####################################### "<<'\n';

cout<<" 请按回车键继续..."<<'\n';

getchar();

getchar();

break;

case '2':

cout<<"该景点序号为:"<<'\n';

cin>>v3;

n=v3;

cout<<"其邻接景点有:"<<'\n';

for(j=1;j<12;j++)

if(G.arcs[n][j].adj<=1200)

cout<

cout<<'\n';

cout<<" 请按回车键继续..."<<'\n';

getchar();

getchar();

break;

case '3':

cout<<" 请选择出发地序号(1~11):";

cin>>v0;

while(v0>11||v0<1){

cout<<" 输入的出发地序号错误v0 error"<<'\n';

cout<<" 请重新选择出发地序号(1~11):";

cin>>v0;

}

cout<<" 请选择目的地序号(1~11):";

cin>>v1;

while(v1>11||v1<1){

cout<<" 输入的目的地序号错误v1 error"<<'\n';

cout<<" 请重新选择目的地序号(1~11):";

cin>>v1;

}

ShortestPath(v0);

output(v0,v1);

cout<<" 请按回车键继续..."<<'\n';

getchar();

getchar();

break;

case '4':

cout<<" 请选择出发地序号(1~11):";

cin>>v0;

while(v0>11||v0<1){

cout<<" 输入的出发地序号错误v0 error"<<'\n';

cout<<" 请重新选择出发地序号(1~11):";

cin>>v0;

}

ShortestPath(v0);

for(i=1;i<12;i++)

output(v0,i);

cout<<" 请按回车键继续..."<<'\n';

getchar();

getchar();

break;

case '5':

cout<<"要修改的景点的景点序号"<

cin>>v2;

cout<<"要修改的信息是:1.景点名称 2.景点简介"<<'\n';

cin>>ck2;

switch(ck2)

{

case '1':

cout<<"输入新的景点名称:"<<'\n';

cin>>char1;

G.vex[v2].view=char1;

break;

case '2':

cout<<"输入新的景点简介:"<<'\n';

cin>>char2;

G.vex[v2].info=char2;

break;

};

cout<<" 请按回车键继续..."<<'\n';

getchar();

getchar();

break;

};

}while(ck1!='e');

}

char Menu() // 主菜单

{

char c;

int flag;

do{

flag=1;

cout<<" **************************************** "<<'\n';

cout<<" 欢迎使用南通大学导航图系统"<<'\n';

cout<<" 1.景点信息的查询"<<'\n';

cout<<" 2.邻接景点信息查询"<<'\n';

cout<<" 3.给出到某个景点的最佳路线"<<'\n';

cout<<" 4.给出到所有景点的最佳路线"<<'\n';

cout<<" 5.修改景点信息"<<'\n';

cout<<" e.退出"<<'\n';

cout<<" **************************************** "<<'\n';

cout<<" 请输入您的选择: ";

cin>>c;

if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='e')

flag=0;

}while(flag);

return c;

}

void CreateUDN(int v,int a) // 创建图的函数

{

int i,j;

G.vexnum=v;

G.arcnum=a;

for(i=1;i

G.vex[0].view="各个景点名称";

G.vex[0].info="各个景点简介";

G.vex[1].view="西门";

G.vex[1].info=" 可乘301,616,35,48路等公交车";

G.vex[2].view="北门";

G.vex[2].info="可乘301路,35路公交车";

G.vex[3].view="综合专业楼群";

G.vex[3].info="教学楼10#-12#楼,纺化楼";

G.vex[4].view="西操场";

G.vex[4].info="足球、篮球、排球场,运动场";

G.vex[5].view="东操场";

G.vex[5].info="足球场、篮球场、排球场、网球场";

G.vex[6].view="方肇周楼群";

G.vex[6].info="教学楼1#-5#楼";

G.vex[7].view="逸夫楼群";

G.vex[7].info="教学楼6#-9#楼";

G.vex[8].view="一食堂";

G.vex[8].info="学校一号食堂";

G.vex[9].view="二食堂";

G.vex[9].info="学校二号食堂,有二号超市";

G.vex[10].view="综合楼";

G.vex[10].info="学校综合楼,附近有一号超市";

G.vex[11].view="图书馆";

G.vex[11].info="图文信息大厦";

for(i=1;i

{

for(j=1;j

{

G.arcs[i][j].adj=Max;

G.arcs[i][j].info=NULL;

}

}

//两地点间最短距离

G.arcs[1][8].adj=G.arcs[8][1].adj=300;

G.arcs[1][6].adj=G.arcs[6][1].adj=350;

G.arcs[1][11].adj=G.arcs[11][1].adj=420;

G.arcs[2][6].adj=G.arcs[6][2].adj=450;

G.arcs[11][7].adj=G.arcs[13][11].adj=200;

G.arcs[8][6].adj=G.arcs[6][8].adj=100;

G.arcs[8][11].adj=G.arcs[11][8].adj=150;

G.arcs[6][10].adj=G.arcs[10][6].adj=200;

G.arcs[11][10].adj=G.arcs[10][11].adj=80;

G.arcs[7][9].adj=G.arcs[9][7].adj=250;

G.arcs[10][9].adj=G.arcs[9][10].adj=250;

G.arcs[9][5].adj=G.arcs[5][9].adj=1200;

G.arcs[11][9].adj=G.arcs[9][11].adj=150;

G.arcs[1][4].adj=G.arcs[4][1].adj=250;

G.arcs[4][2].adj=G.arcs[2][4].adj=500;

G.arcs[1][3].adj=G.arcs[3][1].adj=200;

G.arcs[3][6].adj=G.arcs[6][3].adj=50;

}

void ShortestPath(int num) // Dijkstra算法求最短路径{

int v,w,i,t;

int final[NUM];

int min;

for(v=1;v

{

final[v]=0;

D[v]=G.arcs[num][v].adj;

for(w=1;w

P[v][w]=0;

if(D[v]<32767)

{

P[v][num]=1;

P[v][v]=1;

}

}

D[num]=0;

final[num]=1;

for(i=1;i

{

min=Max;

for(w=1;w

if(!final[w])

if(D[w]

{

v=w;

min=D[w];

}

final[v]=1;

for(w=1;w

if(!final[w]&&((min+G.arcs[v][w].adj)

{

D[w]=min+G.arcs[v][w].adj;

for(t=0;t

P[w][t]=P[v][t];

P[w][w]=1;

}

}

}

void output(int view1,int view2) // 输出函数

{

int a,b,c,d,q=0;

a=view2;

if(a!=view1)

{

cout<"<

d=view1;

for(c=0;c

{

gate:;

P[a][view1]=0;

for(b=0;b

{

if(G.arcs[d][b].adj<32767&&P[a][b])

{

cout<<"走"<

q=q+1;

P[a][b]=0;

d=b;

if(q%8==0) cout<<'\n';

goto gate;

}

}

}

cout<<'\n';

}

}

附2(运行调试结果举例):

1.景点信息的查询

2.邻接景点信息查询

3.给出到某个景点的最佳路线

注:从西门走到北门,最短距离700,先走过综合专业楼群,再走过方肇周楼群,最后到达4.给出到所有景点的最佳路线

注:从一食堂到各地的最短距离,依次走过的路线

5.修改景点信息

注:将序号为1的景点名称从“西门”改成了“WestGate”

附3(南通大学主校区平面图):

基于数据结构的校园导游咨询系统课程设计报告

重庆科技学院 课程设计报告 院(系):_电气与信息工程学院专业班级:计科普0902 学生姓名:周杨学号: 2009441622 设计地点(单位)____计算机基础自主学习中心I306___ 设计题目:_________校园导游咨询____________________ 完成日期: 2011 年 1 月 14 日 指导教师评语: _______________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________ __________ _ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

重庆科技学院 课程设计任务书设计题目:校园导游咨询

教研室主任:指导教师:向毅、陈刘奎、熊茜 2010年 12 月 20日

摘要 现代快节奏的生活使得都市人越来越渴望亲近自然,因此外出旅游现在被越来越多的都市人所看中,所以如何快速方便的找到我们想要的旅游景点的信息和最短路径就成了一个很重要的问题。 本设计基于图的结构,创建一个无向图,针对游客的实际需求,将重庆科技学院的景点编号、名称、介绍等信息放入到图的顶点当中并保存在景点文本文件当中,将两个景点的编号和它们之间的距离当作权值也保存到权值文本文件当中,利用迪杰斯特拉算法来求从一个景点到另一个景点的最短距离,利用strcmp();函数来查找景点,并显示出它的信息,从而解决了要查找景点信息和景点之间的最短路径的问题,最后按照显示屏上的提示进行相关的操作。 关键词:无向图、查找信息、最短距离、校园导游咨询

校园导游咨询程序设计报告

数据结构课程设计 设计题目:校园导游咨询 学院:信息学院 班级:计算机1008班 姓名: 学号: 20101221180 日期: 2012 年 3 月

校园导航问题 [问题描述] 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 [基本要求] (1)设计所在学校的校园平面图,所含景点不少于十个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个顶点之间的一条最短的简单路径。 (4)校园导游图的景点和道路的修改扩充功能。 (5)扩充道路信息,如道路类别(车道、人行道),以致可按客人所需分别查询人行路径或车行路径。 (6)扩充每个景点的林洁景点的方向等信息,使得路径查询结果能提供详尽的导向信息。 (7)实现校园导游的仿真界面。

一、概要设计 (4) 二、详细设计 (6) 三、调试分析 (12) 四、调用关系 (12) 五、用户操作指南 (13)

[测试数据] 一、概要设计 1. 数据类型 #define V_MAX 20 #define E_MAX 200 typedef struct { char name[10];//名字 //char code[10];//代码 char info[20];//信息,简介 int x,y;//坐标 }VType;//顶点类型 typedef struct { int live;//标记是否存在,如果被删除则为0,存在为1 char name[10];// 路名 int length;//路的长度

导游实训总结(最新)

实训地点: 实训目的: 一、将书本上的理论知识运用到实际中去,更好的发现自己的不足。 二、提高作为导游所必需的语言表达能力,在游客面前讲解时,不会因为外界的因素而影响到自己的讲解,努力将自己的知识传授给游客。 三、培养在外带团时导游的独立工作能力、组织协调能力,随机应变能力和人际交往能力。导游人员在带团时,她是一个独立的个体,任何事情都可能发生,因此需要提高综合能力。 实训准备: 一、将同学们分成若干组,每组选出一名组长,由组长统一负责和布置组员的任务,每到一处景点时,要有同学出来讲解。 二、准备蓝天学院、八一起义纪念馆、滕王阁三地的资料,搜集多方面的导游词,将这些书面导游词变成自己的知识。 三、提前进行对景点的了解和询问,设计出最合理的线路,以最少的路程看最多有特色的景点。 实训内容: 一、蓝天学院的讲解,线路为:正大门——升旗台——景观大道(教学区)——临水广场、求真湖、蓝天阁——图书馆——学术报告厅——沙龙舞台——蓝海大剧场——体育馆——生活区——生态园——行政楼。 二、八一起义纪念馆的讲解,线路为先进陈列大楼,接着是江西大旅社,即八一起义总指挥部旧址。 三、滕王阁的讲解,即逐层讲解。 实训结果: 一、初步掌握导游讲解时所必须的语言技巧和处理突发事情的应变能力,游客在询问相关问题时能够很好的回答他们。

二、顺利完成三次户外导游培训,将平常老师上课时传授的理论知识同实际相结合。 三、其中还存在着不足,有些景点同学们不敢出来讲解,对景点资料的掌握不齐全,没有将书面上的知识变为自己的知识。 实训心得: 导游是学问,也是艺术。在我们的这次户外实训课上,我们学到了很多,首先,我认识到理论知识与实际能力是非常重要的,因为在导游过程中,会有许多技巧性的东西存在,比如如何与游客沟通就是最难学会的,但确是最重要的技巧;再次导游讲解是导游工作的一项重要内容,在旅游过程中,现场讲解效果如何,在一定程度上反映了一个导游的素质和水平,同时也在很打程度上反映了我们导游队伍的建设,也会影响游客对整个旅游的印象。 下面,我具体地对这次户外实训谈下心得体会,我们这次的导游实训景点分为三个: 第一个景点,在校园讲解的这一块上,同学们的表现都比较好,主要是对自己的学校比较了解,准备的也比较充分,但是我们都有着共同的缺点,就是在讲解时语速在不断的加快,语速在加快,但大脑思维一时还跟不上,就会出现口头禅,这将影响到讲解的效果,你对游客的吸引力也将会降低;其次,老师也在此次校园导游中,以蓝天阁,生态园为例,讲解了园林和古建筑方面的知识,这让我们更好地结合具体事物掌握知识。 第二个景点是八一起义纪念馆,在此次的讲解中,我饿母女首先是听定点导游讲解,结束之后再分组讲解,听完导游的讲解,发现了我们之间的差距,还存在着很多不足,八一起义纪念馆是一个红色旅游区,是一个有着很重要的历史景点,也是我们革命最光荣,最值得几年的地方,但由于我们对历史背景了解不是很多,以致于在导游词的准备反方面不是很充分,再讲解时不能流利的表达出来。在这个环节中没有预想的效果,这也说明了我们更应该认真地去学习,多掌握些历史知识,对我们今后的导游讲解时会有很大的作用。 第三个景点是滕王阁,滕王阁是因为王勃写的一篇文章而名扬天下,这首先就给我们下了一个要求,就要对《滕王阁序》这篇文章要有个初步的了解,,在这次的实训中,我们同样的是请这里的点点导游给我们先讲解,虽然同学们都大概知道这些知识,但还是很认真地听她的讲解,这次的实训,汇集了多方面的知识,有历史、人物、山水等等,这就要求我们要有丰富的知识面,对景物的了解也要更深层次,我们吸取了上次在八一起义纪念馆的教训,认真地准备好了导游词,对有些地方进行了现场模拟,可以说,这次的课,效果很不错。 通过这次的导游户外实训,我的确获益匪浅,作为一名导游,当你看到游客投来赞许的目光时,感到多么高兴和自豪,但是同样有着许多酸甜苦辣。

校园导游系统设计与实现

校园导游系统设计与实现

目录 1.设计要求 2.1需求分析 2.2概要设计 2.3各个模块名称和功能 2.4 系统导游主界面 2.4.1前台系统 2.4.2后台系统 2.4.3退出系统 3实验总结 参考文献 附件

1.设计要求 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 2.1需求分析 ⑴设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于30 个。以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 ⑵存放景点代号、名称、简介等信息供用户查询。 ⑶为来访客人提供图中任意景点相关信息的查询。 ⑷为来访客人提供图中任意景点之间的问路查询。 ⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。 景点距离图 2.2概要设计

校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。最后用switch 选择语句选择执行浏览景点信息或查询最短路径。 1、主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。 2、存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量vexnum、arcnum 表示,它们是整型数据。 3、系统功能设计 本系统除了要完成图的初始化功能外还设置了9个子功能。图的初始化由initgraph()函数实现。依据读入的图的顶点个数和边的条数,分别初始化图结构中图的顶点数组和图的邻接矩阵。9个子功能的设计描述如下。 ⑴景点信息查询 景点信息查询由函数seeabout()实现。该功能根据用户输入的景点编号输出该景点的相关信息。如景点编号、名称等。 ⑵学校景点介绍 学校景点介绍由函数browsecampus()实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点介绍。 ⑶相邻的景点及其距离 为使游客能够知道其周围的景点和路径,方便他们迅速知道其所在位置和周围信息 ⑷查看浏览线路 查看浏览线路由函数shortestpath_dij()实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其他景点的最短路径线路及距离。当用户选择该功能,系统能根据用户输入的起始景点及目的景点编号,查询任意两个景点之间的最短路径线路及距离。 ⑸更改图信息 修改一个已有景点的相关信息、删除一个景点及其相关信息、删除一条路径、加一条路径、修改路径长度、添加一个景点 ⑹数据安全防范 设置密码,能保证数据不会被随便更改,由pass()判定密码是否正确,可由changepw()函数修改密码,初始密码为gdufsx ⑺写入文件并保存修改 打开该软件,若没有graph.txt,则会由系统初始化生成一个graph.txt,若已存在该文档会由该文档中的内容初始化系统。 ⑻恢复初始状态 若数据已经显得很杂乱并很难修理,就可以启用这个功能

数据结构课程设计-旅游景点咨询系统的设计与实现

一、需求分析 1、问题描述 创建一个至少有15个点的无向网表示的某个旅游景点的导游图。顶点代表景点,类型为字符串(例如,泰山导游图:“天地广场门”,“十八盘”,“冯玉祥墓”,“桃花峪门”,“中天门”,“南天门”,“玉皇顶”等),弧表示两个景点之间可以直达,弧上的权值表示两个景点之间的路程(公里数),弧上还有到达方法的信息(有步行和索道两种)。建立一个游客咨询系统。 2、基本要求 a.创建图的存储结构。 b.输入两个景点名,就可以得到从一个景点到达另一个景点的所有简单路径、相应路径的路程公里数、行走的方法(每一段是步行,还是坐索道)。 c.输入两个景点名,就可以得到其最短路径,即:路程最短的行进方法;如果两者无路径可通,就得出“两景点不可达的信息”。 二、概要设计 1.数据结构 本程序需要用到两个结构体,分别为ArcCell和MGraph。 2.程序模块 本程序包含两个模块,一个是实现功能的函数的模块,另一个是主函数模块。

系统子程序及功能设计 本系统共有七个子程序,分别是: int LocateVex(MGraph G,VertexType u)//得到顶点u的序号 void CreateDN(MGraph *G)//建立景点间的无向网 VertexType* GetVex(MGraph G,int v)//根据顶点序号返回顶点值 int FirstAdjVex(MGraph G,VertexType v)//返回v的第一个邻接顶点的序号 int NextAdjVex(MGraph G,VertexType v,VertexType w)//返回v的(相对于w的)下一个邻接顶点的序号 void Simpleway(MGraph& m,char *str,char *buf)//求任意两个景点之间的所有简单路径 int Minway(MGraph& m,char *str,char *buf)//求两顶点间的最短路径 3.各模块之间的调用关系以及算法设计 函数CreateDN调用函数LocateVex 函数Simpleway调用函数LocateVex 函数Minway调用函数LocateVex,GetVex,FirstAdjVex,NextAdjVex 主函数调用函数CreateDN,Simpleway,Minway。 三、详细设计 1.数据类型定义 typedef struct { VRType adj; int info;

数据结构校园导游咨询系统课程设计报告及课程总结.

姓名: 班级: 学号: 指导教师: 2012年12月

目录 1、需求分析 (1) 1.1 系统简介 (1) 1.2 系统功能模块介绍 (1) 2、概要设计 (2) 2.1 系统功能结构图 (2) 2.2 系统流程图 (2) 2.3 主要函数概要设计 (3) 2.3.1 主函数概要设计 (3) 2.3.2 初始化图函数InitGraph() (4) 2.3.4 查询景点信息函数设计SearchGraph() (4) 2.3.5 显示图中信息函数设计ShowGraph() (4) 2.3.6 弗洛伊德算法函数设计Floyd() (5) 3、详细设计 (5) 3.1 主函数详细设计 (5) 3.2初始化图函数详细设计InitGraph() (6) 3.3查询景点信息函数详细设计SearchGraph() (7) 3.4 弗洛伊德算法函数详细设计Floyd() (8) 4、调试分析 (9) 4.1 显示主界面函数测试 (9) 4.2 查找两景点间最短路径测试 (10) 4.3 查看景点信息测试 (11) 5.课程设计总结 (12) 6、附录 (13)

1、需求分析 1.1 系统简介 随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于《数据结构》中图的相关算法开发了“江西农业大学校园咨询系统”。 开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。 本系统界面友好,提示信息充分,在实际使用过程中运行良好。 1.2 系统功能模块介绍 本系统主要分为以下三大功能模块: 1、查询两景点最短路径:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的景点编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方; 2、查询景点信息:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入想要查询的景点的编

校园导游程序

洛阳理工学院 课程设计报告 课程名称数据结构课程设计 题目校园导游程序

课程设计任务书 1、设计题目:校园导游程序 2、设计内容与要求: [问题描述] 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。[基本要求] (1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径。 (3)查询图中任意两个景点间的所有路径。 (4)增加、删除、更新有关景点和道路的信息。 课程设计评语 成绩: 指导教师:_______________ 年月日

3、流程图 4、模块划分 (1)主函数:void main( ) (2)void CreateUDN(int v,int a); /* 造图函数*/ (3)void narrate(); /*说明函数*/ (4)void ShortestPath(int num); /*最短路径函数*/ (5)void output(int sight1,int sight2); /*输出函数*/ (6)char Menu(); /* 主菜单*/ (7)void search(); /* 查询景点信息*/ (8)char SearchMenu(); /* 查询子菜单*/ (9)void HaMiTonian(int); /*图的遍历*/ (10)void Searchpath1(MGraph g);/*查询两个景点间的所有路径*/ (11)void disppath(MGraph g,int i,int j); (12)void path(MGraph g,int i,int j,int k);/*确定路径上第k+1个顶点的序号*/(13)void NextValue(int); (14)void display(); /* 显示遍历结果*/ (15)int Addnewsight(int n); /*添加新的景点和路径*/

校园导游咨询系统

1.需求分析 1.1创建结点(旅游景点) 创建该旅游景点是在顺序表中完成的,在顺序表中,首先要创建结点结构体,将该结构体命名为SeqList,成员变量有数组list和size,分别用来表示最大元素个数(即旅游景点的最大个数)和顺序表中当前存储的数据元素个数,顺序表可以完成的功能有求当前数据元素个数,插入数据元素,删除数据元素,取数据元素。 1.2创建图 在构造图的操作中包括结点的插入(实参包括AdjMGraph *G,DataTyp v[],n,RowColWeight E[],e)分别表示在该*G的结构体中的SeqlistV ertices[]中插入结点,在*G的结构体中的edge[MaxV ertices][MaxV ertices]的边数组中插入边信息结点分别为行下标、列下标、权值,该*G的结构体中numOfEdges,e表示边的条数,即将e的值给它。结点的顺序表初始化,在该函数中也应包括一个结构体边信息结构体:成员包括行下标、列下标、权值。并将该结构体命名为RowColWeight。 1.3图的实现 在该函数中要使用SeqList头文件,在该文件中要真正进行插入边和结点。首先在该函数中应该定义一个结构体AdjMGraph,在该结构体的成员变量包括存放结点的顺序表定义为SeqlistV ertices[]、存放边的邻接矩阵用edge[MaxV ertices][MaxV ertices]表示,边的条数numOfEdges。初始化AdjMGraph 中的成员变量线性表和边数及存放边的邻接矩阵。然后在顺序表中插入结点,在邻接矩阵中插入边,删除边,删除结点。取序号为V的结点的第一个邻接结点,取序号为V1的邻接结点V2结点的下一个邻接结点 1.4求最短路径 在该函数中,应该有四个参数,两个位输入参数,分别为带权图G和源点(景点起点)序号v0,两个为输出参数,分别为distance[]和path[],distance[]用来存放达到的从源点v0到其余各结点的最短距离,path[]用来存放最短路径的下标。 1、从江西农业大学的平面地图中选取出6个有代表性的景点。 2、为来访的客人提供图中任意景点的路径查询,即查询任意两个景点之间的最短简单路径。当用户输入正确时,为用户输出任意两景点的最短路径;当用户输入不合法时,提示用户输入有误并返回让用户重新输入。 3、为来访客人推荐参观最短路线。 2.概要设计 1.首先用邻接矩阵存储校园图。 2.用数据结构知识创建校园图。 3.手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。4.利用C语言知识编写查找景点相关信息的程序。 5.利用迪杰斯特拉算法计算任意两点之间的最短路径。 6.最后用一个主函数main输出各项结果。

校园导游系统程序__课程设计_报告

1、需求分析 设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计工商学院校园无向图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2).为来访客人提供图中任意景点相关信息的查询。 (3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2、设计思路 校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。 3 算法设计 3.1 概要设计 3.1.1 程序中包含的模块 (1)主程序模块 主函数:void main(void) void cmd(void) cmd修改显示框大小,字体背景颜色,初始化景点,景点信息 打印菜单, MGraph InitGraph(void); //初始化图。 MGraph * CreatUDN(MGraph *G);//初始化图形接受用户输入 void Menu(void);//菜单函数 void Browser(MGraph *G);//浏览函数 void ShortestPath_DIJ(MGraph *G); void Floyd(MGraph *G);//查询图中任意两个景点间的所有路径 void Search(MGraph *G);//查找函数 int LocateVex(MGraph *G,char*v); // 迪杰斯特拉算法计算起点各顶点间短

导游业务实训报告

导游业务实训报告 实训目的 通过到具体的实地环境去培训,将所学的导游业务知识运用到实际中去,以达到理论与实践相结合,学以制用的目的。实训内容 1、全班同学分为6组进行。 2、在校园导游培训中,每组的介绍对象均为校园,要求从主题到选景,从拍摄到PPT的后期制作,从导游词的编写到导游的讲解,最终呈现出来的是一个非常完整的成品。 3、在南滨路广阳岛的导游培训中,各组的介绍对象均不相同,有全陪,有地陪,有南滨路的定点讲解,有广阳岛的景点介绍,这就避免了在上一次校园导游的培训中,景点撞车的弊端,可以更好的发挥同学们的组织、协调、分工协作和导游讲解的能力。 实训地点 重庆工商大学江北校区;南滨路和广阳岛。 实训纪录 任务1:校园导游 这一次的实训,对于我们而言,可以说是成功的,为什么这么说呢?原因有三。 首先,我们把这一次校园导游实训定位为新生接待游,这

就把整个实训的主题明确了,那么我们在接下来的准备工作的安排上也有了一个统领全局的战略方向,为我们后来的工作疏理清楚了细节。其次是我们在PPT的后期制作中融入了大量的大家耳熟能详的古文篇章,不仅为我们的成品添姿加彩,形成了一种不同于其他组的一条很有特色的新路子,而且它也恰如其分地呼应了我们这次实训——“校园新生接待游”的主题,使新生们在导游讲解中能有一种很熟悉,很亲近的感觉,消除了他们对新环境的一种本能的抵触情绪。第三呢?我认为是我们采取了“一个校园,一个导游”的这种方式,保持了整个导游讲解的完整性。其实之前我们也有每位同学都导游的想法,但是鉴于每位同学的性格特点的不同,说话风格的不同,对各个景点的侧重点入手角度的不同,对各个景点讲解驾驭能力的不同,可能会影响整个导游讲解工作的完整性,给人一种参差不及的感觉。本来导游就是一种非常完整,非常严谨的服务。所以经过一番思量,最终我们还是决定采用“一个校园,一个导游”的这种方式。虽然苦点、累点,但是可以把的呈现给大家,我们认了! 在这一次实训中虽然闪光点很多,但也不乏瑕疵的存在。在整个导游过程中,由于我的严重紧张,致使导游词讲解连贯性较差,给大家听讲解造成了一些不便。还有就是我在讲解的过程中,没有注意到态势语言,有时会手舞足蹈,没有导游的样子,而且拿那个话筒的时候,也有把嘴形遮到。有

校园导游咨询系统

石家庄经济学院 本科生课程设计报告书 题目校园导游咨询系统 姓名 学号 学院信息工程学院 专业计算机 指导教师 完成日期:2012年7 月5 日

校园导游咨询系统 1 需求分析 需要设计一个校园导游咨询系统,为来访的客人提供各种信息查询服务。 a)基本要求: 设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放有景点名称、代号、简介等信息;以边表示路径, 存放路径长度等相关信息。 为来访客人提供图中任意景点相关信息的查询。 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 b)问题分析: 系统要处理的数据有字符型、字符串型、浮点型,如景点的代号使用字符类型、景点名称及简介等信息用字符串型、路径的长度用浮点型 等。它们之间存在并列、包含等关系,采用线性单链表、图的邻接矩阵 等数据结构来存储数据。 c)系统完成的功能: 来访客人浏览校园全景 查询相关景点的信息 可查询所有浏览路线 来访客人可以查询从某一景点到另一景点的最短路径; d)程序设计分析: 构造一个无向带权网G并用邻接矩阵来存储; 利用弗洛伊德算法来计算出起点到各个顶点之间的最短路径并进行存储,弗洛伊德算法将找出每一对顶点之间的最短路径; e)系统的输入与输出: 键盘输入,磁盘输入、输出等。 f)系统的操作用例: 学校北门(0)学生公寓(1)博物馆(2)惠馨园(3)操场(4)图书馆(5)校医院(6)主楼(7)教学楼(8)实验 楼(9) 校园平面图顶点代码以及各顶点之间的权值所构成的邻接矩阵:

校园北门 学生公寓 校医院博物馆 惠馨园操场 图书馆 教学楼 实验楼 主楼 树 校园平面图 0 1 2 3 4 5 6 7 8 9 0 0 100 200 400 1 0 300 2 0 100 3 0 100 200 4 0 300 250 5 0 350 6 0 50 200 7 0 50 8 0 20 9

综合实验十二 校园导游咨询

综合实验十二校园导游咨询 一、实验目的 (1)熟练掌握图的创建及遍历基本操作算法。 (2)熟练掌握最短路径算法。 (3)利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。 二、实验内容 【问题描述】 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 【基本要求】 (1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径。 【测试数据】 由读者根据实际情况指定。 【实现提示】 一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。 【选作内容】 (1)求校园图的关节点。 (2)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。 (3)提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。 (4)校园导游图的景点和道路的修改扩充功能。 (5)扩充道路信息,如道路类别(车道、人行道等)、沿途景色等级,以至可按客人所需分别查询人行路径或车行路径或观景路径等。 (6)扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。 (7) 实现校园导游图的仿真界面。 程序代码及结果: #include #include using namespace std; const int MaxSize=18; const int INFINITY=65535;//最大值无穷 class direction; template class MGraph;

校园导游系统程序

课题五:校园导游程序 1)问题描述 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 2)基本要求 (1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径。 (3)能够将图的信息保存到文件中,并指定文件打开。 (4)增加、删除、更新有关景点和道路的信息。 附加难度:有余力的同学可以考虑用图形界面实现寻址的过程 3) 设计思想 核心数据结构定义一个图,将图保存后,对图进行面向指定节点到各个节点的最短路径的操作。可以再文件中保存多个导游图,例如保存学校图、芜湖市图等文件。开始时选择文件,将指定文件中的信息导入到内存的图中。 #define Infinity 1000 #define MaxVertexNum 35 #define MAX 40 #include #include #include #include #include #include typedef struct arcell //边的权值信息 { int adj; //权值 }arcell,adjmatrix[MaxVertexNum][MaxVertexNum]; //图的邻接矩阵类型 typedef struct vexsinfo //顶点信息 { int position; //景点的编号 char name[32]; //景点的名称 char introduction[256]; //景点的介绍 }vexsinfo; typedef struct mgraph //图结构信息

校园导游程序设计知识讲解

《数据结构课程设计》报告 课题名称:校园导游程序 专业: 班级: 学号: 姓名: 2012 年12 月31 日

目录 目录 (1) 1 前言 (2) 2需求分析 (3) 3概要设计 (3) 4详细设计 (3) 5源代码及调试 (3) 6特殊问题解决方法 (8) 7使用说明及测试结果 (9) 8结论 (11) 9总结与体会 (11) 10参考文献 (11)

1 前言 1.1 课题简介 课程设计题目名称: 校园导游程序 课程设计目的: 通过《数据结构》课程的学习,将数据结构应用在具体的编程方面,更加了解课程所学习的内容及思维逻辑。 课程设计意义: 利用数据结构课程设计,了解学生对《数据结构》的理解和加强学生对数据结构方面的应用知识。希望今后学生好好利用数据结构的知识和思想,解决各方面的编程难题。课程设计内容: 实现存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。为来访客人提供图中任意景点相关信息的查询。为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。 课程设计预期实现效果: (1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。 1.2 方案及其论证 语言:C++ 运行环境:Microsoft Visual C++ 6.0 可行性分析:模拟一个小型的计算器界面,能够输入数学表达式并计算出表达式的结果。

校园导游系统实验报告

竭诚为您提供优质文档/双击可除校园导游系统实验报告 篇一:校园导游图系统数据结构实验报告 一.设计目的 通过布置具有一定难度的实际程序设计项目,使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;使学生掌握分析问题,求解问题的方法并提高学生设计编程实现的能力。 二.设计内容 用无向网表示学校的校园景点平面图,图中顶点表示主要景点, 存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。游客通过终端可询问:(1)从某一景点到另一景点的最短路径。(2)游客从公园进入,选取一条最佳路线。 (3)使游客可以不重复地浏览各景点,最后回到出口

(出口就在入口旁边)。[基本要求] (1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路, 边上的权值表示距离.为此图选择适当的数据结构。 (2)把各种路径都显示给游客,由游客自己选择浏览路线。(3)画出景点分布图于屏幕上。[实现提示] (1)构造一个无向图g并用邻接矩阵来存储。 (2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录, 最短路径长度就用一维数组d[i]存放;i的范围:0~20。 (3)一维数组have[]是用来记录最短路径出现顶点的顺序。(4)根据起点和终点输出最短路径和路径长度。 三.概要设计 1.功能模块图; 2.各个模块详细的功能描述。 1.浏览校园全景:采用深度遍历遍历图进行所有景点浏览,将遍历景点信息输出 2.查看所有游览路线:用户输入一个景点,采用迪杰斯特拉算法将从该景点起所有路径查出并输出在屏幕上 3.选择出发点和目的地:用户输入一个出发点和一个目的地编号,采用弗洛伊德算法求出发点到目的地的最短路径

校园导游咨询程序

实验三:校园导游咨询 一、设计方案简介 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 1)设计你所在学校的校园平面图, 2)为来访客人提供图中任意景点相关信息的查询。 3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 二、设计题目实现: 实际需求 1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。 2)为来访客人提供图中任意景点相关信息的查询。 3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2)概要设计 1、校园全景一览图、显示出校园的平面图。 2、提供校园中任意景点问路查询,即求任意两个景点之间的所有路径。 3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。 1.功能模块图; void Map();//校园地图 void CreateGraph();//创建图 void OutputPlace();//输出景点列表

void SearchPlace();//查询景点信息 void SearchPath();//查询最短路径 void Shortpath(int i);//计算最短路径 void Output(int sight1,int sight2);//输出函数 2.各个模块详细的功能描述。 Map();//显示校园整体的地图、包含学校各景点的详细位置 CreateGraph();//创建图、主要用来保存各景点信息 OutputPlace();//输出景点列表、供选择景点信息查询时使用 SearchPlace();//查询景点信息、景点的名称及介绍 SearchPath();//查询最短路径、两景点间最短距离 Shortpath(int i);//计算两景点间最短路径 Output(int sight1,int sight2);//输出两景点最短路径及信息 四.详细设计 1.功能函数的调用关系图 2.各功能函数的数据流程图 全局变量 Graph G; int path[NUM][NUM]; int D[NUM]; Main() CreateGraph() Map() SearchPlace() SearchPath() Outputplace() Shortpath(i); Output(i,j);

校园导游服务咨询系统C++(含源代码)说明书---2015

计算机科学与技术教研室 课程设计说明书(2014-2015学年第1学期) 注:成绩均用百分制。总成绩=平时成绩*20%+报告成绩*40%+演示与答辩成绩*40%

设计题目:校园附近门店服务查询系统 1、课程设计目的 (1)数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C++语言),自行实现一个较为完整的应用系统。 (2)通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 (3)学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 1)熟练掌握链表存储结构及其建立过程和常用操作; 2)学会自己调试程序的方法并掌握一定的技巧; 3)通过温习旧的知识,学习新知识,并提高分析和解决问题的能力。 2、课程设计正文 2.1概要设计 2.1.1 系统分析 该系统主要功能包括:增添服务信息、查询服务信息、修改服务信息、删除服务信息以及推荐路径等。 1.主程序模块:连接各种功能子模块,使用循环等待用户操作,完成程序的基本操作实现功能。 2.菜单显示模块:生成每个菜单的显示界面,使程序更简单清晰。 3.查询服务信息:用户在选择此功能模块后,按照屏幕上方提示的服务信息名称及其对应的编号,要求用户输入想要查询的服务信息的编号,回车后系统将在已存储的服务信息中进行匹配,若该景点信息尚未存储则将提示错误;若找到对应信息则系统将输出服务信息,显示于幕上方。 4.查询两服务信息最短路径:运用弗洛伊德算法,用户在选择此功能模块后,按照屏幕上方提示的服务信息名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的服务信息编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方。 5.删除服务信息:用户操作功能模块,由主程序直接调用的函数模块,将功能具象化,系统工具函数模块,先查找到所存在的服务信息,然后对用户希望删除的服务信息进行删除操作,若所要删除的服务信息不存在,则输出不存在此服务信息。

校园导游咨询系统源代码

#include//standard library标准库头文件 #include//标注输入输出函数头文件 #include//字符函数头文件 #define MAX 10000 //定义路程最远距离符号常量无穷大 #define MAX_VERTEX_NUM 10//定义的景点/顶点数量符号常量最大顶点数10个 typedef struct //定义一个结构体用于表示路径 { int adj; //路径长度权值 }Ar,Ad[10][10];//起点和终点变量名 typedef struct //定义一个结构体用于存放景点信息 { char name[30];//景点名 int num;//景点编号 char introduction[100];//景点介绍 }infotype;//景点信息变量名 typedef struct//用来定义一个图 { infotype vexs[10]; Ad arcs; int vexnum,arcnum; }MGraph; MGraph b; MGraph InitGraph()//初始化图形 { MGraph G; int i; int j;

G.vexnum=10; G.arcnum=10; for(i=0;i

相关主题
文本预览
相关文档 最新文档