数据结构课程设计大纲
数据结构课程教学大纲
数据结构课程教学大纲第一篇:数据结构课程教学大纲数据结构课程教学大纲一、课程基本概况课程名称:数据结构课程名称(英文): Data Structures课程编号:B09042课程总学时:60(其中,讲课48,实验12)课程学分:3课程分类:专业选修课开设学期:4适用专业:计算机网络工程本科先修课程:集合论,图论,高级语言(结构或记录,指针)后续课程:数据库,编译原理,操作系统等二、课程的性质、目的和任务数据结构是计算机专业的一门核心专业课程,是软件课程中非常重要的一门课程,在整个专业教学中占有十分重要的地位,是一门理论性非常强的课程。
通过课堂教学、课外练习和上机实习,使学生了解数据对象的特性,数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中如何表示和处理的能力以及培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
三、主要内容、重点及深度本门课程共60学时,其中理论教学48学时,实验教学12学时。
其中,理论教学部分:第一章绪论(一)目的要求了解数据结构的意义与发展过程、数据结构在计算机科学中的作用、学习本课程的目的、任务及要求。
理解数据结构的基本概念;算法设计;掌握算法的时间和空间复杂度。
(二)教学内容本章知识点:1.相关的基本概念(掌握);2.算法五大要素 (掌握);3.计算语句频度和估算算法时间复杂度的方法(掌握)。
(三)重点与难点重点:数据结构的定义;算法的描述方法。
难点:数据结构的定义;算法与程序的区别;时间复杂度及其计算。
第二章线性表(一)目的要求掌握线性表的逻辑结构;线性表的存储结构及操作的实现;理解一元多项式的表示;(二)教学内容本章知识点:1.线性表的逻辑结构(掌握);2.线性表的存储结构(掌握);3.线性表在顺序结构和链式结构上实现基本操作的方法(掌握);4.从时间和空间复杂度的角度比较线性表两种存储结构的不同特点及其适用场合(掌握)。
(三)重点与难点重点:线性表的概念;线性表的顺序存储结构、链式存储结构及其常用算法。
数据结构课程设计大纲
《数据结构课程设计》教学大纲(Data StructureCurriculum Design)制定单位:信息科学学院计算机系制定人:王瑜审核人:江效尧编写时间:2011年10月18日第一部分课程概述一、基本信息(一)课程代码(二)课程属性、学分、学时本课程属于计算机科学与技术专业的学科基础课,2学分,共30学时(三)适用对象本课程面向对象为计算机科学与技术专业的本科生(四)先修课程与知识准备先修课程:程序设计基础,数据结构二、课程简介《数据结构课程设计》是计算机科学与技术专业集中性的实践教学环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
三、教学目标《数据结构课程设计》是计算机科学与技术专业专业本科生的一门必修课程。
通过本课程学习,其目的就是要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能,并强化学生的团队分工与合作能力。
四、师资团队王瑜陈一飞五、教学资源教材:1.《数据结构(C语言版)》严蔚敏,吴伟民等编著清华大学出版社,20072.《数据结构课程设计》苏仕华编著机械工业出版社,2005.参考文献:1. 《数据结构(C语言版)》唐国民等编著清华大学出版社,2009.92. 《C语言数据结构程序设计》王开铸等编著哈尔滨工业大学出版社,2003.33. 《数据结构课程设计》滕国文编著清华大学出版社出版,2010.9.专题网站:1. /~jrs/61b/2. http://172.17.14.75实践性教学资源:竞慧东楼实验室六、教学要求1.要求教师具有计算机相关的专业背景,熟悉程序设计、编译原理、操作系统等相关课程的内容。
2.要求教师开设过《数据结构》课程,在开课之前对课程设计内容有深入的理解。
3.课程组定期进行教学研讨活动,各团队成员应该按时参加,研究教学规律,交流教学经验,探讨教学内容,反映在教学中出现的问题,群策群力,共同提高教学质量。
数据结构课程设计教学大纲
数据结构课程设计大纲编号:学时: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.设计期间不得旷课、迟到、早退及做与设计内容无关的事。
《数据结构》课程设计大纲
《数据结构》课程设计(适用于:2019级计算机科学与技术、2019级计算机科学与技术(软件工程方向)班2019级电子商务班、2019级信息安全班)一、课程设计目的《数据结构》课程设计作为独立的教学环节,是计算机相关专业集中实践性环节系列之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
其目的在于加深对数据结构基础理论和基本知识的理解,提高解决实际问题的实践能力。
调动学生的积极性和能动性,培养学生的自学能力。
二、课程设计要求1、学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。
2、课程设计按照教学要求需要两周时间完成,每天安排时间上机调试程序,在安排上机时间学生不得无故缺席。
3、本次课程设计分两个阶段进行,第一周(个人独立)完成基础部分(三选二)的课程设计,第二周进行能力提高的课程设计,以自由组合(3或2人)的方式选择一个题目完成。
三、基础部分课程设计内容(三选二)1、哈夫曼编码设计要求:本设计要求是对输入的一串电文字符(5000以上个字符)实现哈夫曼编码,再对哈夫曼编码生成的代码串进行译码,输出电文字符串。
要求设计完成如下功能:1)建立哈夫曼树并生成哈夫曼编码;2)输入电文生成哈夫曼编码文件;*3)将编码文件译码并输出。
2、排序综合设计要求:利用随机函数产生N个随机整数(50000以上)在[0,750]之间,对这些数进行多种方法进行排序。
要求设计完成如下功能:1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序)。
并把排序后的结果保存在不同的文件中;2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
3、宿舍管理查询软件设计要求:为宿舍管理人员编写一个宿舍管理查询软件,采用交互工作方式,建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种) 查询菜单要求(用二分查找实现以下操作)1)按姓名查询;2)按学号查询;3)按房号查询。
《数据结构》课程设计大纲
《数据结构课程设计》教学大纲一、基本信息二、教学目标与任务为了配合数据结构课程的教学,加强学生对数据结构算法实际应用技能的训练,进一步巩固数据结构的基本概念和理论,并能针对实际的问题选择或设计合理的存储结构,在此基础上进一步完成较为综合、完整和高效的数据处理算法的设计,从而提高学生实际分析问题和解决问题的能力。
由指导教师给出一定数量的题目(允许少部分超出大纲的内容),或学生自选题目(自选题目须经指导教师的认可),在指导教师的指导下完成分析和设计。
三、基本要求学生在掌握教学大纲要求的知识基础上,完成对应教学知识点的相关设计任务,加深对课堂教学知识的深入理解,并通过课程设计掌握分析问题、灵活选择或设计相应数据结构和算法的基本技能。
基本教学要求:1.原则上每人一题;对较复杂的题目要求对学生进行分组,本组共同完成。
2.对所做题目进行认真分析,设计解决方案。
3.编写调试代码,最终能运行成功。
4.编写“课程设计报告”。
5.尽可能使界面友好、直观、易操作。
6.源程序要求逻辑清楚并有适当的注释,使程序容易阅读。
为保障课程设计任务的正常执行,需具备以下条件:(1)设计资料设计资料由指导教师给定的《课程设计任务书》和一定数量的参考文献两部分构成。
(2)物资准备1.硬件方面:由信息工程学院软件中心实验室提供计算机,保证一人一机和一定数量的上机时间。
2.软件方面:由信息工程学院软件中心实验室准备学生机的软件环境,安装visual c++或相关开发工具;学生设计成果的电子文档在软件中心实验室保存。
四、主要内容及质量标准课程设计的主要内容以理论教学大纳要求掌握的知识点作为基础,指导教师可适当扩展,以达到对相关知识点的深入理解和合理应用为目标。
完成时间为两周(在理论学习完毕之后),课程设计注重过程考核和设计成果的检查。
五、指导方式动员:在课程教学的最后一周分组和选题:17周周一定期答疑指导:原则上答疑指导时间不少于12学时阶段检查:每周周四检查学生的进展情况答辩与验收:18周周四、周五完成现场答辩和设计成果的验收工作。
数据结构与算法(Python版)《数据结构课程设计》教学大纲
《数据结构课程设计》教学大纲课程名称:数据结构课程设计适用专业:计算机科学与技术先修课程:数据结构学分:4总学时:60一、课程简介数据结构课程设计是为数据结构课程独立开设的一门实验课程。
数据结构课程设计是让学生综合运用数据结构课程中学到的几种典型数据结构,自行实现一个较为完整的应用系统的设计与开发。
其主要目的是使学生通过系统分析、系统设计、编程调试、写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用,进一步提高分析问题和解决问题的能力,提高程序设计水平。
二、课程目标目标1:掌握数据结构基本理论及相关算法,提出具体问题的正确数据结构表述和问题的合理解决方案和设计思想,培养学生对实际问题分析和设计能力。
目标2:能够针对特定问题进行探索,在编程环境中实现该问题的程序开发,培养学生实践动手能力。
目标3:针对特定问题的算法程序,进行实验数据验证和实验结果分析,并评价解决方案的性能,培养学生测试和分析能力。
三综合实践教学内容及要求(1)前期准备阶段1.教学内容:教师给学生讲解本课程设计的题目要求;学生完成选题及前期准备工作。
2.基本要求:(1)了解题目的基本要求,完成选题工作;(2)理解处理数据的逻辑结构、存储结构和解决问题的算法描述;(3)完成所选题目的概要设计,形成完整的设计方案。
3.重点及难点:重点:数据的逻辑结构、存储结构和相关算法的分析和设计。
难点:解决问题的算法分析和设计。
4.形成的成果及课外学习要求(1)要求学生完成题目的选取;(2)要求学生完成所选题目的概要设计;(3)要求学生想成所选题目的设计方案。
(2)设计实现阶段1.教学内容:学生在编程环境中完成程序的编辑、链接、运行和调试,形成功能正确的可执行文件,完成设计任务。
2.基本要求:(1)具备程序的编辑、链接、运行和调试能力;(2)具备系统开发设计能力;(3)能够在编程环境中实现课程设计题目的程序开发。
数据结构教学大纲doc
数据结构教学大纲doc数据结构教学大纲引言:数据结构是计算机科学中的基础概念之一,它涉及到如何组织和存储数据以及如何有效地访问和操作这些数据。
在计算机科学的教学中,数据结构的学习是非常重要的,它为学生提供了解决实际问题的基本工具。
本文将探讨数据结构教学的内容和方法,以及如何设计一份合适的数据结构教学大纲。
一、数据结构的基础知识1.1 数据结构的定义和分类数据结构是指一组数据元素及其之间的关系,它可以分为线性结构、树形结构和图形结构等。
学生需要了解不同类型的数据结构以及它们的特点和应用场景。
1.2 数据结构的存储方式数据结构可以通过不同的存储方式来实现,比如数组、链表、栈和队列等。
学生需要了解每种存储方式的优缺点,以及如何选择适合的存储方式。
1.3 常用的数据结构操作学生需要学习如何对数据结构进行插入、删除、查找和排序等操作。
这些操作是解决实际问题的基本操作,学生需要熟练掌握它们。
二、数据结构的高级知识2.1 树和图的基本概念树和图是数据结构中的重要概念,学生需要了解它们的定义和基本性质。
同时,学生还需要学习树和图的遍历算法和应用。
2.2 哈希表和散列函数哈希表是一种高效的数据结构,它可以快速地查找和插入数据。
学生需要了解哈希表的原理和实现方式,以及如何设计合适的散列函数。
2.3 图的算法图的算法是数据结构中的重点内容,学生需要学习最短路径算法、最小生成树算法和拓扑排序等。
这些算法在实际问题中有着广泛的应用。
三、数据结构的应用3.1 数据库系统数据库系统是数据结构的重要应用之一,学生需要了解数据库的基本概念和操作方式。
同时,学生还需要学习如何设计合适的数据结构来支持数据库的高效操作。
3.2 图形图像处理图形图像处理是另一个重要的数据结构应用领域,学生需要了解如何使用数据结构来表示和处理图形图像数据。
同时,学生还需要学习图形图像处理的基本算法和技术。
3.3 算法设计与分析数据结构和算法是密切相关的,学生需要学习如何设计和分析高效的算法。
数据结构课程教学大纲
数据结构课程教学大纲数据结构课程教学大纲引言:数据结构是计算机科学中的重要基础课程,旨在培养学生对数据的组织、存储和管理的能力。
本文将探讨数据结构课程的教学大纲,包括课程目标、内容安排和教学方法等方面。
一、课程目标数据结构课程的主要目标是帮助学生掌握数据结构的基本概念、原理和应用,培养他们解决实际问题时的数据处理能力。
具体目标如下:1. 理解数据结构的基本概念:包括线性结构、树形结构、图形结构等,以及它们之间的关系和特点。
2. 掌握常见数据结构的实现方法:包括数组、链表、栈、队列、树、图等,了解它们的特点和适用场景。
3. 学会分析和评估数据结构的性能:包括时间复杂度和空间复杂度的计算,了解不同数据结构在不同场景下的效率优劣。
4. 培养解决实际问题的能力:通过实际案例和编程实践,培养学生运用数据结构解决实际问题的思维和方法。
二、课程内容安排数据结构课程的内容应包括基本概念、常见数据结构和算法分析等方面。
以下是一个典型的课程内容安排:1. 基本概念介绍:- 数据结构的定义和分类- 数据结构的基本操作:插入、删除、查找等- 算法的基本概念和复杂度分析方法2. 线性结构:- 数组:定义、初始化、插入、删除等操作- 链表:单链表、双链表、循环链表的定义和操作- 栈和队列:定义、实现和应用3. 树形结构:- 二叉树:定义、遍历(前序、中序、后序)、查找、插入和删除等操作 - 堆和优先队列:定义、实现和应用- 平衡二叉树:AVL树、红黑树的定义和操作4. 图形结构:- 图的定义和表示方法- 图的遍历:深度优先搜索和广度优先搜索- 最短路径算法:Dijkstra算法、Floyd-Warshall算法等5. 高级数据结构:- 哈希表:定义、实现和应用- B树和B+树:定义、插入和删除等操作- 图的高级算法:拓扑排序、最小生成树等6. 算法分析:- 时间复杂度和空间复杂度的计算方法- 算法效率的评估和比较- 算法优化和改进方法的介绍三、教学方法为了提高数据结构课程的教学效果,教师可以采用多种教学方法,如下所示:1. 理论讲解:通过课堂讲解和示意图,向学生介绍数据结构的基本概念和实现方法。
《数据结构》课程教学大纲
《数据结构》课程教学大纲一、课程概述数据结构是计算机科学与技术专业的重要基础课程之一。
本课程旨在介绍数据结构的基本概念、常用数据结构及其应用。
通过本课程的学习,学生应具备设计和实现基本数据结构的能力,能够分析并解决实际问题中的数据组织与处理需求。
二、教学目标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.能够根据具体的问题,选用合适的数据结构设计解决方案,并编程实现;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)。
数据结构课程设计大纲【课程设计性质】《数据结构》是计算机科学与技术的一门核心专业课程,与计算机各门课程之间都有密切联系,具有独特的承上启下的重要位置。
同时《数据结构》又是一门实践性极强的技术基础课,为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。
《数据结构》课程设计是我校计算机科学与技术学科中计算机应用专业教学大纲要求的重要实践性环节之一,是学习《数据结构》课程时同步进行的全面综合练习。
【课程设计目标】数据结构课程设计就是要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能,并强化学生的团队分工与合作能力。
具体教学目标如下:⑴使学生进一步理解和掌握所学的各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
⑵使学生初步掌握软件开发过程的问题分析、设计、编码、测试等基本方法和基本技能。
⑶使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
⑷使学生能用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
【课程设计要求】⑴巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。
⑵培养学生自学参考书籍,查阅手册、图表和文献资料的能力。
⑶通过实际课程设计,初步掌握简单软件的分析方法和设计方法。
⑷了解与课程有关的工程技术规范,能正确解释和分析实验结果。
【课程设计主要内容】⑴问题分析和任务定义。
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?限制条件是什么?⑵逻辑设计。
对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图。
⑶物理设计。
定义相应的存储结构并写出各函数的伪代码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架。
⑷程序编码。
把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
⑸程序调试与测试。
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。
⑹结果分析。
程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。
算法的时间、空间复杂性分析。
⑺编写课程设计报告。
【课程设计报告规范】课程设计报告要求规范书写。
应当包括如下八个部分:⑴问题描述:描述要求编程解决的问题。
⑵基本要求:给出程序要达到的具体的要求。
⑶测试数据:设计测试数据,或具体给出测试数据。
要求测试数据能全面地测试所设计程序的功能。
⑷算法思想:描述解决相应问题算法的设计思想。
⑸模块划分:描述所设计程序的各个模块(即函数)功能。
⑹数据结构:给出所使用的基本抽象数据类型,所定义的具体问题的数据类型,以及新定义的抽象数据类型。
⑺源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。
⑻测试情况:给出程序的测试情况,并分析运行结果。
【课程设计实施方式】2-3人组合为一组,每组一题,安排在《数据结构》课程开课学期布置题目,期末两周时间内完成并提交。
【设计题目和要求】一、运动会分数统计(1)系统任务参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)(2)功能要求1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分;3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;5)可以按项目编号查询取得前三或前五名的学校;6)数据存入文件并能随时查询;7)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。
(3)输出形式有合理的提示,各学校分数为整形。
(4)界面要求有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
(5)存储结构学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。
(6)测试数据要求使用全部合法数据、整体非法数据、局部非法数据进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明。
二、飞机订票系统(1)系统任务通过此系统可以实现如下功能:1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)退票:可退票,退票后修改相关数据文件;5)客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号。
6)修改航班信息:当航班信息改变可以修改航班数据文件(2)功能要求根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;三、文章编辑(1)系统任务输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;(2)功能要求1)分别统计出其中英文字母数和空格数及整篇文章总字数;2)统计某一字符串在文章中出现的次数,并输出该次数;3)删除某一子串,并将后面的字符前移。
4)存储结构使用线性表,分别用几个子函数实现相应的功能;5)输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
(3)输出形式1)分行输出用户输入的各行字符;2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";3)输出删除某一字符串后的文章。
四、宿舍管理查询软件(1)系统任务为宿舍管理人员编写一个宿舍管理查询软件;(2)功能要求1)采用交互工作方式;2)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种);3)查询菜单: (用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询4)打印查询结果(可以连续操作)五、校园导航问题(1)系统任务设计审计学院校园平面图,有两个校区,在这些校区内选10个以上的建筑物、办公室、宿舍等地名。
以图中顶点表示校园内各地名,存放地名名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
(2)功能要求1)为来访客人提供图中任意地名相关信息的查询。
2)为来访客人提供任意地名的问路查询,即查询任意两个地名之间的一条最短路径。
(3)实现提示一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。
顶点和边均含有相关信息。
六、图书借阅管理系统(1)系统任务设计一个计算机管理系统完成图书管理;(2)功能要求1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)采编入库:新购一种书,确定书号后,登记到图书帐目中,如果此书已有,则只将库存量增加;4)借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;5)归还:注销对借阅者的登记,改变该书的现存量。
七、简单的职工管理系统(1)系统任务对单位的职工进行管理,包括插入、删除、查找、排序等功能。
(2)功能要求1)职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
2)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中;3)删除一名职工:从职工管理文件中删除一名职工对象;4)查询:从职工管理文件中查询符合某些条件的职工;5)修改:检索某个职工对象,对其某些属性进行修改;6)排序:按某种需要对职工对象文件进行排序;(3)实现提示1)职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换;2)由键盘输入职工对象,以文件方式保存。
程序执行时先将文件读入内存;3)对职工对象中的"姓名"按字典顺序进行排序;4)对排序后的职工对象进行增、删、查询、修改、排序等操作。
八、通讯录的制作(1)系统任务用双向链表作数据结构,编写一个通讯录管理系统;(2)功能要求本系统应完成一下几方面的功能:1)输入信息,每条信息至少包含:姓名、街道、城市、邮编、国家和电话;2)显示信息;3)查找以姓名作为关键字;4)删除信息;5)保存信息;6)作为一个完整的系统,应具有友好的界面和较强的容错能力九、哈夫曼编码/译码器(1)系统任务设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。
(2)功能要求1)将权值数据存放在数据文件中,文件名为data.txt,位于执行程序的当前目录中;2)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;3)编码:利用建好的哈夫曼树生成哈夫曼编码;4)输出编码;5)设字符集及频度如下表(同学也可以自己设置字符和频度):字符空格 A B C D E F G H I J K L M频度186 64 13 22 32 103 21 15 47 57 1 5 32 20字符N O P Q R S T U V W X Y Z频度57 63 15 1 48 51 80 23 8 18 1 16 1 6)译码功能;7)显示哈夫曼树;8)界面设计的优化。
十、散列表的设计与实现(1)系统任务设计散列表实现电话号码查找系统。
(2)功能要求1)设每个记录有下列数据项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录;6)设计不同的散列函数,比较冲突率;7)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。