《数据结构课程设计》教学大纲2016
《数据结构》教学大纲

《数据结构》教学大纲课程名称:数据结构适用班级:2016级计算机科学与技术(专升本函授)、计算机应用技术(专科业余函授)辅导教材:《数据结构》胡学钢等编著安徽大学出版社一、本课程的地位、任务和作用《数据结构与算法》是非计算机专业本科教育的一门专业基础课,它是学习操作系统、编译原理、数据库原理、软件工程等计算机专业核心课程的基础。
本课程的主要目的是:一方面训练学生理解掌握各种基本数据结构的要领,以便能够编写出各种典型算法,另一方面,培养学生应用各种典型算法解决具体应用问题的能力。
本课程在讲述过程中将适当掌握面向对象的思想和技术,以解决C语言本身在描述和解决客观世界能力方面的不足,为后续课程和未来的工程实践打下良好的基础。
二、本课程的相关课程本课程的先前课程为:计算机文化基础、程序设计语言、离散数学。
通过它们,一方面可以使得学生理解计算机和编程的一些基本内容和概念,另一方面为学生进行实践活动提供相应的技术手段和支持。
三、本课程的基本内容及要求第一章绪论什么是数据结构基本概念和术语抽象数据类型的表示与实现算法与算法分析要求:熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系;了解抽象数据类型的定义、表示和实现方法;熟悉类C 语言的书写规范;理解算法五个要素的确切含义;掌握计算语句频度和估算算法时间复杂度的方法。
第二章线性表线性表的类型定义线性表的顺序表示和实现线性表的链式表示和实现一元多项式的表示及相加要求:线性表的逻辑结构定义、抽象数据类型定义和各种存储结构的表述方法;在线性表的两类存储结构(顺序存储和链式存储)上实现基本操作;一元多项式的抽象数据类型定义、表示及加法的实现。
第三章栈和队列栈栈的应用举例队列要求:栈和队列的结构特征;在两种存储结构上如何实现栈和队列的基本操作以及栈和队列在程序设计中的应用。
第四章串串类型定义串的表示和实现串操作应用举例要求:串的数据类型定义;串的三种存储表示:定长顺序存储结构、块链存储结构;串的各种基本操作的实现。
数据结构课程设计教学大纲

数据结构课程设计教学大纲一、课程简介《数据结构课程设计》既是软件工程专业学生的专业必修课程,也是集中性的实践教学环节之一,同时也是理解和深入掌握数据结构课程的重要环节。
二、课程目标(一)课程具体目标1.培养学生问题定义和需求分析能力,软件测试能力,使学生能够按照要求进行计算机软硬件开发项目的测试和评价。
2.掌握问题分解方法,模块化设计,能够基于计算机学科相关原理和方法选择研究路线对复杂工程问题进行分解。
3.注重答辩能力培养,文档书写,能够对采集到的实验数据进行整理、分析和解释,并能通过信息综合得出有效结论。
(二)课程目标与专业毕业要求的关系表1 本课程对专业毕业要求及其指标点的支撑(三)课程对解决复杂工程问题能力的培养在课程理论知识讲授环节,注重培养学生对数据结构课程相关知识的深入理解,使学生具备利用所学解决实际问题的能力,并通过适当的课程设计题目锻炼和检验学生解决复杂工程问题的能力,以培养学生解决复杂工程问题的能力为目标,围绕课程支撑的课程指标安排实验项目,设计实验内容,明确实验要求,指导实验实施,严格实验成果考核。
在课程考核环节,根据课程支撑的课程指标选择合适的考核方式,题目设置应完全覆盖课程支撑的课程指标,设计题目应充分考虑对学生解决复杂工程问题所需知识和能力,题目的难度和深度应能够体现复杂工程问题的特征。
总之,本课程的教学通过在理论讲授、课程考核等环节充分贯彻培养学生解决复杂工程问题能力的理念和要求,实现本课程支撑课程指标的达成。
三、教学内容及基本要求(一)教学内容课程设计题目,学生可以选择教师指定的题目,也可以结合自身兴趣拟定课程设计题目,1人1组。
具体内容包括:(1)分析题目要求,整理出数据需求与类需求;(2)设计系统架构和模块,给出合理的总体和详细设计方案;(3)代码编写与系统测试;(4)整理、撰写课程设计报告;(5)总结设计,进行答辩。
(二)基本要求课程设计的最终成果包括系统代码与课程设计报告。
《数据结构》教学大纲(理论课)

