数据结构课程设计大纲-2013
2013级软件工程专业数据结构课程设计方案V10

2013级软件工程专业《数据结构课程设计》方案V1.0一、课程任务要求独立完成一个或多个较为完整的应用需求分析,在完成设计和编程大型作业的过程中,深化对数据结构课程中概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高;经过查找参考资料、技术手册和撰写文档的实践,进一步培养软件工程师的综合素质。
二、具体要求1.每人应至少独立完成一道题目并撰写课程报告,具体题目由任课老师组织分配,题目一旦选定,未经老师同意,不得私自更换,否则总评成绩为缺成绩。
2.按时出勤,旷课2次直接取消答辩资格,旷课1次总评成绩降低1个等级。
3. 听从值班老师安排,按所选题目分区坐在指定位置。
4. 按时提交课程设计资料,未按格式或未在规定时间提交资料的,总评成绩为缺成绩。
三、具体安排1. 时间:18周周一至周五上午、下午2. 地点:4-312(1、2、3题)、4-313(4、5、6题)3. 答辩时间:19周周1上午、下午4. 课程设计具体考核标准和流程由题目指导老师负责。
四、课程设计题目与内容1. 数据压缩与解压缩利用哈夫曼编码完成数据的压缩与解压缩,具体要求如下:(1)哈夫曼编码的动画显示,程序运行界面如下:(40分)在上面文本框中输入待编码的字符串,点击“Show Huffman Tree”按钮输入,生成哈夫曼树并显示该字符串的哈夫曼编码。
如下图所示:在下面文本框中输入二进制哈夫曼串,点击“Decode Text”,能够还原为原来的字符。
比如输入"001" 显示"w",输入"01001" 显示"ow",如下图所示:(2)在上面程序的基础上,编写程序,在控制台或GUI中输入文件名(如filename.dat),通过哈夫曼数据压缩算法生成filename.new, 同时,使用数组存储每个字符哈夫曼编码,通过对象输出流将该数组写入文件filename.huf中。
《数据结构》课程标准

《数据结构》课程标准学时:72学时(其中:讲课学时:36 上机学时:36 )先修课程:高等数学、C语言程序设计后续课程:软件开发相关的应用性课程(Android应用开发、软件工程等)适用专业:软件技术、移动应用开发、软件与信息服务等开课部门:信息工程与大数据学院一、课程的性质《数据结构》是面向软件技术相关专业的一门专业基础课,课程要求:熟练掌握线性表、栈和队的存储结构及基本操作,并能在相应的应用中正确地选用,培养学生用链式结构编写程序的能力;了解串和广义表的定义和存储结构;掌握数组的存储结构,熟悉稀疏矩阵的两种压缩存储方法的特点及适用范围;了解树的存储结构及特点,掌握二叉树和图的存储结构及其相应算法,培养学生用非线性结构解决实际问题的能力;掌握各种查找、排序方法,培养学生灵活应用已有排序方法的能力,开拓思路编写新的排序算法。
二、课程设计理念数据结构是计算机存储、组织数据的方式。
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
精心选择的数据结构可以带来更高的运行或存储效率,数据结构往往同高兴的检索算法和索引技术有关。
1、课程地位理念在许多类型的程序设计中,数据结构的选择是一个基本的设计考虑因素。
许多大型的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。
许多时候,确定了数据结构后,算法就容易得到了。
有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。
不论哪种情况,选择合适的数据结构都是非常重要的。
选择了数据结构,算法随之确定,是数据而不是算法是系统构造的关键因素。
2、课程学情理念本课程开设在嵌入式系统工程专科第一学期,学生在学习本课程前已具备计算机基础、C语言基础等知识,本课程力图让学生学会在C语言环境下,运用面向对象的思想编写规范的代码,实现经典的数据结构和算法。
熟悉常用的数据结构和算法,使学生初步具备一个优秀的软件开发人员所应有的基本能力。
《数据结构课程设计》教学大纲

