数据结构课程设计指导书

合集下载

数据结构课程设计指导书

数据结构课程设计指导书

数据结构课程设计指导一、课程设计要求课程设计是数据结构课程的一个综合实践练习,是有别于课程实验的一个独立实践教学环节。

课程设计一般在课程结束后进行,教学时数为1周。

具体要求如下:1、结合实际问题进一步理解和深化课程理论知识,做到理论与实际相结合。

2、能对实际问题进行分析和抽象,并进行数据结构设计和算法设计,具有初步的分析问题和解决问题的能力。

3、了解软件工程的理论与方法,初步掌握软件开发过程中的需求分析、系统设计、编码、测试等基本方法和技能。

4、进一步强化编程训练,提高程序设计能力。

5、设计内容要有一定的深度和难度,达到一定工作量,代码量不低于500行。

二、课程设计内容课程设计的主要工作如下:1、问题定义与需求分析:根据设计题目的要求,对问题进行分析,确定系统的功能需求和性能需求。

2、数据结构与算法设计:对问题描述中涉及的数据对象定义相应的数据结构,包括逻辑结构、存储定义和主要操作。

对主要算法要进行时间和空间复杂度分析。

3、概要设计:采用面向对象方法设计软件结构,定义类及类之间的关系。

要求系统结构合理、易于实现。

4、详细设计:对数据结构和基本操作做进一步的求精,写出数据存储定义,用程序流程图或伪码对算法进行描述。

5、编码与测试:用C++编程实现系统,并设计测试用例对系统进行测试,修改程序中的错误,形成格式和风格良好的源程序清单。

6、设计结果分析:对系统应用效果进行分析,评价系统的先进性、实际应用价值及在在的问题。

7、撰写课程设计报告。

三、课程设计考核课程设计考核内容包括设计作品和设计报告两个部分。

设计作品包括可运行的源程序(刻录成光盘),系统使用说明,主要程序代码(打印附在课程报告内)。

课程设计报告主要报告系统分析、设计和实现过程,内容如下:1、问题定义及设计要求;2、主要设计内容:详细报告课程设计中所做的主要工作,包括系统分析、概要设计、数据结构设计、算法设计及模块设计和编程及测试等。

3、总结与体会:写出本次课程设计的主要创新点及存在的问题。

《数据结构》课程设计指导书

《数据结构》课程设计指导书

《数据结构》课程设计指导书一、课程教学目标用所学的数据结构有关理论知识,结合实际问题设计相关算法及程序达到理论与实践相结合的目的(该课程设计为必修课,2学分)。

二、设计目的1、掌握如何利用合适的数据结构和相应的算法来解决实际问题的方法,巩固和掌握《数据结构》这门课的理论知识和实践技能。

2、进一步加强学生的程序设计能力的培养,增强分析问题、解决问题的能力,掌握软件设计思想。

三、教学基本内容及学时安排1、设计内容(1)一元多项式的表示及其运算(要求:包括相加、相减、相乘等运算);(2)集合的表示与运算;(3)航空客运订票系统;(4)马踏棋盘问题(要求,设计算法为非递归算法);(5)算术表达式求值问题;(6)迷宫问题(要求:设计算法为非递归算法);(7)哈夫曼编/译码器;(8)校园导游咨询;(9)图的遍历、最小生成树、拓扑排序、关键路径、最短路径等内容;(10)学生成绩管理系统等;(要求:结合查找、排序思想)说明:从以上内容中任选一个或多个设计内容进行设计,或自选设计题目,但难度应适中,须经指导教师同意。

2、设计要求:在TC或VC环境下进行设计。

四、重要教学环节1、步骤选题----安案设计----详细设计----上机调试----分析结果----写出设计报告2、指导答疑与相关指导教师进行协商。

五、设计进程及要求1、第一周周一进行选题2、第一周周二至周三进行需求分析与概要设计2、第一周周四至第二周周三详细设计并上机调试3、第二周周四写出课程设计说明书并上交4、第二周周五答辩要求:在上机期间不准无故缺勤,有事须向指导教师请假。