《数据结构》教学大纲(理论课)课程编号:100404B3课程名称:数据结构(Data Structure)学分:4学分总学时:72理论学时:36实验(见习)学时: 36先修课程要求:计算机基础、C语言程序设计参考教材:1.谭浩强主编,《C程序设计》(第3版),清华大学出版社,20052.严蔚敏等主编,《数据结构》(第1版),清华大学出版社,20123.曲朝阳等主编,《数据结构》(第1版),中国电力出版社,20164.李云清等主编,《数据结构(C语言版)》(第3版),人民邮电出版社,2014一、课程在培养方案中的地位、目的和任务:《数据结构》课程主要介绍和研究数据在计算机中的存储和处理方法,旨在培养学生分析数据、组织数据的能力, 使学生深入了解数据结构的逻辑思想和实现方法,及应用技术,告诉学生如何编写效率高、结构好的程序。
它是介于数学、计算机硬件和计算机软件三者之间的一门核心课程,在计算机科学中,《数据结构》不仅是一般程序设计的基础,而且对于学习计算杌专业的其他课程都是有益的。
它系统地介绍线性表、栈、队列、字符串、数组、广义表、树、二叉树、图、查找表等几种数据结构的基本概念、操作及其典型应用的例子,通过课堂教学、上机实习,使学生了解数据对象的特性,数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中如何表示和处理的能力以及培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
二、课程基本要求:1.课程理论与基本知识(1)从数据结构的逻辑结构、存储结构和数据的运算三个方面去掌握线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构。
(2)掌握在各种常用的数据结构上实现的排列和查找运算。
(3)对算法的时间和空间复杂性有一定的分析能力。
2.基本技能(1)培养学生分析问题、解决问题的能力,学会对处理的数据建立抽象数据类型,掌握数据组织的基本方法,利用抽象数据类型进行程序设计。
数据结构课程设计教学大纲

数据结构课程设计大纲编号:学时:1周一、地位、作用和目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强实践应用能力的培养。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计能力。
二、内容提要通过这次设计,要求在数据结构析逻辑特性和物理表示,数据结构的选择的应用、算法的设计及其实现等方面中深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
参考课题:1、运动会分数统计2、订票系统3、表达式翻译4、迷宫求解5、文章编辑6、joseph环7、排序算法的比较与分析8、赫夫曼编码/译码器9、纸牌游戏10、关键路径问题11、以队列实现的仿真技术预测理发馆的经营状况12、救护车调度模拟系统教师可根据教学和学生的实际情况,自行选择或添加课题。
要求:1、对系统进行功能模块分析、控制模块分析正确;2、数据结构设计要实用;3、算法简练,可读性好,功能比较全面;4、说明书、流程图要清楚;5、可采用面向过程或面向对象设计方法进行设计,建议用面向对象设计方法。
三、配套的主要仪器设备及台(套)数1、586以PC机80台2、Windows 98以上操作系统3、Visual C++6.0四、内容、要求与时间安排五、考核办法《数据结构》课程设计的最后成绩有以下几个方面组成:1、准备情况。
(10%)2、上机实验:出勤情况,学生的动手能力,创新精神,数据结构的合理性,程序运行情况,算法的可读性,上交程序存放的规范程度,课程设计过程进展检查情况,独立完成情况(不允许雷同),以及其它因素。
(50%)3、答辩(20%)4、课程设计报告:规范情况,总结的深刻程度。
(20%)成绩分优、良、中、及格和不及格五等。
说明:1.设计期间不得旷课、迟到、早退及做与设计内容无关的事。
数据结构课程教学大纲

