数据结构课程设计报告.docx
- 文档编号:2144352
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:25
- 大小:87.08KB
数据结构课程设计报告.docx
《数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
数据结构课程设计报告
XXXX大学计算机学院
课程设计
(数据结构)
班级
姓名
学号
指导教师
二○一一年一月二十日
课程设计任务书及成绩评定
课题名称
校园导游咨询
Ⅰ、题目的目的和要求:
1、设计目的
巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。
(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。
(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。
2、设计题目要求:
问题描述:
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。
要求能够回答有关景点介绍、游览路径等问题。
要求:
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。
(3)查询图中任意两个景点间的所有路径。
(4)增加、删除、更新有关景点和道路的信息。
Ⅱ、设计进度及完成情况
日期
内容
1.10-1.11
选取参考书,查阅有关文献资料,完成资料搜集和系统分析工作。
1.12~1.14
创建相关数据结构,录入源程序。
1.17~1.19
调试程序并记录调试中的问题,初步完成课程设计报告。
1.20~1.21
上交课程设计报告打印版并进行课程设计答辩,要求每个同学针对自己的设计回答指导教师3-4个问题。
考核结束后将课程设计报告和源程序的电子版交班长统一刻光盘上交。
Ⅲ、主要参考文献及资料
[1]严蔚敏数据结构(C语言版)清华大学出版社1999
[2]严蔚敏数据结构题集(C语言版)清华大学出版社1999
[3]谭浩强C语言程序设计清华大学出版社
[4]与所用编程环境相配套的C语言或C++相关的资料
Ⅳ、成绩评定:
设计成绩:
(教师填写)
指导老师:
(签字)
二○一一年一月二十一日
目录
第一章概述……………………………………………………………1
第二章系统分析………………………………………………………2
第三章概要设计………………………………………………………3
第四章详细设计………………………………………………………9
第五章运行与测试……………………………………………………17
第六章总结与心得……………………………………………………20
参考文献………………………………………………………………21
第一章概述
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
在这次的课程设计中我选择的题目是校园导游咨询。
当到一个陌生的地方去旅游时,人们常常需要一个导游为自己在游玩过程中提供服务,比如介绍参观景点的历史背景等相关信息,推荐到下一个景点的最佳路线,以及解答旅游者提出的关于旅游景点的相关问询,等等。
对于刚刚来到大学校园的新生,对校园环境不熟悉的情况也是如此,如果能够提供一个程序让新生或来访的客人自主的与机器“对话”来获得相关信息,将会节省人力和时间,而且所提供的信息也能够保证尽可能的准确、详尽。
本实验要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。
第二章系统分析
1.本校园景点平面图设计的主要目的是为用户提供以下主要信息:
第一,为用户展示一个比较全面的校园全景图,让游客做到对所要浏览的校园心中有数,尽可能做到一目了然;第二,当游客置身于景点中时,可以为用户提供平面中某景点到其余各景点的浏览路线及其各自最短路径,以便使用户更好的完成自己的浏览计划,从而节省时间放松身心;第三,为用户提供平面图中任意场所的问路查询,即查询任意两个景点之间的一条最短的简单路径,旨在为用户的旅游大大提高效率;第四,为用户提供平面图中任意场所的相关信息的查询,简单介绍平面图中各景点的特点,概况和相关职能,让用户有选择的进行浏览;第五,为保证景点平面图的完整和准确,本设计提供了用户更新完善平面图的功能;最后本设计本着完整健壮的追求,设计了退出系统环节,让用户用的更舒心。
2.校园平面图设计的基本功能包括:
为用户提供当前所在景点到图中任意景点的一条最短路径,及其任意两个场所之间的最短简单路径等等。
由于这两个基本功能是基于图结构的实际的景点网络,所以要采用图的邻接矩阵存储结构,又因为校园道路往往是双向通行的,因此该平面图可被看做带各种信息的无向网。
故重点是完成计算并记录从某景点到各个场所的最短路径,以及接收用户输入的场所名称,并在计算机的最短路径集合中找到相关项的信息反馈给用户。
3.既为校园景点平面图设计,就需要一个模块来为用户提供一个较全面的校园全景图,以及图中各景点信息的查询服务。
那么MGraphInitGraph(void);voidMenu();voidBrowser(MGraph*G);这三个函数实现了呈现校园全景图的功能。
而voidSearch(MGraph*G);intLocateVex(MGraph*G,char*v);这两个函数主要实现的是定位图中某景点并完成该景点的信息查询功能。
4.演示程序是以用户于计算机的对话方式执行,这需要一个模块来完成使用者与计算机语言是转化。
5.程序执行时的命令:
本程序为了使用时的方便,采用菜单式的方式来完成程序的演示,几乎不用输入什么特殊的命令,只需按提示输入选者即可。
(要注意输入时格式,否者可能会引起一些错误)
6.测试数据。
第三章概要设计
1、数据结构的设计
由于各个场所通过校园中的道路相连,各个场所和连接它们的道路构成了整个校园的地理环境,所以使用图这种数据结构对它们进行描述。
以图中顶点表示校园内的各个场所。
应包含场所名称、代号、简介等信息;以边表示连接各个场所的道路,应包含路径的代号、路径长度等信息。
一般情况下,校园的道路是双向通行的。
因此校园平面图可以看做一个无向网。
图的顶点和边均使用结构体类型,整个图的数据结构采用了带权的邻接矩阵的存储方式。
2、算法的设计
本校园景点平面图设计从总体上主要划分了五个模块。
第一模块以表格形式显示校园平面图,平面图中应能够准确地标示场所名称,及其对应各个场所的简介信息;首先用二维数组初始化一个图形G,然后调用Browser(MGraph*G)函数调用并显示这个平面图,主要有以下两个算法
MGraphInitGraph(void)
{
MGraphG;
for(i=0;i { G.vexs[i].num=i; strcpy(G.vexs[0].name,"第三食堂"); strcpy(G.vexs[0].introduction,"新建标准化食堂"); strcpy(G.vexs[1].name,"大学生事务中心"); strcpy(G.vexs[1].introduction,"大学生事务中心于2005年6月30日成立,挂靠学生工作处"); strcpy(G.vexs[2].name,"地下超市"); strcpy(G.vexs[2].introduction,"学校两大超市之一,日常生活用品,电子产品等应有尽有"); strcpy(G.vexs[3].name,"信息楼"); strcpy(G.vexs[3].introduction,"多媒体教学场所,设施先进,环境良好"); strcpy(G.vexs[4].name,"图书馆"); strcpy(G.vexs[4].introduction,"藏书464.8万册,设施完备,1楼东区为电子阅览室,环境幽雅"); strcpy(G.vexs[5].name,"体育场"); strcpy(G.vexs[5].introduction,"现代化塑胶跑道,人造草坪,适宜锻炼身体的场所"); strcpy(G.vexs[6].name,"鸿远楼"); strcpy(G.vexs[6].introduction,"正对学校南门的,高层领导办公之地,平时学生的快递也送达那"); strcpy(G.vexs[7].name,"国防教育学院"); strcpy(G.vexs[7].introduction,"学生半军事化管理,是学校的一道亮丽风景线"); strcpy(G.vexs[8].name,"第四餐厅"); strcpy(G.vexs[8].introduction,"紧邻我们的第二水房,干净卫生,饭菜可口"); strcpy(G.vexs[9].name,"校医院"); strcpy(G.vexs[9].introduction,"设施不是很齐全,只能看小病,服务态度挺好"); } for(i=0;i for(j=0;j { G.arcs[i][j].adj=INFINITY; G.arcs[0][1].adj=50; G.arcs[0][2].adj=50; G.arcs[0][6].adj=500; G.arcs[1][7].adj=200; G.arcs[2][3].adj=600; G.arcs[3][4].adj=100; G.arcs[3][6].adj=60; G.arcs[4][5].adj=50; G.arcs[4][8].adj=700; G.arcs[5][8].adj=800; G.arcs[6][7].adj=650; G.arcs[6][9].adj=600; G.arcs[7][8].adj=100; G.arcs[8][9].adj=80; } for(i=0;i for(j=0;j { G.arcs[j][i].adj=G.arcs[i][j].adj; returnG; } }//InitGraphend voidBrowser(MGraph*G) { Printf() } 第二个模块实现了任意场所的信息查询功能,要求能够接受用户所输入的场所名称,并将场所的简介信息反馈给用户;本设计用Search函数实现本部分功能,算法如下;voidSearch(MGraph*G) { Printf() } 第三个模块功能为求单源点到其他各点的最短路径,计算并记录从某个景点到其他各个场所的各自所有最短路径;主要有迪杰斯特拉算法实现如下: voiddijstra(intcost[][N],intv) {intdist[N],i,j,w for(i=0;i dist[i]=cost[v][i];//初始化 dist[v]=-dist[v]; for(i=0;i {j=mincost(dist);//找非0、非负且最小的dist[j] if(j==0);break; dist[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告