六、设计说明书的撰写内容和要求1、说明书的撰写内容:设计题目、设计问题描述、设计方案与概要设计、详细设计、系统运行说明、测试结果、总结分析(包括此系统的优缺点及可进一步完善的功能)、附录(源程序文件清单)。

(格式见附录三)2、要求:图表规范、语言准确、流畅、内容充实,字数5000字左右(包括图表、附录不算)。

数据结构课程设计指导书

数据结构课程设计指导书

一、课程设计的基本任务数据结构是一门涉及多门课程的课程,难度较大,需要较好的C语言的程序设计和调试能力,如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。

《数据结构》课程设计是计算机科学与技术专业的主要实践性教学环节。

在进行了专业基础课和《数据结构》课程的基础上,设计一个实际的应用软件,初步软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为毕业设计和以后的工程实践打下良好的基础。

二、课程设计的基本要求课程设计按照教学要求需要一周时间完成,总共至少要上机调试程序10小时。

对每个题目要有需求分析,在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。

给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。

对有些题目提出算法改进方案,比较不同算法的优缺点。

如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法;2 对每个题目要有相应的源程序(可以是一组源程序,即详细设计部分):源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

程序能够运行,要有基本的容错功能。

尽量避免出现操作错误时出现死循环;3 最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。

1、能力培养要求①巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力。

②培养学生选用参考书,查阅手册及文献资料的能力。

培养独立思考,深入研究,分析问题、解决问题的能力。

数据结构课程设计指导书

数据结构课程设计指导书

数据结构课程设计指导书迷宫求解1.设计目的仅仅认识到栈是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解栈的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方法。

2、问题描述迷宫问题是取自心理学的一个古典实验。

在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。

盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。

对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。

老鼠经过多次试验最终学会走通迷宫的路线。

设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。

图A3.设计要求要求设计程序输出如下:(1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏幕上显示出来;(2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。

(3)用一种标志(如数字8)在迷宫中标出该条通路;(4)在屏幕上输出迷宫和通路;(5)上述功能可用菜单选择。

顺序栈的类型定义如下:# define StackSize 100typedef char datatype;typedef struct {datatype data[stacksize]; int top; }seqstack; seqstack *S;设S是SeqStack类型的指针变量。

若栈底位置在向量的低端,即s–>data[0]是栈底元素,那么栈顶指针s–>top是正向增加的,即进栈时需将s–>top加1,退栈时需将s–>top 减1。

因此,s–>top<0表示空栈,s–>top =stacksize-1表示栈满。

当栈满时再做进栈运算必定产生空间溢出,简称“上溢”;当栈空时再做退栈运算也将产生溢出,简称“下溢”。

数据结构课程设计指导书

数据结构课程设计指导书

数据结构课程设计指导书一、设计方法本次设计提供一次实际环境,使学生对数据结构有进一步的了解。

设计环境和开发工具操作系统:windows2000 (或更高版本)。

开发工具:Turboc二、设计任务1、链表操作①设计目的(1)掌握线性链表的建立.(2)掌握线性链表的基本操作.②设计内容和要求(1)利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。

(2)实现两个链表的合并a)建立两个链表A和B,链表元素个数分别为m和n个.b)假设元素分别为(x1,x2,…x m),和(y1,y2,…y n)。

把它们合并成一个线形表C,使得:当m>=n时,C=x1,y1,x2,y2,…x n,y n,…,x m当n〉m时,C=y1,x1,y2,x2,…y m,x m,…,y n输出线形表Cc)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。

2、joseph环①设计目的检验对链表结构及算法的掌握程度。

②设计内容和要求编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止.设计一个程序来求出出列顺序.要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号.测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?要求:输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表.输出形式:建立一个输出函数,将正确的输出序列3 、排序算法比较①设计目的1.掌握各种排序的基本思想。

《数据结构课程设计》指导书

《数据结构课程设计》指导书

《数据结构》课程设计指导书沈阳理工大学.信息学院2013.11.1一.目的与意义软件设计能力对计算机专业的学生是很重要。

通过数据结构的学习,使学生对软件编程能力有一定的提高。