《数据结构》教学大纲课程编号:课程名称:数据结构适用专业:软件工程学时/学分:64/4先修课程:C语言程序设计后续课程:算法分析与设计,操作系统一、课程说明《数据结构》是软件工程专业的专业基础课,也是计算机类专业的必修核心课程。
通过本课程的学习,学生能够理解数据结构的基本概念、理论,掌握常用数据结构及其操作,能够通过分析研究数据对象的特征,在软件开发过程中选择适当的逻辑结构、存储结构及相应算法,并分析算法的时间与空间复杂度,提高解决复杂工程问题的能力。
二、课程目标1.本课程可以使学生具备以下能力:(1)理解数据结构与算法的基本概念,掌握常用基本数据结构的逻辑结构、存储结构及其操作的实现,能进行算法的时间、空间复杂性分析;(2)掌握常用查找和排序算法,并能够理解不同算法的适用场景;(3)能够针对问题进行数据对象的抽象、分析、建模,并选择、构建合适的数据结构;(4)能够在软件开发过程中,针对特定需求综合应用数据结构、算法复杂性分析等知识设计算法。
2.课程目标与毕业要求关系三、教学内容与要求1.理论部分2.实验部分四、课程目标考核评价方式及标准1.成绩评定方法及课程目标达成考核评价方式(1)成绩评定方法成绩评定依据期末考试成绩、平时成绩(实验、作业、测试、课堂互动、自主学习等)进行核定。
期末考试成绩占总评成绩的60%,平时成绩占总评成绩的40%。
(2)课程目标达成考核评价方式2.课程目标与考核内容3.考核标准(1)课程考试考核与评价标准(2)实验考核标准(3)作业考核标准五、参考书目[1]李春葆. 数据结构C语言版(第2版)[M]. 北京: 清华大学出版社. 2017.[2]严蔚敏, 吴伟民. 数据结构C语言版[M]. 北京: 清华大学出版社. 2012.[3]Weiss M.Allen. 数据结构与算法分析:C语言描述(原书第2版). 北京: 机械工业出版社. 2017.[4]陈越. 数据结构(第2版)[M]. 北京: 高等教育出版社. 2016.[5](美)Bruno R.Preiss著; 胡广斌等译. 数据结构与算法: 面向对象的C++设计模式[M].北京: 电子工业出版社. 2003.[6](美)Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, et al.著; 王刚, 邹恒明, 殷建平等译. 算法导论(原书第3版)[M]. 北京: 机械工业出版社. 2013.[7]殷人昆. 数据结构: 用面向对象方法与C++语言描述(第2版)[M]. 北京: 清华大学出版社. 2016.课程负责人:专业负责人:教学院长:。
《数据结构》教学大纲

《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。
本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。
二、教学目标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. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。
数据结构(Java语言描述)-教学大纲

《数据结构》课程教学大纲一、课程基本信息课程名称:数据结构,Data Structure课程编码:B08029030总学时:48 (理论:32,上机:16 学分:3)适应专业:物联网方向课程性质:专业方向课教材:罗福强,《数据结构(Java版)》,人民邮电出版社,2016年【教材特点】该书是21世纪高等教育计算机规划教材。
推荐书目和参考资料:1、徐孝凯,《数据结构教程》,清华大学出版社,2010年8月特点:根据普通高等院校培养计算机应用型人才对数据结构课程的教学要求而编写的一本利用的Java语言进行算法描述的教材。
该书把全部内容组织成8章,前后连贯有序并相互呼应,成为一个有机的整体。
作者力求做到: 内容丰富实用,结构清晰完整,章节安排自然,叙述简明流畅,方法分析透彻,算法描述精细,举例典型规范,练习题型多样,便于教学和读者自学。
对于选做教材的班级,将无偿提供全部习题的参考解答和教材中的部分算法代码。
该书还可作为利用Java语言进行软件开发人员的参考书。
2、唐宁九,《数据结构与算法分析》、四川大学出版社、2006.8特点:是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。
该书把算法分析与有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。
3、John Lewis,Java软件结构与数据结构(第4版)、清华大学出版社、2014.4特点:《Java软件结构与数据结构(第4版)》是这本畅销书的第4版了,著名作者John Lewis(刘易斯)与Joseph Chase(蔡斯)在前几版的成功基础上,根据使用本书做教材的教师和学生的反馈,在新版中进行了大量改进,以更好地适应教学需要。
书中的修改都是建立在使用以前版本教学的基础上,为教师提供更多的机会和更好的灵活性来使用本书。
数据结构与算法(Python版)《数据结构课程设计》教学大纲

