校园导游Word文档下载推荐.docx

上传人:b****3 文档编号:6458377 上传时间:2023-05-06 格式:DOCX 页数:26 大小:364.37KB
下载 相关 举报
校园导游Word文档下载推荐.docx_第1页
第1页 / 共26页
校园导游Word文档下载推荐.docx_第2页
第2页 / 共26页
校园导游Word文档下载推荐.docx_第3页
第3页 / 共26页
校园导游Word文档下载推荐.docx_第4页
第4页 / 共26页
校园导游Word文档下载推荐.docx_第5页
第5页 / 共26页
校园导游Word文档下载推荐.docx_第6页
第6页 / 共26页
校园导游Word文档下载推荐.docx_第7页
第7页 / 共26页
校园导游Word文档下载推荐.docx_第8页
第8页 / 共26页
校园导游Word文档下载推荐.docx_第9页
第9页 / 共26页
校园导游Word文档下载推荐.docx_第10页
第10页 / 共26页
校园导游Word文档下载推荐.docx_第11页
第11页 / 共26页
校园导游Word文档下载推荐.docx_第12页
第12页 / 共26页
校园导游Word文档下载推荐.docx_第13页
第13页 / 共26页
校园导游Word文档下载推荐.docx_第14页
第14页 / 共26页
校园导游Word文档下载推荐.docx_第15页
第15页 / 共26页
校园导游Word文档下载推荐.docx_第16页
第16页 / 共26页
校园导游Word文档下载推荐.docx_第17页
第17页 / 共26页
校园导游Word文档下载推荐.docx_第18页
第18页 / 共26页
校园导游Word文档下载推荐.docx_第19页
第19页 / 共26页
校园导游Word文档下载推荐.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

校园导游Word文档下载推荐.docx

《校园导游Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《校园导游Word文档下载推荐.docx(26页珍藏版)》请在冰点文库上搜索。

校园导游Word文档下载推荐.docx

附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)权值,弧的相关信息

structArcCell{

intadj;

char*info;

};

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

structVertexType{

intnumber;

char*view;

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

structMGraph{

VertexTypevex[NUM];

ArcCellarcs[NUM][NUM];

intvexnum,arcnum;

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

voidShortestPath(intnum)

{

intv,w,i,t;

intfinal[NUM];

intmin;

for(v=1;

v<

NUM;

v++)

{

final[v]=0;

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

for(w=1;

w<

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<

++i)

min=Max;

++w)

if(!

final[w])

if(D[w]<

min)

{

v=w;

min=D[w];

}

final[v]=1;

for(w=1;

if(!

final[w]&

&

((min+G.arcs[v][w].adj)<

D[w]))

{

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

for(t=0;

t<

t++)

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

P[w][w]=1;

}

}

(5)主菜单

charMenu()

charc;

intflag;

do{

flag=1;

cout<

<

"

****************************************"

'

\n'

;

欢迎使用南通大学导航图系统"

1.景点信息的查询"

2.邻接景点信息查询"

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

4.给出到所有景点的最佳路线"

5.修改景点信息"

e.退出"

请输入您的选择:

"

cin>

>

c;

if(c=='

1'

||c=='

2'

3'

4'

5'

e'

flag=0;

}while(flag);

returnc;

(6)输出函数

voidoutput(intview1,intview2)

inta,b,c,d,q=0;

a=view2;

if(a!

=view1)

G.vex[view1].view<

-->

G.vex[view2].view<

<

最短距离为"

<

D[a]<

\t'

G.vex[view1].view;

d=view1;

for(c=0;

c<

++c)

gate:

P[a][view1]=0;

for(b=0;

b<

b++)

{

if(G.arcs[d][b].adj<

32767&

P[a][b])

cout<

走"

G.vex[b].view;

q=q+1;

P[a][b]=0;

d=b;

if(q%8==0)cout<

gotogate;

}

六、总结与体会

经过了几天的课程设计,我对数据结构程序设计有了全新的认识。

尤其是当拿到一个不小的任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。

通过本次课程设计,我觉得熟练掌握所学的算法对于编程解决实际问题非常有效。

我们应该在平时多用我们所学的数据结构知识编写程序,尝试解决实际的问题。

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

进行这些是做项目时首先应该考虑的,如果概要设计做不好,那下面的其他设计也就很难做好。

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

写源代码将详细设计转化为C++代码的过程,上面的详细设计做好后,我们只需在其基础上将一些简单的或者是用汉语代替的语句用C++语句写出来,再将一些语法错误改过来,并将概要设计和详细设计时未考虑到的东西在C++语句中完善,最终形成一个可执行的C++文件。

刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。

通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。

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

这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。

越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。

数据结构这门课程更加注重设计灵活、巧妙的算法,提高程序运行效率,这对我逻辑思维能力的提高有相当大的帮助。

虽然这次课程设计还算圆满完成,但我在以后的学习中也决不会放下数据结构,而是经常回顾和温习,并多从生活中寻找和发现问题,进而尝试用数据结构的知识设计算法,并进行简单的实现。

相信这样的积累过程对我今后的学习生活大有帮助,让我受益终生。

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

附1(源代码):

#include<

iostream>

usingnamespacestd;

#defineMax10000

#defineNUM12

structArcCell{

//权值

//该弧的相关信息

//景点序号

//景点名称

//景点简介

//顶点表

//两个地点的距离

//顶点数与边数

MGraphG;

intP[NUM][NUM];

longintD[NUM];

intx[13]={0};

voidCreateUDN(intv,inta);

voidpingmu();

voidShortestPath(intnum);

//两个地点最短路径

voidoutput(intview1,intview2);

charMenu();

voidNextValue(int);

voidmain()//主函数

{

intv0,v1,v2,v3,n,j;

charck1,ck2;

charchar1[10],char2[10];

CreateUDN(NUM,12);

do

ck1=Menu();

switch(ck1)

{

case'

:

inti;

cout<

#######################################"

南通大学景点概况"

景点序号"

景点名称"

景点简介"

endl;

for(i=1;

i++)

G.vex[i].view<

G.vex[i].info<

请按回车键继续..."

getchar();

getchar();

break;

case'

cout<

该景点序号为:

cin>

v3;

n=v3;

其邻接景点有:

for(j=1;

j<

12;

j++)

if(G.arcs[n][j].adj<

=1200)

G.vex[j].number<

G.vex[j].view<

G.vex[j].info<

请选择出发地序号(1~11):

v0;

while(v0>

11||v0<

1){

输入的出发地序号错误v0error"

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

请选择目的地序号(1~11):

v1;

while(v1>

11||v1<

1){

输入的目的地序号错误v1error"

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

ShortestPath(v0);

output(v0,v1);

case'

output(v0,i);

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

cin>

v2;

要修改的信息是:

1.景点名称2.景点简介"

ck2;

switch(ck2)

{

case'

cout<

输入新的景点名称:

cin>

char1;

G.vex[v2].view=char1;

break;

case'

输入新的景点简介:

cin>

char2;

G.vex[v2].info=char2;

break;

};

};

}while(ck1!

='

);

charMenu()//主菜单

voidCreateUDN(intv,inta)//创建图的函数

inti,j;

G.vexnum=v;

G.arcnum=a;

G.vexnum;

++i)G.vex[i].number=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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2