数据结构课程设计是锻炼学生在进一步掌握模块化、结构化程序设计的方法的同时,培养学生运用已学知识分析问题、解决问题及编写实用程序的能力,通过对线性化、层次化、网络化数据结构的了解进一步掌握自然数据的结构方式及组织方式,让学生深入体会存储在计算机中的数据及程序中如何运用数据实现编程。

主要目的如下:1.通过本课程设计使学生对面向对象的设计过程有初的认识,并对面向对象的高能语言的学习打下基础,2.通过不同类型的程序设计使学生进一步掌握数据的几种不同的组织和存储方式,为高级编程做准备,3.为专业课的深入学习和毕业设计打基础二.任务和要求分析每一组题目,按要求完成相应的题目:1.题目参照附录中《数据结构课程设计》题目选题。

2. 要求:1)对相应的题目进行算法设计2)编写源代码3)上机调试4)显示调试结果5)写出实验总结3.课程设计说明书设计完成后,将自己选定的题目按上述要求完成课程设计说明书。

课程设计说明书内容包含:题目、要求、初步设计(可以是流程图、功能模块图)、详细设计、程序代码、测试数据、运行结果、遇到的问题及总结几部分。

三.进度安排设计总学时为2周第一周:查阅资料、小组讨论、进行模块划分写出分析报告,画N-S结构化框图,编写程序清单,上机调试.第二周周四、五:验收(计算机机房),并将课程设计报告交上来.四.考核标准与成绩评定方式成绩评定有如下几项参考:1.初步设计内容的考核:是否有查阅资料能力?是否有设计思想?2.程序编码能力调试能力的考核:程序是否清晰、易读?在技算计上是否可独立完成程序的调试,是否熟练?3.说明书质量的考核:设计结构是否合理?叙述是否正确?方案是否可行?4.答辩:设计结果的调试能力,对自己设计是否熟练?5.出勤率极平时表现的考核:出勤超过2次不到者成绩为不及格。

数据结构课程设计

数据结构课程设计

《数据结构》课程设计实践指导书一、实践的目的和任务《数据结构》课程设计是计算机科学技术专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。

开设本课程设计实践的主要目的就是要达到理论与实际应用相结合,提高学生的动手能力,完成计算机应用能力的培养;主要任务是通过对给定问题的求解,使学生在运用《数据结构》、程序设计以及其它所学课程中的各种基本技术和理论,在建立问题模型、构造求解算法、设计数据结构、编程及上机调试等方面得到全面的锻炼,从而能更深刻地理解《数据结构》的精髓,为后续软件课程的学习及软件设计能力的提高奠定良好的基础。

二、实践的内容和要求(一)实践内容实践内容为数据结构课程完成后,运用《数据结构》、程序设计以及其它所学课程中的知识和技术来解决实际的问题。

在解决实际应用性问题时,按照计算机解决问题的步骤进行以下几个方面的工作:采用简明、严格的问题描述,建立模型,设计求解方法,用计算机实现求解方法,最后进行测试和文档制作。

1、建立模型许多问题的最初描述既不精确又不简练,还有一些问题不可能简单而精确地用计算机可求解的形式来描述,即使有些可用计算机求解的问题,也需要在很大范围内确定问题的参数,而那些合理的参数值只有通过实验才能确定。

因此,要用计算机解决问题,必须首先要以简明、严格的方式将问题描述清楚。

数学或其它科学中的几乎所有分支都可作为某一类具体问题的抽象模型。

例如,在涉及到若干对象及其相互间关系的问题时所用的数学模型为图论;数值计算问题中常用的数学模型为线性方程组(用于求解电路的电流强度或结构中的应力)或微分方程(用于预报人口增长情况或化学反应速度等);在符号与文本处理问题时常用字符串及形式语法作为模型(如编译系统)。

《数据结构》课程中所介绍的各种结构均可作为一种模型。

2、构造算法对问题建立了适当的数学模型后,就可以依据这一模型求解。

最初的目标是给出一个算法形式的解法,这是设计的核心部分。

《数据结构课程设计方案》指导书

《数据结构课程设计方案》指导书

《数据结构课程设计》指导书一、实习目的数据结构课程设计是一项综合性设计活动,要求在教师的指导下,利用本课程内的以及到目前为止所学到的有关知识和技术解决一些不太复杂但却是综合性的问题。