《数据结构课程设计》教学大纲课程名称:数据结构课程设计适用专业:计算机科学与技术先修课程:数据结构学分:4总学时:60一、课程简介数据结构课程设计是为数据结构课程独立开设的一门实验课程。
数据结构课程设计是让学生综合运用数据结构课程中学到的几种典型数据结构,自行实现一个较为完整的应用系统的设计与开发。
其主要目的是使学生通过系统分析、系统设计、编程调试、写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用,进一步提高分析问题和解决问题的能力,提高程序设计水平。
二、课程目标目标1:掌握数据结构基本理论及相关算法,提出具体问题的正确数据结构表述和问题的合理解决方案和设计思想,培养学生对实际问题分析和设计能力。
目标2:能够针对特定问题进行探索,在编程环境中实现该问题的程序开发,培养学生实践动手能力。
目标3:针对特定问题的算法程序,进行实验数据验证和实验结果分析,并评价解决方案的性能,培养学生测试和分析能力。
三综合实践教学内容及要求(1)前期准备阶段1.教学内容:教师给学生讲解本课程设计的题目要求;学生完成选题及前期准备工作。
2.基本要求:(1)了解题目的基本要求,完成选题工作;(2)理解处理数据的逻辑结构、存储结构和解决问题的算法描述;(3)完成所选题目的概要设计,形成完整的设计方案。
3.重点及难点:重点:数据的逻辑结构、存储结构和相关算法的分析和设计。
难点:解决问题的算法分析和设计。
4.形成的成果及课外学习要求(1)要求学生完成题目的选取;(2)要求学生完成所选题目的概要设计;(3)要求学生想成所选题目的设计方案。
(2)设计实现阶段1.教学内容:学生在编程环境中完成程序的编辑、链接、运行和调试,形成功能正确的可执行文件,完成设计任务。
2.基本要求:(1)具备程序的编辑、链接、运行和调试能力;(2)具备系统开发设计能力;(3)能够在编程环境中实现课程设计题目的程序开发。
《数据结构课程设计》教学大纲

块的算法思路,相应流
程图的绘制。
要求学生在下周上课
前完成:
1、完成实验报告“算 投影
4 法说明”部分。下次上
计算机 课一开始就提交!
2、准备资料,开始编
写代码。
编写代码: 学生依自身情况,确定本周要完成哪
些模块的代码编写,以及测试。 四 注意:不要等到所有代码写完了,一
起测试,那样很难确定问题所在。应 局部调试通过,再逐渐加入,最终联 调。
5、凡照抄、照搬者,无论来自同学、图书、网上资源,一律视其严重程度扣分。 较严重者不及格,代码和设计报告雷同者记零分。
七、推荐教材和教学参考书
教材:
《数据结构教程(第 5 版)上机实验指导》李春葆,清华大学出版社,2017 年 8 月第 1 版.
《数据结构课程设计(第 2 版)》苏仕华.北京:机械工业出版社,2010.
完成了哪些部分,按贡献大小给出排名。 3、鼓励同学之间的讨论和相互启发,但也仅限于启发思路和解决局部疑难问题的
作用,绝不允许照抄、照搬同学的代码和设计报告。 4、参考资料包括各种图书,网上资源。课程设计离不开参考资料,但是对参考资
料的使用是在阅读理解的基础上加以借鉴,仅限于启发思路和解决局部疑难问题的作 用,绝不允许照抄、照搬的行为。
可得该部分满分的 80%
可得该部分满分的 10%
可得该部分满分的 10%
可得该部分满分的 60%
可得该部分满分的 25%
可得该部分满分的 15%
(三)参考资料的使用与抄袭行为的处罚
1、对于要求独立完成的题目必须独立完成。 2、对于难度或规模大的选题,可以在征得老师同意的情况下几个学生组成小组分 工合作完成,共同提交一份设计报告。设计报告中必须清楚的体现分工情况,注明各自
《数据结构》教学大纲