《数据结构课程设计》教学大纲《数据结构课程设计》教学大纲课程名称:数据结构课程编号:408104 436104适用专业:计算机科学与技术软件工程总学分: 4总学时:72其中实验学时30主撰人:审核人:撰写日期:2012.6一、目的与任务《数据结构》是计算机软件的一门基础课程,计算机科学各领域及有关的应用软件都要用到各种类型的数据结构。
学好数据结构对掌握实际编程能力是很有帮助的。
为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。
二、教学基本要求1.设计和调试过程要规范化需求分析:将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。
给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。
对有些题目提出算法改进方案,比较不同算法的优缺点。
如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法。
②源程序(可以是一组源程序,即详细设计部分)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
程序能够运行,要有基本的容错功能。
尽量避免出现操作错误时出现死循环。
2.课程设计实习报告的书写格式①设计题目②运行环境(软、硬件环境)③算法设计的思想④算法的流程图⑤算法设计分析⑥源代码⑦运行结果分析⑧收获及体会3.实施方式可设3-4人一题,安排在《数据结构》课程开课学期布置题目,然后在期末两周时间内完成。
4.答辩:课题的论述、测试及问题回答三、课程设计内容1、背包问题的求解:假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解。
《数据结构》教学大纲

《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。
本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。
二、教学目标1. 理解数据结构的基本概念和原理,包括栈、队列、链表、树、图等基本数据结构的应用场景与实现。
2. 掌握数据结构的基本算法与操作,包括插入、删除、查找、排序等常用操作的实现与分析。
3. 培养学生良好的编程实践能力,能够灵活运用不同的数据结构解决实际问题。
4. 培养学生团队合作精神和沟通能力,能够与他人合作设计和实现复杂的数据结构与算法。
三、教学内容1. 数据结构基础1.1 数据结构与算法的关系1.2 抽象数据类型与数据结构1.3 算法复杂度与评估方法2. 线性结构2.1 线性表的基本概念与实现2.2 栈与队列的定义与应用2.3 数组与链表的对比与选择3. 树形结构3.1 树的基本概念与性质3.2 二叉树的存储与遍历3.3 二叉搜索树与平衡树的应用4. 图结构4.1 图的基本概念与表示方法4.2 图的遍历与连通性算法4.3 最短路径与最小生成树算法5. 排序与查找5.1 常用排序算法的实现与性能分析 5.2 二分查找算法与应用5.3 哈希表的概念与应用四、教学方法1. 理论讲解:通过授课方式向学生讲解数据结构的基本概念、原理和算法分析方法。
2. 实验实践:通过编写程序实践,巩固和加深学生对数据结构的理解与应用能力。
3. 课堂讨论:鼓励学生在课堂上提问和讨论问题,促进学生思维的活跃和沟通能力的培养。
4. 课程设计:结合实际案例,进行小组项目设计,培养学生团队合作和创新能力。
五、教学评价与考核1. 平时成绩:包括课堂讨论与实验成绩,在课堂上主动提问、积极参与实验的学生将获得较高成绩。
2. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。
《数据结构》理论课程教学大纲