从规模来说,课程设计是在平时作业的基础上进一步扩大的大作业。

在设计中,要求学生要全面考虑相互联系的各个方面及问题。

通过课程设计,使学生对整个课程的知识体系有较深入的理解,在运用本课程的知识解决实际问题方面得到锻炼,对锻炼学生的实践能力以及运用本课程的知识、方法解决更为复杂的实际问题有较好的启发和指导作用,从而为后续课程的学习、毕业设计环节以及将来的实际工作打好坚实的基础。

通过对给定问题的求解,使学生在运用《数据结构》、程序设计以及迄今为止所学课程中的各种基本技术和理论,在建立问题模型、构造求解算法、设计数据结构、编程及上机调试等方面得到全面的锻炼,从而能更深刻地理解《数据结构》的精髓,为后续软件课程的学习及软件设计能力的提高奠定良好的基础。

二、数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。

有问题及时主动通过各种方式与教师联系沟通。

2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。

3.课程设计按照教案要求需要两周时间完成(2周共十天)。

三、实习基本内容本次课程设计完成如下模块(共23个模块,学生可以在其中至少挑选5-6个功能块完成,其中8、9、10、13在做5个以下不算数但已经做了5个以上算数)1 【校园导游程序】问题描述:用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

要求能够回答有关景点介绍、游览路径等问题。

基本要求:查询各景点的相关信息;查询图中任意两个景点间的最短路径;查询图中任意两个景点间的所有路径;增加、删除、更新有关景点和道路的信息。

数据结构课程设计指导书(2012)

数据结构课程设计指导书(2012)

《数据结构》课程设计指导书一、课程设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

课程设计是加强学生实践能力的一个强有力手段。

本课程设计的目的就是要达到理论与实际应用相结合,使学生深化理解书本知识,获取上机实践经验,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养软件工作者所需的动手能力、独立解决问题的能力。

该课程设计侧重软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,以至一整套软件工作规范的训练和科学作风的培养。

通过该课程设计的操作与实践,使学生真正掌握数据结构相关算法的实现及应用方法,在一定程度上提高使用数据结构相关算法的综合设计能力,具体掌握的基本能力如下:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

二、课程设计要求学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课程设计的要求。

通过设计一个完整的程序,使学生掌握数据结构的应用,算法的编写。

要求如下:1.做好上机准备:要充分认识课程设计对自己的重要性,认真做好设计前的各项准备工作。

每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

2.既要虚心接受老师的指导,又要充分发挥主观能动性。

结合课题,独立思考,努力钻研,勤于实践,勇于创新。

充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。

3.独立思考,独立完成:课程设计中各项任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。

(完整版)《数据结构课程设计》指导书

(完整版)《数据结构课程设计》指导书

《数据结构课程设计》指导书一、实习目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。

通过对给定问题的求解,使学生在运用《数据结构》、程序设计以及迄今为止所学课程中的各种基本技术和理论,在建立问题模型、构造求解算法、设计数据结构、编程及上机调试等方面得到全面的锻炼,从而能更深刻地理解《数据结构》的精髓,为后续软件课程的学习及软件设计能力的提高奠定良好的基础。

二、数据结构课程设计要求通过这次设计,要求在数据结构析逻辑特性和物理表示,数据结构的选择的应用、算法的设计及其实现等方面中深对课程基本内容的理解。

同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

学生必须仔细阅读《数据结构》课程设计指导书,认真主动完成课设的要求。

有问题及时主动通过各种方式与教师联系沟通。

学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报.课程设计按照教学要求需要一周时间完成(1周共五天).三、实习基本内容本次课程设计完成如下模块(共5个模块,学生可以在其中至少挑选3—4个功能块完成)1.校园导游程序2.员工管理系统或者订票系统3。

哈夫曼编/译码器或者拓扑排序4。

八皇后问或者迷宫问题求解5.停车场管理或者修道士野人问题若学生对课题表以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明.四、上交相关内容要求上交成果的内容必须由以下四个部分组成,缺一不可1.上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2.上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;3.课程设计报告:按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:需求分析:(2)在该部分中叙述,每个模块的功能要求(3)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义.(4)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现).源程序要按照写程序的规则来编写。