《数据结构》教学大纲数据结构教学大纲一、课程介绍1.1课程名称:数据结构1.2学分:3学分1.3先修课程:计算机基础1.4课程性质:必修课程1.5学习方式:课堂讲授、实践操作、实验、课程作业二、教学目标2.1知识目标通过本课程的学习,学生应该掌握以下知识:-基本数据结构的概念和特性,包括数组、链表、栈、队列、树和图等;-常用的数据结构算法,如查找、排序、插入和删除等;-理解数据结构的时间复杂度和空间复杂度,并能进行分析和评估;-能够选择合适的数据结构和算法来解决实际问题。
2.2能力目标-能够运用所学的数据结构和算法解决实际问题;-能够分析和评估不同数据结构和算法的优劣;-具备良好的编程能力,能够实现数据结构的基本操作;-能够进行抽象思维和问题建模,将实际问题转化为数据结构的操作。
2.3态度目标-具备良好的团队合作和沟通能力,能够与他人合作解决问题;-具备批判性思维和创新精神,能够提出新的数据结构和算法。
三、教学内容3.1数据结构概述-数据结构的定义和分类;-数据结构与算法的关系;-数据结构的应用领域。
3.2线性表-线性表的定义和基本操作;-顺序表和链表的实现;-线性表的应用。
3.3栈和队列-栈和队列的定义和基本操作;-栈和队列的实现;-栈和队列的应用。
3.4树和二叉树-树和二叉树的定义和基本操作;-二叉树的遍历和线索化;-树和二叉树的应用。
3.5图-图的定义和基本操作;-图的存储结构和遍历算法;-图的应用。
3.6查找和排序-查找算法的分类和基本思想;-顺序查找和二分查找;-排序算法的分类和基本思想;-冒泡排序、插入排序和快速排序。
四、教学方法4.1讲授法:通过课堂讲授,向学生介绍数据结构的概念、特性和应用,讲解基本操作和算法的原理和实现方法。
4.2实践操作:通过编程实践和课程作业,让学生运用所学的数据结构和算法解决实际问题,加深对知识的理解和运用能力。
4.3实验:通过实验,让学生亲自操作和实验不同的数据结构,加深对数据结构和算法的理解。
《数据结构课程设计》课程教学大纲