《数据结构》课程教学大纲一、课程基本信息二、课程教学目标本课程介绍软件设计中常用的线性表、栈、队列、串、数组、广义表、树、二叉树、图结构等几种基本的数据结构及其存储结构和所施加的运算与实现等。
另外,还介绍软件设计中常用的几种查找和排序算法,以及递归技术等,在介绍各项内容的同时,还涉及到算法设计与分析的基本技术和面向过程程序设计的理论与技术等内容。
通过本课程的学习,能熟练掌握上述结构及其运算的实现和性能特点,掌握各种排序和查找运算以及递归技术,并能对给定的实际问题,建立准确的问题模型,设计有效的问题求解方法,选择合理的数据结构及其运算集,设计有效的算法,从而为提高软件设计水平以及后续课程的学习打好基础。
三、教学学时分配《数据结构》课程理论教学学时分配表理论学时包括讨论、习题课等学时。
《数据结构》课程实验内容设置与教学要求一览表四、教学内容和教学要求第一章绪论(2学时)(一)教学要求通过本章内容的学习,了解数据结构的各种基本概念和术语,了解数据类型和抽象数据类型的概念,理解算法的设计目标,掌握算法的时间复杂度概念和算法的时间复杂度分析方法。
(二)教学重点与难点教学重点:数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系教学难点:算法复杂度的分析方法。
(三)教学内容第一节什么是数据结构1.数据结构的定义2.逻辑结构类型3.存储结构类型4.数据结构和数据类型第二节算法及其描述1.什么是算法2.算法描述第三节算法分析1.算法设计的目标2.算法效率分析3.算法存储空间分析本章习题要点:基本概念、算法复杂度的分析方法。
第二章线性表(8学时)(一)教学要求通过本章内容的学习,理解线性表的逻辑结构和基本操作,理解线性表的顺序存储结构和实现方法,理解线性表的链式存储结构和实现方法,了解单循环链表和双向链表的概念和插入、删除等操作方法。
(二)教学重点与难点教学重点:顺序表和单链表上实现的各种基本算法及相关的时间性能分析。
数据结构课程设计教学大纲2013级