数据结构课程设计指导书( 第二版)

数据结构课程设计指导书( 第二版)

《数据结构与算法课程设计指导书》第2版计算机科学与信息工程学院2011-05总体说明《数据结构与算法》课程设计为期两周,按2010版本科教学计划,安排在每学期的17、18周进行。

课程设计进度安排如下:1、第一周的第一天:小组布置设计题目;说明进度安排。

2、第一周的第二天:小组审题,查阅资料,进行设计前的必要资料准备。

3、第一周的第三天、第四天、第五天:程序编写、上机调试4、第二周的第一天至第三天:上机调试程序、结果分析。

5、第二周的第四天:撰写设计报告。

6、第二周的第五天:设计答辩及成绩评定。

课程设计中,每个学生必须选择参加一个题目组,共同完成课程设计任务书说明的任务,题目组人数不得超过课程设计任务书中的限定人数。

每组自行推选一个小组长,负责整个题目组的协调和合作。

课程设计中,每个学生必须负责完成题目的一个部分,并和其他组员讨论协作,共同完成任务书规定的任务的设计、实现和调试。

每个学生必须独立完成自己的课程设计说明书,说明书中除把整个项目作为背景,描述整体设计思想外,要重点介绍自己负责设计实现的部分,介绍自己的设计思路、实现过程、问题处理和收获新得。

考核办法如下:考勤20% ;课程设计说明书50%;答辩30% 。

课程设计结束后,每个学生必须提交书面的课程设计说明书和电子版。

每个小组以小组为单位提交课程设计说明书(书面版和电子版)、最终的可执行程序的全部代码(包括测试数据)。

版本:第二版制定人:孙高飞制定时间:2011-3-15计算机科学与信息工程学院制计算机科学与信息工程学院制《数据结构》课程设计任务书计算机科学与信息工程学院制《数据结构》课程设计任务书计算机科学与信息工程学院制计算机科学与信息工程学院制。

《数据结构》课程设计指导书

《数据结构》课程设计指导书

《数据结构》课程设计指导书一、课程设计的目的课程设计的目的是培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。

巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的学习作风。

为今后学习其他计算机课程打下基础。

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高学生的编程序能力和创新意识。

二、课程设计的要求在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过算法的设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的课程设计与程序分析报告。

前期准备工作完备与否直接影响到后序上机调试工作的效率。

三、课程设计的学生分组情况每组两至三人,共同研究、共同讨论,可以共同编写算法,但必须各自独立完成各自的程序。

四、课程设计的任务时间安排课程设计教学安排共16课时,四次上机,每次4课时。

课程设计任务安排如下:1)课程设计前:将各项任务及问题进行讲解、分析。

学生对任务进行讨论、研究与分析,初步设计出算法。

2)设计出详细算法,并上机调试程序。

3)写出课程设计报告并在课程结束后及时提交课程设计报告电子版。

附录数据结构课程设计题目1.产品进销存管理系统(限1 人完成)问题描述:针对某一种行业的库房的产品进销存情况进行管理。

基本要求:1.采用一定的存储结构对库房的货品及其数量进行分类管理;2.可以进行产品类的添加、产品的添加、产品数量的添加;3.能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;2.飞机订票系统(限1 人完成)任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

数据结构课程设计指导书