《数据结构课程设计》课程教学大纲注:课程类别是指学科基础课/专业课/实践环节/通识公共课/公共基础课/其他;课程性质是指通识必修/通识选修/学科必修/专业必修/专业选修/实践必修/实践选修。
一、课程目标本课程是与《数据结构》相配套的实践环节。
课程通过设计并编程实现各种数据结构的基本操作、存储,以及选用算法的时间复杂度等,进一步加深理解所学理论课的内容。
通过本课程设计,使学生对数据结构的逻辑特性和物理存储;数据结构的选择和应用;算法设计及其实现等内容加深理解;学会根据实际问题选用和设计数据结构,使理论与实践相结合。
同时使学生在程序设计方法、上机操作等基本技能及科学作风方面受到比较系统和严格的训练。
课程目标: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本课程设计全部由学生自主完成,教师以答疑方式给予帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构课程设计》任务书专业:班级:指导老师:安徽大学江淮学院理工部2016年9月1日一、课程的性质、目的《数据结构》是计算机专业的专业基础课,学生通过理论学习,并在完成每章后面的一些小程序后,理解了数据结构的基本概念,掌握了一些基本的编程技术,但仅有这一方面的训练还是很不够的。
《数据结构课程设计》是在学完《数据结构》课程之后的实践教学环节,是本专业重要的技能培训之一。
设置本课程的目的是:综合运用在“数据结构"课程中学到的理论知识,使学生们在解决具体问题的过程中,能够灵活熟练地选择合适的数据结构及设计有效的算法,从而加深对常用数据结构理论知识的理解,强化学生的逻辑思维能力和动手能力,培养良好的编程习惯,掌握实用软件设计的基本方法,可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
为后续课程的学习打下坚实基础。
二、教学的基本要求通过本课程的学习,要求掌握常见数据结构的使用方法、相关算法的分析和理解,实用程序的开发技术。
1、基础知识(1)熟练掌握C程序设计方法。
(2)熟练掌握常用数据结构(堆栈、队列、链表、二叉树等)的应用和程序设计的方法。
(3)熟练掌握排序等算法的应用和程序设计方法。
2、基本技能(1)掌握阅读和分析C程序的方法。
(2)掌握设计和调式C程序的方法。
(3)掌握实用程序的开发技术。
(4)重点掌握实用程序开发中,问题分析,数据结构的设计、程序总体结构设计,用户界面设计,验证数据的组织和使用等程序设计基本技能和技巧。
3、基本要求学生应正确理解和熟练掌握常用数据结构和算法设计所需的技术,设计中要求综合运用在《数据结构》课程中所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
设计结束后要按要求写出课程设计报告。
(1)学生自愿或指定分组,每组6人左右。
(2)指导教师公布设计题目,集中介绍具体的设计任务。
(3)学生分组讨论任务、设计相应的技术方案。
(4)课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。
上机时带上源程序、数据结构教材、C语言教材。
(5)上机任务1)选择合适的数据结构,并定义数据结构的结构体;2)根据题目设计主要要求,设计出完整的算法;3)设计出主程序(main函数),使其成为完整的程序。
三、课程教学基本内容第一章一元多项式计算1、教学目标熟练掌握线性表的结构及基本操作。
2、主要内容【问题】能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加,并将结果输出。
【任务】将任意给出的n次多项式建成单链表结构,结点的结构为系数、指数、指针,然后实现多项式求和运算。
良好的用户界面,对于错误的输入,要能给出信息提示。
3、重点与难点【重点】实现单链表的基本操作,包括链表的建立、结点的删除、链表的输出等函数。
【难点】用线性链表表示多项式。
每个结点有三个域:系数、指数、指向下一项的指针,头结点中存放多项式的项数。
第二章停车场管理提高综合运用栈和队列知识,解决复杂问题的能力,以便熟练掌握栈和队列两种数据结构的实际应用。
2、主要内容【问题】设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
【任务】试为停车场编制按上述要求进行管理的模拟程序。
设n=5,输入数据为:('A',1,5),('A',2,6),('D',1,10),('A',3,7),('A',4,8),('A',5,10),('D',2,12),('D',4,20),('E',0,0)。
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,'A'表示到达;'D'表示离去,'E'表示输入结束。
3、重点与难点【重点】以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
栈以顺序结构实现,队列以链表实现。
【难点】需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。
输入数据按到达或离去的时刻排序。
栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。
第三章哈夫曼编/译码器1、教学目标提高综合运用二叉树的知识,解决复杂问题的能力,以达到熟练掌握二叉树的运算和性质。
2、主要内容【问题】利用哈夫曼编码进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这要求在发送端通过一个编码系统对待传输的数据预先编码;在接收端将传来的数据进行译码(复原)。
对于双工信道 (即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
【任务】试为这样的信息收发站写一个哈夫曼码的编/译码系统。
假定输入的正文是:"THIS PROGRAM IS MY FAVORITE",字符集和其频度如下:3、重点与难点【重点】一个完整的哈夫曼码的编/译码系统应具有以下功能:(l)I:初始化 (Initialization)。
从终端读入字符集大小n,及n个字符和m个权值,建立哈夫曼树,并将它存于文件hfmtree中。
(2)创建正文文件。
从终端读入若干字符,存入tobetrans。
(3)C:编码 (Coding)。
利用已建好的哈夫曼树(如不在内存,则从文件hfmtree中读入),对事先建立的正文文件tobetrans中的正文进行编码,然后将结果存入文件codefile中。
(4)D:译码 (Decoding)。
利用已建好的哈夫曼树将文件codefile中的代码进行译码,结果存入文件textfile中。
(5)P:输出编码文件 (Print)。
将文件codefile以紧凑格式显示在终端上,每行50个代码。
同时将此字符形式的编码文件写入文件codeprint中。
(6)T:输出哈夫曼树 (Tree printing)。
将已在内存中的哈夫曼树以直观的方式 (树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件treeprint中。
可以根据题目要求把程序划成6个模块,设计成菜单方式,每次执行一个模块后返回菜单。
注意,如果需要的字符集和权值数据是固定的,只要进行一次初始(I)化操作就可以了。
以后可以反复执行(2)建立新的正文文件、(3)编码、(4)译码、(5)(6)输出。
【难点】本程序主要用到了三个算法。
(1)哈夫曼编码在初始化(I)的过程中间,要用输入的字符和权值建立哈夫曼树并求得哈夫曼编码。
先将输入的字符和权值存放到一个结构体数组中,建立哈夫曼树,将通过计算获得的哈夫曼编码存储到另一个结构体数组中。
(2)串的匹配在译码(D)的过程中间,要对已经编码过的代码译码,可利用循环,将代码中与哈夫曼编码的长度相同的串与这个哈夫曼编码比较,如果相等就回显并存入文件。
(3)二叉树的遍历在输出哈夫曼树(T)中,因为哈夫曼树也是二叉树,所以就要利用二叉树的先序遍历将哈夫曼树输出。
第四章成绩分析系统1、教学目标熟练掌握排序算法,采用合适的数据结构在程序中实现数据的排序要求。
2、主要内容【问题】录入并保存一个班级学生的多门课程的成绩,提供多种查询功能和数据统计功能。
该学生成绩分析系统要求设置下列功能:(1)菜单驱动。
以Windows风格设计一个用户操作界面。
(2)成绩录入。
通过键盘输入每个学生的多门课程成绩,建立相应的文件input.dat。
(3)按指定的课程成绩排序。
输入指定的课程名,按指定课程的成绩进行排序,生成相应的文件并输出。
(4)按学生的平均成绩排序。
按学生的平均成绩进行排序,生成相应的文件并输出。
(5)成绩分析与统计。
统计每门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数,输出上述统计结果。
(6)按学号查询。
输入学生的学号,查询并输出该学生的各科成绩、平均成绩和总分的名次。
(7)按姓名查询。
输入学生的姓名,查询并输出该学生的各科成绩、平均成绩和总分的名次。
若有重名的学生,则要求输入学号进行查询。
【任务】试编写一个程序,完成上述功能要求。
学生成绩的有关数据如下:3、重点与难点【重点】熟悉并掌握下列常用排序的算法和特点:(l)插入排序。
(2)选择排序。
(3)分配排序。
(4)堆排序。
不同的排序,要求选择不同的排序方法。
熟悉并掌握下列常用查找的算法和特点:(l)顺序查找。
(2)对分查找。
不同的查找要求选择不同的查找方法。
【难点】堆排序方法。
四、课程教材与参考书目1、教材《数据结构课程设计》,苏仕华,机械工业出版社,2010年2、参考书[1]耿国华等编著,《数据结构—C语言描述》,西安电子科技大学出版社,2002年8月。
[2]严蔚敏,吴伟民编著,《数据结构(C语言版)》清华大学出版社,1997年4月。
[3]D. E. Knuth, the art of computer programming volume 1/fundamewfal algorithms; volume 3/sorting and searching by add sonwesley pub lishing company ,in c 1973[4] 沃思,算法+程序=数据结构,科学出版社,1985年[5] 殷人昆,数据结构(用面向对象方法与C++描述),清华大学出版社,2009年[6] 数据结构题集(C语言版),严蔚敏,清华大学出版社,2001-11五、考核要求1、考核方式、考核次数考核方式:平时表现、提交设计报告、设计作品(程序源代码)2、总成绩合成平时成绩(包括设计报告):30%设计作品:70%六、所需场地及主要设备1、所需场地计算机机房2、所需主要设备【硬件】台式计算机(CPU 3.0 GHZ以上,内存1G以上)、网络平台(上交作业)【软件】TC、VC6.0等附:课程设计报告规范课程设计报告的开头应给出题目、班级、姓名、学号和完成日期,并包括以下7个内容:1.需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能;(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。