《数据结构》课程设计任务与指导书绍兴文理学院元培学院信电系2015年9月《数据结构与算法》课程设计教学大纲时间:2周(不停课) 2.5学分一、教学目的《数据结构与算法》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
通过课程设计的锻炼使学生进一步加强对所学知识的理解和掌握,培养学生利用各种数据结构(如线性表、栈、队列、树和图)分析问题、解决问题的能力,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
具体目的:1、培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。
2、培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。
3、通过课程设计实践,训练并提高学生在理论计算、结构设计、查阅设计资料、运用标准与规范、编制软件和应用计算机等方面的能力。
二、教学要求课程设计不同于一般上机实验,强调设计性和综合性,难度和分量较大。
因此通过本次课程设计可以加强学生基本功的训练。
要求学生在数据结构的逻辑特性和物理表示,数据结构的选择的应用、算法的设计及其实现等方面中加深对课程基本内容的理解,在程序设计方法以及上机操作等基本技能方面受到比较系统和严格的训练。
三、教学内容参考课题:(可任选一题)设计1、畅通工程之局部最小花费问题某地区经过对城镇交通状况的调查,得到现有城镇之间快速道路的统计数据,提出“畅通工程”的目标:使整个地区任何两个城镇之间都可以实现快速交通(不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。
现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修建的状态。
计算出全地区畅通需要的最低成本。
输入说明:第1行给出村庄数目;随后是N(N-1)/2行对应村庄间道路的成本及修建状态:分别是两个村庄的编号、两村庄道路的修建成本以及修建的状态(1:已建,0:未建),用prim算法或kruskal算法求最小代价生成树,并计算得到的代价。
《数据结构》课程教学大纲

《数据结构》课程教学大纲一、课程概述数据结构是计算机科学与技术专业的重要基础课程之一。
本课程旨在介绍数据结构的基本概念、常用数据结构及其应用。
通过本课程的学习,学生应具备设计和实现基本数据结构的能力,能够分析并解决实际问题中的数据组织与处理需求。
二、教学目标1. 掌握数据结构的基本概念和分类。
2. 理解不同数据结构的特点、存储结构和操作方式。
3. 能够应用各类数据结构解决实际问题,并分析其性能。
4. 具备编写高质量代码的能力,考虑代码的可读性和可维护性。
5. 培养团队合作意识和解决问题的能力。
三、教学内容1. 数据结构基础1.1 数据结构的定义和作用1.2 数据结构的分类及常用术语1.3 数据结构的表示与实现方式2. 线性结构2.1 线性结构的概念和特点2.2 线性表的顺序存储结构和链式存储结构2.3 线性表的基本操作(插入、删除、查找)2.4 栈和队列的定义、基本操作以及应用3. 非线性结构3.1 树形结构的概念和特点3.2 二叉树及其存储结构(顺序存储和链式存储)3.3 二叉树的遍历(先序、中序、后序)3.4 树与森林的转换和应用4. 图结构4.1 图的定义和基本术语4.2 图的存储结构(邻接矩阵和邻接表)4.3 图的遍历(深度优先搜索和广度优先搜索)4.4 最小生成树和最短路径算法5. 查找算法5.1 查找的基本概念和分类5.2 顺序查找算法5.3 二分查找算法5.4 哈希查找算法6. 排序算法6.1 排序的基本概念和分类6.2 内部排序算法(插入排序、冒泡排序、选择排序、快速排序、归并排序)6.3 外部排序算法四、教学方法1. 集中讲述与课堂演示相结合的教学方法。
2. 利用多媒体技术展示数据结构的基本概念、实例和操作过程。
3. 提供编程实践的机会,让学生独立设计和实现各类数据结构。
4. 组织小组讨论和团队合作,解决数据结构相关问题。
五、考核方式1. 平时成绩包括课堂表现、作业、实验和参与度。
《数据结构课程设计》实验大纲[1]
![《数据结构课程设计》实验大纲[1]](https://img.taocdn.com/s3/m/3451162d3169a4517723a311.png)
《数据结构课程设计》课程实验大纲一、课程名称:数据结构课程设计二、课程性质:其他实践教学环节三、实验学时:36学时四、课程类型:独立设课五、课程适用专业:计算机科学技术专业、计算机科学与技术专业(实验班)、软件工程专业六、教学目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
七、实验教学项目表八、选题要求:在上面实验项目1、2、5中选一个小题做,在实验项目3、4中选择一个小题做,即一共需要完成两个小题。
九、课程设计报告要求:每个实验应该有相应的课程设计报告,包含如下内容:(1)问题描述及分析(2)功能模块及数据结构描述(3)主要算法流程描述(4)使用说明如何运行,如何输入测试数据,会出现的输出结果等,给出实例。
(5)实验及总结调试过程中遇到的主要问题有哪些?如何解决的。
有何结论?课程设计报告的格式要求1.字体设置要求为:(1)标题:黑体小四(2)正文内容:宋体小四号(3)表题与图题宋体五号(4)参考文献:宋体五号2.表格每个表格应有表序和表题,表序和表题应写在表格上方正中,表序后空一格书写表题。
3.插图插图必须精心制作,线条粗细要合适,图面要整洁美观。
每幅插图应有图序和图题,图序和图题应放在图位下方居中处。
4.各类参考文献的书写格式如下:连续出版物:[序号]作者.书名.刊名,年,卷号(期号):起~止页码专(译)著:[序号]作者.书名.(译者).出版地:出版者,出版年.起~止页码论文集:[序号]作者.文章名.文集名.会议地点,年.起~止页码学位论文:[序号]姓名.学位论文题目:[XX学位论文],授予单位所在地:授予单位,授予年十、课程设计成绩评定:准确评定成绩是课程设计的重点。
数据结构课程设计大纲

数据结构课程设计大纲数据结构课程设计大纲一、课程目标掌握数据结构的基本概念和原理,理解数据之间的关系和组织方式。
掌握常见的数据结构(如数组、链表、栈、队列、树、图等)的实现和应用。
掌握基本的算法设计和分析技巧,能够设计和实现高效的算法。
培养学生的编程能力和解决问题的能力,提高学生的创新能力和团队合作精神。
二、课程内容数据结构的基本概念和原理数组的实现和应用链表的实现和应用栈和队列的实现和应用树和图的实现和应用排序算法的设计和分析查找算法的设计和分析算法复杂度的分析和优化数据结构的应用案例课程设计项目和要求三、课程安排第一周:数据结构的基本概念和原理,数组的实现和应用。
第二周:链表的实现和应用,栈和队列的实现和应用。
第三周:树和图的实现和应用,排序算法的设计和分析。
第四周:查找算法的设计和分析,算法复杂度的分析和优化。
第五周:数据结构的应用案例,课程设计项目和要求。
第六周至第八周:课程设计项目实施和汇报。
四、课程设计要求学生需根据项目要求,自行选择合适的数据结构和算法进行实现。
学生需在规定的时间内完成课程设计任务,并提交源代码和报告。
课程设计项目应具有一定的难度和实际应用价值,学生需进行需求分析、设计、编码、测试和总结等环节。
学生应在课程设计中注重团队协作和沟通,能够有效地与同学和老师进行交流。
五、考核方式平时成绩:包括学生的出勤率、课堂表现、作业完成情况等。
期末考试:包括理论考试和实践考试,理论考试主要考察学生对数据结构基本概念和原理的掌握程度,实践考试主要考察学生的编程能力和解决问题的能力。
课程设计项目:学生的课程设计项目将进行口头汇报和答辩,以评估学生的团队协作能力、问题解决能力和创新能力等。
最终成绩将以平时成绩、期末考试成绩和课程设计项目成绩进行综合评定。
数据结构课程教学大纲教案

数据结构课程教案
(Data Structure)
一、课程基本信息
课程编号:10132036
课程类别:学科基础课
适用专业:计算机科学与技术、网络工程
学分:理论教学学分3学分
总学时:48学时其中理论学时:48学时;实验学时:0
学时
先修课程:离散数学、C语言程序设计
后续课程:编译原理、操作系统、数据库原理及应用
课程简介:
本课程是计算机相关专业的一门很重要的专业基础课,主要介绍数据结构的概念及分类,包括线性结构、树结构和图结构。
具体有线性表、栈、队列、字符串和数组、树和图,以及两种常用算法:查找和排序,主要介绍三种结构的存储方法及基本操作的实现方法。
主要教学方法与手段:
课堂多媒体课件结合黑板板书。
教材:。
《数据结构课程设计》课程教学大纲

《数据结构课程设计》课程教学大纲注:课程类别是指学科基础课/专业课/实践环节/通识公共课/公共基础课/其他;课程性质是指通识必修/通识选修/学科必修/专业必修/专业选修/实践必修/实践选修。
一、课程目标本课程是与《数据结构》相配套的实践环节。
课程通过设计并编程实现各种数据结构的基本操作、存储,以及选用算法的时间复杂度等,进一步加深理解所学理论课的内容。
通过本课程设计,使学生对数据结构的逻辑特性和物理存储;数据结构的选择和应用;算法设计及其实现等内容加深理解;学会根据实际问题选用和设计数据结构,使理论与实践相结合。
同时使学生在程序设计方法、上机操作等基本技能及科学作风方面受到比较系统和严格的训练。
课程目标:1.能够根据具体的问题,选用合适的数据结构设计解决方案,并编程实现;2.具备对实验结果进行分析与解释并推导出有效结论的能力;3.学生在项目上机验收、撰写设计文档及课程设计报告时能清楚分析并阐述其设计思路的合理性及正确性;4.通过数据结构课程实践练习,使学生了解中国在数据库、大数据平台、数据结构算法创新与实践,数据处理规模、吞吐率、系统可靠性等方面取得的成就。
二、课程目标与教学内容和方法的对应关系教学内容对课程目标的支撑关系、教学方法如表1所示:表1教学目标与教学内容、教学方法的对应关系教学内容教学方法课程目标课程英文名Course Design for Data Structure 课程代码S050095G课程类别实践环节课程性质实践必修学分2总学时数32开课学院计算机学院开课基层教学组织国际化课程组面向专业计算机科学与技术(国际教育学院)(全英文)、软件工程(国际教育学院)(全英文)开课学期3教学内容教学方法课程目标1.线性结构:(1)约瑟夫环课堂讲授、自学、案例分析、1,2,3课堂互动、调研报告1.线性结构:(2)集合交并差课堂讲授、实践2,32.栈和队列:停车场管理课堂讲授、实践2,3,43.树形结构:哈夫曼树及编码的实现课堂讲授、自学、实践2,3,44.图形结构:校园周游课堂讲授、实践2,3,4本课程设计全部由学生自主完成,教师以答疑方式给予帮助。
《数据结构》课程设计教学大纲

《数据结构》课程设计教学大纲第一篇:《数据结构》课程设计教学大纲《数据结构》课程设计教学大纲适用专业:计算机科学与技术课程周数:2周一、大纲说明本大纲根据计算机科学与技术专业人才培养方案制订。
(一)课程设计性质课程设计是学生对课程所学知识的综合运用,它与课堂听讲、上机实验、课外练习、自学研究相辅相成,构成一个完整的课程教学体系。
(二)主要先修课程和后续课程1.先修课程:《C语言程序设计》2.后续课程:《计算机组成原理》、《操作系统》、《数据库系统原理》二、课程设计目的及基本要求《数据结构》是一门实践性强的课程,其中对算法设计和程序编写的掌握尤为重要。
学生虽然可以通过与课堂教学同步的上机实验完成相关内容的练习,但却往往局限于一些功能简单、彼此之间关系独立的算法和程序。
课程设计是一种综合训练,致力于培养学生全面、灵活的算法设计思想和较高的编程能力,为今后从事计算机开发与应用打下基础。
新世纪需要具有丰富科学知识、独立解决实际问题、有创造能力的新型人才,这也是该课程设计的最终目的。
三、课程设计内容及安排1、矩阵的转置、加减和相乘问题描述:采用十字链表存储的稀疏矩阵,完成矩阵转置、加减和相乘功能。
要求:1)采用函数形式完成转置、相加、相减和相乘;2)有输入数据合法性检查; 3)矩阵的存储采用动态数组;4)两个矩阵产生后要分别打印出来,完成相应处理后结果要打印出来;5)每一个函数要有必要的注释,在课程设计论文中有流程图。
2、线索二叉树问题描述:实现线索二叉树的生成、遍历、查找、插入和删除操作。
要求:1)各功能模块必须是单独的函数;2)线索二叉树是动态生存的;3)输入数据进行必要的合法性检查;4)执行每一个功能后,按二叉树广义表的表达方式打印输出,检查结果是否正确;5)每一个函数要有必要的注释,在课程设计论文中有流程图。
3、根据哈夫曼树的原理求n个自然数相加减后结果最小(中间结果、最后结果不能负)。
问题描述:实现线索二叉树的生成、遍历、查找、插入和删除操作。
数据结构2013数据结构课程标准14-15-2-软件1.5 课程标准