数据结构课程设计指导书
while(count!=d)
{count++;
q=p;
p=p->next;ቤተ መጻሕፍቲ ባይዱ
if(p->data==NULL)
{q=p;p=q->next;}
}
printf("%d",p->data);
if(p!=q)
{q->next=p->next;
free(p);
p=q->next;}
else
{
free(p);
/*建立一个无头结点的循环单链表*/
p=malloc(sizeof(LNode));
p->data=1;
p->next=p;
for(i=n;i>1;i--)
{q=malloc(sizeof(LNode));
q->data=i;
q->next=p->next;
p->next=q;
}
/*查找报数的起始结点*/
【基本要求】
(1)设计本校的校园平面图,所含景点不少于6个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。可以拓展。
Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
List()的功能:显示通讯录中的所有记录。
Save()的功能:保存通讯录中的所有记录到指定文件中。

数据结构课程设计指导书

数据结构课程设计指导书

数据结构课程设计指导书《数据结构》课程设计指导书一、课程设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

课程设计是加强学生实践能力的一个强有力手段。

本课程设计的目的就是要达到理论与实际应用相结合,使学生深化理解书本知识,获取上机实践经验,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养软件工作者所需的动手能力、独立解决问题的能力。

该课程设计侧重软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,以至一整套软件工作规范的训练和科学作风的培养。

通过该课程设计的操作与实践,使学生真正掌握数据结构相关算法的实现及应用方法,在一定程度上提高使用数据结构相关算法的综合设计能力,具体掌握的基本能力如下:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

二、课程设计要求学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课程设计的要求。

通过设计一个完整的程序,使学生掌握数据结构的应用,算法的编写。

要求如下:1.做好上机准备:要充分认识课程设计对自己的重要性,认真做好设计前的各项准备工作。

每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

2.既要虚心接受老师的指导,又要充分发挥主观能动性。

结合课题,独立思考,努力钻研,勤于实践,勇于创新。

充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。

3.独立思考,独立完成:课程设计中各项任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。

数据结构课程设计指导书

数据结构课程设计指导书

《数据结构》课程设计指导书一、课程设计教学目的及基本要求1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5. 独立完成;6. 题材不限,或从参考题目中任选一题;7. 仅限用C语言编写程序;8. 2008年6月30日前完成。

二、课程设计步骤1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。

逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。

在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。

详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。

同时加入一些注解和断言,使程序中逻辑概念清楚;5. 程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。

能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。

调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;6. 结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录选题一:迷宫与栈问题 (2)选题二:算术表达式与二叉树 (3)选题三:银行业务模拟与离散事件模拟 (4)选题四:文学研究助手与模式匹配算法KMP (5)选题五:湖北汽车工业学院校园导游咨询与最短路径 (6)选题六:B-树与B+树及其操作 (7)选题七:哈夫曼(Huffman)编/译码器 (8)选题八:内部排序算法比较 (9)选题九:简单行编辑程序 (10)选题十:一元多项式计算 (11)选题十一:集合的交、并、差运算 (12)选题十二:动态查找表 (13)选题十三:学生成绩管理 (14)选题十四:马踏棋盘 (15)选题十五:joseph环 (16)选题十六:最小生成树 (17)选题十七:通讯录管理 (18)选题十八:运动会分数统计 (19)选题十九:航班信息的查询与检索 (20)选题二十:哈希表应用 (21)选题二十一:拓扑排序和关键路径 (22)选题二十二:学生搭配问题 (23)选题二十三:表达式求值 (24)选题二十四:宿舍管理查询软件 (25)选题一:迷宫与栈问题【问题描述】以一个mXn的矩阵表示迷宫,0和1分别表示迷宫中的通路和障碍。

设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

【任务要求】1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。

求得的通路以三元组(i,j,d)的形式输出。

其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。

如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。

2)编写递归形式的算法,求得迷宫中所有可能的通路。

3)以方阵形式输出迷宫及其通路。

【测试数据】迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。

出口出口选题二:算术表达式与二叉树【问题描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。

写一个程序,实现基于二叉树表示的算术表达式的操作。

【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。

实现以下操作:1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。

2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E。

3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。

4)Value(E)—对算术表达式E求值。

5)CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)【测试数据】1)分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。

2)每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。

选题三:银行业务模拟与离散事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。

由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。

【任务要求】1)编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。

2)建议有如下设置:a)客户到达时间随机产生,一天客户的人数设定为100人。

b)银行业务员处理时间随机产生,平均处理时间10分钟。

3)将一天的数据(包括业务员和客户)以文件方式输出。

【测试数据】由随机数产生器生成选题四:文学研究助手与模式匹配算法KMP【问题描述】文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。

试写一个实现这一目标的文字统计系统【任务要求】1)英文小说存于一个文本文件中。

待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。

程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。

待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。

2)模式匹配要基于KMP算法。

3)推广到更一般的模式集匹配问题,并设待查模式串可以跨行(提示:定义操作GetAChar)。

