校园导游程序设计.docx

上传人:b****7 文档编号:8785842 上传时间:2023-02-01 格式:DOCX 页数:14 大小:184.40KB
下载 相关 举报
校园导游程序设计.docx_第1页
第1页 / 共14页
校园导游程序设计.docx_第2页
第2页 / 共14页
校园导游程序设计.docx_第3页
第3页 / 共14页
校园导游程序设计.docx_第4页
第4页 / 共14页
校园导游程序设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

校园导游程序设计.docx

《校园导游程序设计.docx》由会员分享,可在线阅读,更多相关《校园导游程序设计.docx(14页珍藏版)》请在冰豆网上搜索。

校园导游程序设计.docx

校园导游程序设计

 

《数据结构课程设计》报告

课题名称:

校园导游程序

业:

级:

号:

名:

2012

12

31

录∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1

1前言∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙22需求分析∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙33概要设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙34详细设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙35源代码及调试∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙36特殊问题解决方法∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙87使用说明及测试结果∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙98结论∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙119总结与体会∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1110参考文献∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙11

1

1前言

1.1课题简介

课程设计题目名称:

校园导游程序

课程设计目的:

通过《数据结构》课程的学习,将数据结构应用在具体的编程方面,更加了解课程所学习的内容及思维逻辑。

课程设计意义:

利用数据结构课程设计,了解学生对《数据结构》的理解和加强学生对数据结构方面的应用知识。

希望今后学生好好利用数据结构的知识和思想,解决各方面的编程难题。

课程设计内容:

实现存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

为来访客人提供图中任意景点相关信息的查询。

为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。

课程设计预期实现效果:

(1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

(2)为来访客人提供图中任意景点相关信息的查询。

(3)为来访客人提供景点的问路查询,即已知一个景点,查询到某景点之间的一条最短路径及长度。

1.2方案及其论证

语言:

C++

运行环境:

MicrosoftVisualC++6.0

可行性分析:

模拟一个小型的计算器界面,能够输入数学表达式并计算出表达式的结果。

2

2需求分析

实现存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

为来访客人提供图中任意景点相关信息的查询。

为来访客人提供景点的问路查询,即

已知一个景点,查询到某景点之间的一条最短路径及长度3概要设计(特殊功能)

3对于本次编程的概要设计,有如下内容:

功能设计1:

景点查询

功能设计2:

 查询最短路径。

功能设计3:

 退出系统查询

4详细设计

流程图:

输入所需功能代号——>判断所输入代号所——>执行相应的程序——>输出结果——>退出程序

5源代码及调试

源代码:

#include

#include

#include

#defineMax20

#defineInit_Length10000

voidshortestdistance();

voidprint(){printf("

欢迎您来到河北科技师范\n");

printf("******\n");

printf("

祝您旅途愉快\n");

printf("以下是您可能要前往的地方\n");

3

printf("1

printf("2

老楼\n");

音乐广场\n");

printf("3

printf("4

图书馆\n");

小湖\n");

printf("5篮球场\n");

printf("6后院食堂\n");

printf("7

第三食堂\n");

printf("8

第二食堂\n");

printf("9欧美东院\n");

printf("10北2\n");

printf("11北1\n");

printf("12逸夫楼\n");

printf("13操场

博学园区\n");

printf("功能1.景点查询请输入i\n");

printf("功能2.查询最短路径请输入s\n");

printf("功能3.退出系统请输入e\n");

printf("请输入您的选择:

");}

voidintroduce()

{inta;

printf("请输入景点编号:

");

scanf("%d",&a);

getchar();

printf("\n");while(a<1||a>13)

{printf("ERROR!

请输入数字1到13:

\n\n");scanf("%d",&a);}

switch(a){case1:

printf("1:

老楼

一纵四横嘉庚风范,庄严而又活泼美丽

\n\n");

break;

case2:

printf("2:

音乐广场break;

美丽校园的核心\n\n");

4

case3:

printf("3:

图书馆图书馆break;

文化交流的中心和同学们自习的地方\n\n");

case4:

printf("4:

小湖break;

case5:

printf("5:

篮球场break;

魅力的校园明珠\n\n");

热爱篮球学生的天堂\n\n");

case6:

printf("6:

后院食堂break;

case7:

printf("7:

第三食堂

break;

距离宿舍区最近,饭点拥挤度最高\n\n");

距离教学楼最近,晚上有课的同学可以来此\n");

case8:

printf("8:

第二食堂  离前院打水的地方最近,打水的地方可以在

这吃饭\n\n");

break;

case9:

printf("9:

欧美东院 中欧文化汇聚的园地\n\n");break;

case10:

printf("10:

北2break;

case11:

printf("11:

北1break;

case12:

printf("12:

逸夫楼break;

case13:

printf("13:

操场break;

}

printf("/n");}

voidmain(){chark;

print();

scanf("%c",&k);

while((k!

='i')&&(k!

='e')&&(k!

='s'))

{getchar();

居住前院学计算机和欧美东院的女生\n\n\n");

居住欧美东院的男生\n\n");

老师传授知识,学生学习知识的乐园\n\n");

学生活动锻炼的好去处\n\n");

5

printf("ERROR请输入i或s或e\n");scanf("%c",&k);}

switch(k)

{case'i':

printf("进入景点查询:

\n");introduce();

break;

case's':

printf("进入最短路径查询:

\n");shortestdistance();

break;

case'e':

exit(0);}

}

voidshortestdistance()

{inti,v,w,v0,j;

intmin;

inttop[14]={0};

intcost[14][14];

intpath[14][14];

intfinal[14]={0};

intD[14];

for(i=0;i<14;i++)

for(j=0;j<14;j++)cost[i][j]=Init_Length;

cost[1][3]=cost[3][1]=10;

cost[3][5]=cost[5][3]=40;

cost[1][7]=cost[7][1]=10;

cost[3][7]=cost[7][3]=30;

cost[2][7]=cost[7][2]=20;

cost[2][6]=cost[6][2]=10;

cost[4][6]=cost[6][4]=10;

cost[4][13]=cost[13][4]=10;

cost[6][12]=cost[12][6]=20;

cost[12][8]=cost[8][12]=10;

6

cost[8][9]=cost[9][8]=10;

cost[6][9]=cost[9][6]=15;

cost[10][9]=cost[9][10]=10;

cost[6][10]=cost[10][6]=20;

cost[9][10]=cost[10][9]=10;

cost[9][11]=cost[11][9]=10;

printf("请输入您现在所在的位置:

\n");

scanf("%d",&v0);

while(v0>13||v0<1)

{printf("ERROR!

请重新输入编号从1到13的数\n");scanf("%d",&v0);

}

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

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

path[i][j]=0;for(v=1;v<14;v++)

{D[v]=cost[v0][v];

if(D[v]

{path[v][(++(top[v]))]=v0;

path[v][(++(top[v]))]=v;}

}D[v0]=0;

final[v0]=1;

for(i=2;i<14;++i)

{min=Init_Length;

for(w=1;w<14;++w)

{if((final[w]==0)&&(D[w]

{v=w;min=D[w];}}

final[v]=1;

for(w=1;w<14;++w)

{if((final[w]==0)&&(min+cost[v][w]

{D[w]=min+cost[v][w];

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

7

path[w][j]=path[v][j];

top[w]=top[v]+1;

path[w][(top[w])]=w;

}

}

}printf("请输入你要去的地方:

\n");

scanf("%d",&w);

printf("\n");

while(w>13||w<1)

{printf("ERROR!

输入错误,请重新输入编号从1到13\n");

scanf("%d",&w);}

printf("最短路径为:

\n");

for(i=1;path[w][i]!

=0;i++)

printf("-->%d",path[w][i]);

printf("\n");

printf("最短路径的长度为:

%d\n",D[w]);

}

调试过程中曾遇到的错误:

解决1、将头文件include改变为include

改进2、利用子程序, 精减了程序

   发现问题3、在编程序时,输入了多余的中文空格,会报错。

6特殊问题解决方法

6.1问题1如何辨别所需的功能的?

解决方法1:

用getchar()来得到输入的功能号,判断功能号,并执行相应的子程序,以实现程序的功能。

6.1问题2如何实现具体的功能?

判断功能号,并执行相应的子程序,以实现程序的功能。

8

7使用说明及测试结果

请输入您的选择:

输入I,s,e

正确操作演示:

======校园导游程序======请输入您的选择:

输入I,e,s

例如输入的是i(景点查询)

请输入景点编号:

(1-13)

按任意键退出程序

输入后按回车键(Enter)。

执行相应的程序。

输入所查景点的数字,按回车键显示所查景点的介绍

按任意键退出程序

结果:

初始界面:

输入i(景点查询)的运行结果:

9

输入s(查询最短路径)运行结果:

10

8结论

对于本次课程设计,能够大体的了解系统的概念并予以实现,已经实现的功能能够很好的展现其充分的特性。

并且很好的彰显人性化的功能,对服务对象的错误操作能够及时予以改正,减少不必要的繁琐操作。

但是本次课程设计有一很大的遗憾,就是由于本人的编程能力有限,而未能实现括号的优先运算的功能。

相对于预期实现的效果来看,未能实现括号的功能使系统的优越性能有所下降,但是并不影响系统整个的运行功能。

希望通过今后在计算机专业的学习,能够不断地完善我的专业知识,最好是熟练掌握一方面的技能知识,更好地进行实践的工作,从而真正成为一名优秀的计算机专业工作者,为社会的IT行业作出贡献。

9总结与体会

通过一周的《数据结构与C语言》课程实训,我不仅对图的概念有了一个新的认识,而且对算法和C语言有了更深的理解,在学习了《数据结构》这门课后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉它有哪些具体化、数字化的信息。

在这次课程设计中,我明白了编写一段代码,我们不仅要考虑它的可行性,更应该考虑它的算法复杂度,运行效率。

做同一件事,一万个人有一万种做法,换而言之,一万个人写一段代码实现同一个功能可以得到一万段代码。

由此,我们可以看出做一件事要精益求精,多加斟酌,更好的为用户着想是程序设计者应该具备的思想。

10、参考文献:

《c语言程序设计》谭浩强清华大学出版社

《数据结构》高教出版社

《数据结构习题》李春保清华大学出版社

《数据结构习题》严蔚敏清华大学出版社

《c语言与数据结构》王立柱清华大学出版社

《数据结构(C语言篇)习题与解析》李春葆清华大学出版社

11

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

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1