7、《数据结构》课程标准一、课程性质职业技术课二、课程开设学期及基准学时、学分1、课程开设学期:第三学期;2、基准学时:72学时;3、学分:4学分。
三、先修课程C程序设计、高等数学四、课程目标1、知识目标:(1)了解数据结构基本概念和主要术语;(2)掌握顺序表和链表结构及其应用;(3)掌握栈和队列结构及其应用;(4)掌握二叉树结构及其应用;(5)掌握图结构及其应用;(6)理解静态查找和动态查找算法的思想、实现及效率分析;(7)理解几种典型排序算法的思想、实现及效率分析。
2、能力目标:(1)培养根据实际问题的需求合理抽象组织数据的能力;(2)培养各种数据逻辑结构和存储结构的选择和应用能力;(3)培养算法的设计和效率分析能力;(4)培养查找和排序各种算法的选择和应用能力;(5)培养良好的程序设计风格和分析设计能力。
五、课程内容与学时安排六、训练任务七、考核标准(考核方案)1、课程总体考核方案(表7-1)3、项目职业考核方案(表7-2-2)八、教材资料与网络资源1、教材资料(1)《数据结构实用教程》张居晓清华大学出版社 2012(2)《数据结构案例教程》徐翠霞北京大学出版社 2011(3)《数据结构》刘振鹏中国铁道出版社 20102、网络资源(1)学院精品课网站中包含电子教学资源库,如教案、课件、动画、视频等,所有的教学资源可在网上学习和下载。
(2)通过电子邮件、QQ、MSN等实时交流工具,实现即时辅导答疑,每个班级都建立自己的班级QQ群,学生与老师共同讨论,弥补了课堂讨论的不足。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法》课程设计大纲(一)课程设计教学目的及基本要求1、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
(二)课程设计内容及安排1、问题分析和任务定义。
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2、逻辑设计。
对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。
3、物理设计。
定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架。
4、程序编码。
把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
5、程序调试与测试。
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。
6、结果分析。
程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。
算法的时间、空间复杂性分析。
7、编写课程设计报告。
(具体格式参见附录课程设计报告格式。
)(三)课程设计考核方法及成绩评定课程设计结束时,要求学生写出课程设计报告(附源程序),可运行的软件系统。
课程设计成绩分两部分,设计报告占30%,设计作品占70%。
(四)课程设计注意事项1、课程设计报告要求按格式要求完成实习报告,每人用A4纸打印课程设计报告(源代码可不打印),此外,请学习委员将所有同学的源代码收齐后刻在一张光盘上,光盘上分别为每位同学的资料建一个文件夹(名为“班学号姓名”,如114111-01-XXX),其中存入该同学课程设计的源程序及课程设计报告的电子文档。
2、下学期开学第一周周一交。
3、第一次上机之前请各位同学对实现题目仔细研究,最好能有自己的思路。
第一次上机时和指导老师交流对题目的理解。
4、请各位同学自行完成课程设计内容。
如有网上下载或同学间雷同,成绩将以不通过计!!!5、请各位同学把实习题目当作产品来完成。
追求完善,不要应付老师检查,程序要求有良好的结构及编码风格,有必要的注释。
6、为了减少调试时间,可以把测试数据及操作都使用文件存储,也可在“项目属性”中指定参数。
7、必须在机房完成实习。
《数据结构与算法》课程设计题目1、二值图像的像元分组【问题描述】二值图像中每个元素的值只能为1或0,其中1表示有效像元,0表示图像的背景。
如果一个元素在另外一个元素的上、下、左、右四个方向,称两个元素为相邻元素。
“像元分组”算法是将二值图像中处于相邻的元素进行分组标号,使得属于同一个分组的像元集合,其编号都相同。
如下图所示:分组前分组后【要求】使用“队列”来实现二值图像的像元分组,图像数据采用TXT文件形式给出,把分组结果图像输出到另外一个文件中。
【测试数据】二值图像分组.txt2、基于非递归算法的无向图连通分量的识别【问题描述】对于一个无向连通图,从图中某一顶点出发,通过多次调用深度优先搜索(DFS)算法可以找到多个连通分量。
然而图的深度优先搜索(DFS)算法一般采用递归算法来实现,鉴于二叉树遍历算法可以转换为非递归算法来实现,试编写基于DFS的非递归遍历算法的无向图的连通分量的识别程序。
【算法提示】设置一个栈结构;在遍历时,每访问一个顶点w,就将w压入栈中,然后访问w的一个未被访问的邻接顶点……;如果在遍历过程中,某顶点的所有邻接顶点都已被访问过,就从栈顶删去该顶点;然后继续访问当前栈顶元素的一个未被访问过的邻接顶点,当栈为空时,遍历操作结束。
【要求】DFS的非递归实现+连通分量的标识;采用图形绘制函数(GDI),在MFC视图中绘制出所有可能的连通分量。
【测试数据】3、软件压缩/解压缩软件Szip(Huffman算法及应用)【问题描述】利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。
但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。
在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。
试为完成此功能,写一个压缩/解压缩软件。
【基本要求】一个完整的系统应具有以下功能:(1)压缩准备。
读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。
(2)压缩。
利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。
(3)解压缩。
打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。
(4)程序使用命令行方式运行压缩命令:SZip A Test.Haf 1.doc解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf用户输入的命令不正确时,给出提示。
(5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。
【提高要求】(1)基于Windows对话框界面,可选择输入/输出文件名,有压缩进度条显示。
(2)采用不同的数据集,比较其压缩比,采用最有效的压缩方式。
(3)多个文件的压缩。
(4)试构建程序框架,使其能添加新的压缩/解压缩算法(例如书上LZW压缩算法)。
【测试数据】约40000字符左右。
示例数据.txt,80K,采用WinRar压缩后为43K;示例数据.doc,144K,采用WinRar压缩后为52K。
4、电话簿软件的实现(动态查找表算法的应用)【问题描述】在很多实际应用中,动态索引结构在文件创建或初始装入记录时生成,在系统运行过程中插入或删除记录时,为了保持较好的检索性能,索引结构本身将随之发生改变。
教材上已经介绍的动态查找数据结构包括:二叉搜索树(BST)、平衡二叉树(A VL)、红黑树(RBT)、B-树。
本题要求选取一种已经学过的动态搜索树结构,设计并实现一个手机电话薄软件。
【基本要求】一个完整的电话簿软件应具有以下功能:(1)支持复式电话簿数据的存储,数据条目不少于500条。
每个人名下可保存的信息包括:姓名、手机号码、住宅电话号码、办公电话号码、电子邮件地址、所属群组、备忘录等。
(2)支持电话簿记录的添加、删除、编辑等操作。
(3)将不同类型的人群按照同事、朋友、家人、商务伙伴等分组,支持群组记录的添加、删除、编辑等操作。
(4)支持所有电话簿记录的导入、导出操作,外部数据采用TXT格式。
(5)支持电话簿记录的各种查询操作,具体包括:①逐条翻看能显示所有的电话簿记录,支持分屏查看。
②电话号码查找输入一个电话号码(手机、住宅、办公),能将包含该号码的电话簿记录显示出来。
③人名查找输入一个人名(全名或者部分名),能将包含该姓名的电话簿记录显示出来。
④群组查找选择一种群组类型,能将属于该群组的所有电话簿记录显示出来。
(6)要求使用BST或者A VL实现动态索引结构。
【提高要求】(1)系统支持铃声库和图片库的数据存储,提供添加、删除、修改、播放等操作。
铃声库和图片库可直接使用文件目录进行管理;铃声格式可使用W A V、MP3或者WMV格式;图片格式可使用BMP、JPG等格式。
(2)电话簿记录信息支持:来电铃声、来电图片等信息,用户可通过界面编辑或者浏览某条电话簿记录的来电铃声、来电图片。
(3)人名查询支持:输入姓名的首字母查找。
(4)使用红黑树或者B-树的数据结构,来实现动态索引结构。
【测试数据】自行随机生成500~1000条电话簿数据记录。
【实现提示】(1)设计合适的电话簿数据文件格式;(2)设计合适的索引文件格式。
《数据结构与算法》课程设计报告学号:班级序号:姓名:指导教师:成绩:中国地质大学信息工程学院软件工程系2013年12 月课程设计报告格式1.需求规格说明(<五号宋体>,具体内容:问题描述,求解的问题是什么)2.总体分析与设计(1)设计思想:(<五号宋体>,具体内容:存储结构、主要的算法思想。
)(2)设计表示:(<五号宋体>,具体内容:子程序(过程或函数)的规格说明,通过调用关系图表示它们之间的调用关系。
)(3)详细设计表示:(<五号宋体>,具体内容:主要算法的框架。
)3.编码(<五号宋体>,具体内容:问题是如何解决的,编码过程中的困难与解决方法。
)4.程序及算法分析(<五号宋体>,具体内容:使用说明、程序运行结果、讨论与分析、改进设想、经验与体会、时空复杂度等。
)5.小结(<五号宋体>,具体内容:经验与体会,或需要改进的地方)6.附录(<五号宋体>,部分核心代码)【参考资料】1、Sartaj Sahni著,《数据结构、算法与应用》,机械工业出版社2、殷人昆等编著,数据结构(用面向对象方法与C++语言描述)》,清华大学出版社3、严蔚敏,吴伟民编著,《数据结构题集》,清华大学出版社4、严蔚敏,陈文博编著,《数据结构及应用算法》,清华大学出版社。