【测试数据】1)文本文件为testword.c2)待统计的词集:if、else、for、while、return、void、int、char、typedef、struct选题五:湖北汽车工业学院校园导游咨询与最短路径【问题描述】1)从湖北汽车工业学院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。

以图中顶点表示景点,边上的权值表示两地之间距离。

2)本程序的目的是为用户提供路径咨询。

根据用户指定的始点和终点输出相应路径,或者根据用户指定的景点输出景点的信息。

【任务要求】1)从湖北汽车工业学院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。

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

3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

4)区分汽车线路与步行线路。

【测试数据】湖北汽车工业学院导游图(距离可估计)。

选题六:B-树与B+树及其操作【问题描述】学习并研究B-树与B+树,并编写演示它们操作的程序。

【任务要求】1)B-树构建、查找、插入和删除操作程序。

2)B+树构建、查找、插入和删除操作程序。

【测试数据】选题七:哈夫曼(Huffman)编/译码器【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。

对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。

试为这样的信息收发站写一个哈夫曼码的编/译码系统。

【任务要求】一个完整的系统应具有以下功能:1)I:初始化(Initialization)。

从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。

2)E:编码(Encoding)。

利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。

3)D:译码(Decoding)。

利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。

4)P:印代码文件(Print)。

将文件CodeFile以紧凑格式显示在终端上,每行50个代码。

同时将此字符形式的编码文件写入文件CodePrin中。

5)T:印哈夫曼树(Tree Printing)。

将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

【测试数据】1)利用教科书例6-2(严蔚敏《数据结构》P148)中的数据调试程序。

2)用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。

选题八:内部排序算法比较【问题描述】在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶次,或大概执行时间。

试通过随机数据比较各种算法的关键字比较次数和关键字移动次数,以取得直观感受。

【任务要求】1)对以下7种常用的内部排序算法进行比较:冒泡排序、直接插入排序、简单选择排序、希尔排序、堆排序、归并排序、快速排序。

2)待排序表的表长不小于100;其中的数据要用伪随机数程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。

3)最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。

【测试数据】由随机数产生器生成选题九:简单行编辑程序【问题描述】文本编辑器程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。

限制这些操作以行为单位进行的编辑程序称为行编辑程序。

被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。

一种解决办法是逐段地编辑。

任何时刻只把待编辑文件的一段放在内存,利为活区。

试按照这种方法实现一个简单的行编辑程序。

设文件每行不超过320个字符,很少超过80个字符。

【任务要求】实现以下4条基本编辑命令:1)行插入:格式:i<行号><回车><文本><回车>●将<文本>插入活区中第<行号>行之后。

2)行删除。

格式:d<行号1>[<空格><行号2>]<回车>●删除活区中第<行号1>(到第<行号2>行)。

例如“d10”和“d10 14”3)活区切换。

格式:n<回车>●将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。

4)活区显示。

模式:p<回车>●逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是继续显示以后各页(如果存在)。

印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。

各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减1,表示插入当前屏幕中第一行之前,否则命令参数非法。

【测试数据】自行设定,注意测试将活区删空等特殊情况。

选题十:一元多项式计算【问题描述】1.能够按照指数降序排列建立并输出多项式;2.能够完成两个多项式的相加、相减,并将结果输入;【任务要求】1.存储结构;2.多项式相加的基本过程的算法(可以使用程序流程图)3.可以提出算法的改进方法;【测试数据】自行设定,注意边界等特殊情况。

选题十一:集合的交、并、差运算【问题描述】编制一个能演示执行集合的交、并和差运算的程序。

【任务要求】1)集合元素用小写英文字母,执行各种操作应以对话方式执行。

2)算法要点:利用单链表表示集合;理解好三种运算的含义【测试数据】自行设定,注意边界等特殊情况。

选题十二:动态查找表【问题描述】利用二叉排序树完成动态查找表的建立、指定关键字的查找、插入与删除指定关键字结点。

【任务要求】算法输入:指定一组数据。

算法输出:显示二叉排序树的中序遍历结果、查找成功与否的信息、插入和删除后的中序遍历结果(排序结果)。

算法要点:二叉排序树建立方法、动态查找方法,对树进行中序遍历。

相关文档
最新文档