09级《数据结构》课程设计任务书
数据结构课程设计任务书
《数据结构》课程设计任务书一、设计题目1、约瑟夫环2、集合的并、交和差运算3、一元稀疏多项式计算器4、停车场管理5、车厢调度6、文学研究助手7、哈夫曼编/译码器8、图遍历的演示9、最小生成树问题10、哈希表设计二、设计目的数据结构课程设计是计算机专业的集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
其目的在于加深对数据结构的理解和掌握,使学生更好地掌握数据结构的特点、存储表示、运算方法及其应用,训练学生选用合适的数据结构编写质量高、风格好的应用程序的能力。
三、设计任务每班每人按照学号的顺序依次选择1-10号设计题目,独立完成课题。
(即1、11、21号学生完成1号课题,2、12、22号学生完成2号题,以此类推)四、时间安排五、设计内容1. 约瑟夫环【问题描述】约瑟夫(Joseph) 问题的一种描述是:编号为1,2,… ,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试设计一个程序求出出列顺序。
【基本要求】利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
【测试数据】m的初值为20;n=7,7 个人的密码依次为:3,1,7,2,4,8,4,首先m值为6( 正确的出列顺序应为6,1,4,7,2,3,5) 。
【实现提示】程序运行后,首先要求用户指定初始报数上限值,然后读取各人的密码。
可设n≤30。
此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。
【选作内容】向上述程序中添加在顺序结构上实现的部分。
2. 集合的并、交和差运算【问题描述】编制一个能演示执行集合的并、交和差运算的程序。
【基本要求】(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
数据结构课程设计任务书
数据结构课程设计任务书一、课程设计的目的数据结构课程设计是为数据结构课程独立开设的实践性教学环节。
数据结构课程设计对于巩固数据结构知识,加强学生的实际动手能力和提高学生综合素质是十分必要的。
课程设计的目的:1.要求学生达到熟练掌握C语言的基本知识和技能。
2.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。
3.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
4.培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
5.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
二、课程设计的要求数据结构课程设计用C/C++编程实现。
课程设计的一般步骤:1.问题描述与分析:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?限制条件是什么?2.数据结构设计:为实现每个功能选择的逻辑结构和存储结构,分析原因及合理性。
3.软件结构设计:设计软件模块之间的结构。
4.算法设计:算法的设计及算法分析。
每个部分的算法设计说明,可以用流程图描述算法。
5.程序编码:把详细设计的结果进一步求精为程序设计语言程序。
源程序要按照软件工程的规则来编写,要求结构清晰,重要功能部分要加上清晰的程序注释。
6.调试分析:掌握调试工具的各种功能,设计测试数据,测试输出的结果。
并进行算法的时间复杂度和空间复杂度的分析。
7.总结:课程设计过程的收获,遇到问题以及解决问题的思路和方法,程序调试能力的思考,对数据结构这门课程的认识及思考等。
8.编写课程设计报告。
三、课程设计题目及分组1、栈的应用:表达式求值1)设计题目设计一个表达式求值的程序。
该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=a b)的中缀表达式,并求出结果。
如果表达式正确,则输出表达式的结果;如果表达式非法,则输出错误信息。
数据结构课程设计任务书
数据结构课程设计报告题目一:图遍历的演示题目二:平衡二叉树的操作演示班级:计算092姓名:魏连龙学号:200907086指导教师:张艳完成日期:2011年6 月29日题目一:图遍历的演示一、需求分析1.以邻接多重表为存储结构;2.实现连通和非连通的无向图的深度优先和广度优先遍历;3.以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和生成树的边集。
4.以教科书图7.33为测试数据。
暂时忽略里程,起点为北京。
二、概要设计1.定义程序中用到的抽象数据类型1)设定图的抽象数据类型:ADT Graph{数据对象V:V是具有相同特性的数据元素的集合,称为点集.数据关系R:R={VR}VR={(v,w)|v,w属于V,(v,w)表示v和w之间存在的路径} 基本操作P:CreatGraph(&G,V,VR)初始条件:V是图的顶点集,VR是图中弧的集合.操作结果:按V和VR是定义构造图G.LocateVex(G,u)初始条件: 图G存在,u和G中顶点有相同的特征操作结果:若图G中存在顶点u,则返回该顶点在图中的位置;否则返回其他信息FirstAjvex(G,v)初始条件: 图G存在,v是G中顶点操作结果:返回v的第一个邻接顶点,若顶在图中没有邻接顶点,则返回为空NextAjvex(G,v,w)初始条件: 图G存在,v是G中顶点,w是v的邻接顶点操作结果:返回v的下一个邻接顶点,若w是v的最后一个邻接顶点,则返回空DFSTraverse(G,visit())初始条件: 图G存在,visit的顶点的应用函数操作结果: 对图进行深度优先遍历,在遍历过程中对每个结点调用visit函数一次,一旦visit失败,则操作失败BFSTraverse(G,visit())初始条件: 图G存在,visit的顶点的应用函数操作结果:对图进行广度优先遍历,在遍历过程中对每个结点调用visit函数一次,一旦visit失败,则操作失败}ADT Graph2)设定队列的抽象数据类型:ADT Queue{数据对象:D={ai|ai属于Elemset,i=1,2….,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai属于D,i=1,2,…,n}约定ai为端为队列头,an为队列尾基本操作:InitQueue(&Q)操作结果:构造一个空队列QDestryoQueue(&Q)初始条件:队列Q已存在。
数据结构课程设计任务书
《数据结构》课程设计任务书课程设计时间:2009-2010学年第一学期指导老师:刘惠临班级: 计算机08-5 一、课程设计的目的数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;⏹训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
《数据结构》课程设计任务书
《数据结构》课程设计任务书《数据结构》课程设计任务说明一、题目及选题规定1、课程设计题目1)航空客运订票系统2)用二叉树实现家谱的相关运算3)电话客户服务模拟2、选题规定数据结构课程设计需独立完成1个选题内容。
1)~3)选题中任选一个。
二、课程设计进度安排1.问题分析和任务定义(3学时)内容:根据设计题目的要求,充分分析和理解问题,明确问题要求做什么(不是怎么做?),限制条件是什么。
要求:掌握问题分析的方法,以无歧义的陈述说明程序设计的任务;了解以用例图来明确系统功能的方法。
重难点:以无歧义的陈述说明程序设计的任务;对问题作透彻分析,避免出现需求分析错误。
说明:本阶段是解决“做什么”的问题,就是要全面理解用户的各项要求,并准确表达所接受的用户需求。
2.逻辑设计和数据结构的选择(3学时)内容:为操作对象定义相应的数据结构,以结构化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
要求:掌握逻辑设计和数据结构选择的方法。
重难点:逻辑设计和数据结构选择。
说明:本阶段的主要任务是把需求分析得到得数据流图转换为软件结构和数据结构。
设计软件结构的具体任务是:将一个负责系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
总体设计建立的是目标系统的逻辑模型,与计算机无关。
3.详细设计和编码(5个学时)内容:算法的具体描述和代码的书写要求:掌握在逻辑设计基础上作详细设计的方法把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
重难点:在逻辑设计基础上作详细设计并编码实现。
说明:本阶段主要任务是设计每个模块的实现算法、所需的局部数据结构。
详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
4.上机调试(4个学时)内容:源程序的输入和代码的调试要求:能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
《数据结构》课程设计任务书
《数据结构》课程设计任务书一、设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求1.通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2.学生必须仔细研读《数据结构》课程设计要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3.本次课程设计按照教学要求需要在一周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4.编程语言任选。
三、设计选题选题说明:前面6个为基础题(必选一题,可达60分),后面题目*越多难度越大,根据实际选做题目的难度和数量以及实现程序的完善性可以适当加减分;同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1.集合的并、交和差运算任务:编制一个能演示执行集合的并、交和差运算的程序。
要求:(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
(2) 演示程序以用户和计算机的对话方式执行。
实现提示:以链表表示集合。
选作内容:(1) 集合的元素判定和子集判定运算。
(2) 求集合的补集。
(3) 集合的混合运算表达式求值。
(4) 集合的元素类型推广到其他类型,甚至任意类型。
2.停车场管理任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
数据结构课程设计任务书
数据结构与算法课程设计任务书目录1.课程设计目标 (2)课程目标 (2)课程任务 (2)开发环境 (2)2.课题内容要求 (2)课题一词频分析系统 (2)课题二哈夫曼编码系统 (2)课题三文档集合查询 (3)课题四基于XML的网站生成器 (3)课题五简单数字图像处理 (4)课题六DES算法实现 (5)课题七传感网模拟器 (5)3.课程设计考核要求 (6)设计要求 (6)考核方法 (6)4.课程设计进度表 (6)附1 对课程设计提交内容的要求 (8)附2课程设计上机安排表 (8)附3成绩的评定 (8)附4 课程设计报告封面 (9)附5课程设计报告模板 (11)1.课程设计目标课程目标深化对《数据结构》课程中基本概念、理论和方法的理解,训练综合运用所学知识处理实际问题的能力。
课程任务根据实际问题,结合《数据结构》课程中的基本理论和基本算法,分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法,完成总体结构设计、输入输出设计,解决实际的应用问题。
开发环境硬件:微型计算机,计算机局域网络。
软件:Visual C++,Java2.课题内容要求课题一词频分析系统[问题描述]文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
试写一个实现这一目标的词频统计系统。
[基本要求] 英文小说存于一个文本文件中。
待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。
程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。
[测试数据] 以你的源程序模拟英文小说,程序语言保留字集作为待统计的词汇集。
[实现提示] 设小说中的词汇一律不跨行。
这样,每读入一行,就统计每个词在这行中的出现次数。
出现位置所在行的行号可以用链表存储。
若某行中出现了不止一次,不必存多个相同的行号。
课题二哈夫曼编码系统[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
《数据结构》课程设计任务书
一.课程设计的任务每位同学做两题:一题在设计题中每人相对应一题号另一题必选题(每个班级有一必选题)二. 要求:1、对相应的题目进行算法设计2、编写源代码3、上机调试4、显示调试结果5、写出实验总结三.课程设计进度安排设计总学时为2周课程设计每周大体分五个阶段:1、选题与搜集资料:每人选择相应题目,进行课程设计课题的资料搜集.2、分析与概要设计:根据搜集的资料,进行程序功能与数据结构分析,并选择合适的数据结构,并在此基础上进行实现程序功能的算法设计.3、程序设计:运用掌握C语言编写程序,实现所程序的各个模块功能.4、调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况.5、实习报告:编写实习报告6、验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收.结合设计报告,根据课程设计成绩的评定方法,评出成绩.四.课程设计考核标准考核时主要有如下几项参考:1、初步设计内容的考核:是否有查阅资料能力?是否有设计思想?2、程序编码能力调试能力的考核:程序是否清晰、易读?在技算计上是否可独立完成程序的调试,是否熟练?3、说明书质量的考核:设计结构是否合理?叙述是否正确?方案是否可行?4、答辩:设计结果的调试能力,对自己设计是否熟练?5、出勤率极平时表现的考核:出勤超过2次不到者成绩为不及格。
五.课程设计报告的内容设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料.设计报告以规定格式的电子文档书写,打印并装订,排版及图,表要清楚,工整.装订顺序如下:封面、目录、正文.正文包括以下7个内容:1.需求分析陈述说明程序设计的任务,强调的是程序要做什么,需要什么结果、所能达到的功能.2.概要设计说明本程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系.3.详细设计实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);可采用流程图、N S 图进行描述,画出函数和过程的调用关系图.4.调试分析内容包括:a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b.算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;c.经验和体会等.5.测试结果列出你的测试结果,包括输入和输出.这里的测试数据应该完整和严格,最好多于需求分析中所列.6.参考文献列出参考的相关资料和书籍.封面格式如下:数据结构课程设计报告题目——采用的方法班级:_________________________姓名:__________________________ 指导教师:__________________________ 成绩:__________________________信息工程学院年月日。
数据结构课程设计任务书
数据结构与算法课程设计任务书一.数据结构与算法课程设计的目的和要求(一)设计的目的数据结构与算法课程设计是在学完数据结构与算法课程之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过数据结构课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合数据结构与算法课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
2.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3.培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
(二)设计要求1.学生必须仔细阅读《数据结构与算法》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要一周时间完成,属教师安排上机时间学生不得缺席。
二.设计内容及步骤1.分析问题,给出数学模型,设计相应的数据结构。
(1)分析问题的特点,用数学表达式或其它形式描述其数学模型。
(2)选择能够体现问题本身特点的逻辑结构。
(3)在逻辑结构确定的情况下,为算法的设计选择相应的存储结构,顺序存储结构和非顺序存储结构的不同存储方式,其对应的算法也不相同。
2.算法设计在已经选择好数据结构的前提下,为解决问题设计算法。
(1)确定所需模块对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。
(2)各子模块功能描述给出主要模块的算法描述,用流程图或伪代码表示。
数据结构与算法课程设计任务书
数据结构与算法课程设计任务书一、课程设计目的数据结构与算法课程设计是一门重要的实践教学环节,其目的在于加深学生对数据结构和算法基本概念的理解,培养学生运用所学知识解决实际问题的能力,提高学生的编程技能和创新思维。
通过课程设计,学生将能够更加熟练地掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、递归、贪心、动态规划等),并将其应用到实际的程序设计中。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计的题目应具有一定的综合性和挑战性,能够涵盖所学的数据结构和算法知识。
3、学生在设计过程中应注重程序的正确性、可读性和可维护性,合理选择数据结构和算法,优化程序性能。
4、学生需按照规定的格式撰写课程设计报告,报告内容应包括问题描述、算法设计、程序实现、测试结果及分析等。
三、课程设计题目题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现以下功能:1、录入学生的基本信息(学号、姓名、课程名称、成绩)。
2、按照学号、课程名称等关键字进行查找和排序。
3、计算每个学生的平均成绩,并按照平均成绩进行排序。
4、统计每门课程的不及格人数和优秀人数(85 分及以上为优秀)。
题目 2:公交线路查询系统设计一个公交线路查询系统,能够实现以下功能:1、录入公交线路的起点、终点、途经站点等信息。
2、根据用户输入的起点和终点,查询可行的公交线路。
3、考虑换乘情况,给出最优的公交线路方案(换乘次数最少、行程时间最短等)。
题目 3:文本文件处理系统设计一个文本文件处理系统,能够实现以下功能:1、读取文本文件,并将文件中的内容存储到合适的数据结构中。
2、统计文件中单词的出现频率,并按照频率降序排列。
3、查找指定的单词或字符串在文件中的位置。
4、对文件内容进行加密和解密操作。
题目 4:迷宫求解系统设计一个迷宫求解系统,能够实现以下功能:1、生成一个随机的迷宫。
2、采用深度优先搜索或广度优先搜索算法求解迷宫的路径。
2009级数据结构课程设计任务书-总则
2009级数据结构课程设计任务书课程设计教学目的数据结构是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
数据结构是实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段。
本课程属于集中实践教学环节,是在学习了C语言、面向对象程序设计(C++)和数据结构后开设的。
要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++,Java)程序并上机调试的基本方法。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
设计要求1、学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
每个学生必须独立完成;2、课程设计时间为2周;3、设计语言不限;鼓励学生采用GUI设计;4、充分利用课余时间完成源程序和课程设计报告等文档书写工作,上机时带上源程序、数据结构教材、C++语言教材。
5、上机任务1)选择合适的数据结构,并定义数据结构的结构体;2)根据程序所要完成的基本要求和程序实现提示,设计出完整的算法;3)设计出主程序或界面,使其成为完整的程序。
6、无论在校外、校内,都要严格遵守学校的学习和劳动纪律、规章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
7、学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
数据结构课程设计任务书--二叉树的相关操作
课程设计任务书一、设计题目二叉树的相关操作二、主要内容建立二叉树,并对树进行相关操作。
三、具体要求1)利用完全二叉树的性质建立一棵二叉树。
(层数不小于4层)2)统计树叶子结点的个数。
3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排依照教学计划,课程设计时间为:2周。
3.5-3.6,资料查找、系统分析,概要设计。
3.7-3.15系统详细设计、功能设计算法实现、编程调试、检查问答。
3.19-3.26,归纳文档资料,按要求填写“课程设计说明书”,上交课程设计材料。
五、完成后应上交的材料1、课程设计说明书(所使用的数据结构说明、程序流程图、功能模块图、核心算法等)。
2、相关源程序文件。
六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一绪论------------------------------------------------------------------------------------ 3二需求分析------------------------------------------------------------------------------ 3三总体设计-------------------------------------------------------------------------------3 3.1 各功能模块设计-------------------------------------------------------------------33.1.1 定义二叉树的结点类型------------------------------------------------------33.1.2 主函数---------------------------------------------------------------------------3 3.1.3 定义结点创建二叉树---------------------------------------------------------43.1.4 计算树的深度和叶子数------------------------------------------------------43.1.5 前序遍历------------------------------------------------------------------------43.1.6 中序遍历-------------------------------------------------------------------------43.1.7 后序遍历-------------------------------------------------------------------------4 3.2 流程图--------------------------------------------------------------------------------4四详细设计-------------------------------------------------------------------------------- 5 五程序运行结果--------------------------------------------------------------------------8 六总结--------------------------------------------------------------------------------------8一、绪论二叉树是树形结构的一个重要的类型,二叉树是n(n>=0)个结点的有限集,它或者是空集(n=0),或者由个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。
09级《数据结构》课程设计任务书
一.课程设计的任务本次设计是为加强学生的软件编程能力而进行的专门训练。
选题考虑到学生在数据结构中学过的各种算法、数据组织方式进行选题,考虑数据结构算法所涉及的操作系统、网络、编译方法等中的实例,进行设计。
下面是课程设计待选题目共43题。
按学号相应选题,如:学号为01,则选择第1题。
分析题目,完成相应题目的程序设计。
1、商品管理问题描述:以链表结构的有序表表示某商场家电部的库存模型,当有提货或进货时需要对该链表及时进行维护,每个工作日结束以后,将该链表中的数据以文件形式保存,每日开始营业之前,须将文件形式保存的数据恢复成链表结构的有序表。
实现要求:链表结构的数据域包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。
程序功能包括:初始化、创建表、插入、删除、更新数据、查询及链表数据与文件之间的转换等。
2、编程整理表达式键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。
3、个人帐簿管理问题描述:个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
实现要求:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;3.进一步要求:完成对每月的开支排序,以及完成系统查询功能。
有兴趣的同学可以自己扩充系统功能。
4、实现:连通无向图的非递归遍历。
5、招聘模拟。
问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(o,1,3,…m一1)和计划招聘人数,参加应聘的人数有n个(编号为o,1,2,…n一1)。
2009级软件工程数据结构课程设计任务与要求
数据结构课程设计任务书一、选题选题原则是数据结构算法实现及在具体问题中的应用。
可选择下列与实际应用紧密结合的较综合性的题目,也可自选(自选题必须通过任课教师认可)。
要求通过课程设计的实践,在数据结构的表示、数据结构的选择及应用、算法设计与实现等方面加深对数据结构课程基本内容的理解和综合运用能力的提高。
对下列题目每个同学的课设任务按下式确定:每个同学完成两个题目,其中题1(哈夫曼树应用)每个同学必做,其它任选一题。
1. 哈夫曼树应用功能:(1)从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;(2)利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码。
同时将此字符形式的编码文件写入文件CodePrint中。
(3)利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中,并输出结果。
分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:完成功能1;3)进一步要求:完成功能2和3。
有兴趣的同学可以自己扩充系统功能。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
2.运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
09级《数据结构》课程设计任务书一.课程设计的任务本次设计是为加强学生的软件编程能力而进行的专门训练。
选题考虑到学生在数据结构中学过的各种算法、数据组织方式进行选题,考虑数据结构算法所涉及的操作系统、网络、编译方法等中的实例,进行设计。
下面是课程设计待选题目共43题。
按学号相应选题,如:学号为01,则选择第1题。
分析题目,完成相应题目的程序设计。
1、商品管理问题描述:以链表结构的有序表表示某商场家电部的库存模型,当有提货或进货时需要对该链表及时进行维护,每个工作日结束以后,将该链表中的数据以文件形式保存,每日开始营业之前,须将文件形式保存的数据恢复成链表结构的有序表。
实现要求:链表结构的数据域包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。
程序功能包括:初始化、创建表、插入、删除、更新数据、查询及链表数据与文件之间的转换等。
2、编程整理表达式键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。
3、个人帐簿管理问题描述:个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
实现要求:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充,修改和删除;3.进一步要求:完成对每月的开支排序,以及完成系统查询功能。
有兴趣的同学可以自己扩充系统功能。
4、实现:连通无向图的非递归遍历。
5、招聘模拟。
问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(o,1,3,?m一1)和计划招聘人数,参加应聘的人数有n个(编号为o,1,2,?n一1)。
每位应聘者可以申报两个工种,并参加公司组织的考试。
公司将按应聘者的成绩,从高到低的顺序排队录取。
公司的录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队.并按其第二志愿考虑录取。
实现要求:要求程序输出每个工种录用者的信息(编号、成绩>,以及落选者的信息(编号、成绩)。
程序设计思路:程序中按应聘者的成绩从高到低的顺序排队录取。
如果在第一志愿队列中落选,便将他的成绩扣去5分后重新排队,并按其第二志愿考虑录取。
程序为每个工种保留一个录取者的有序队列。
录取处理循环直至招聘额满或已对全部应聘者都做了录用处理。
6、求矩阵的所有马鞍点。
矩阵A中的元素若满足:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称元素A[i,j]为该矩阵的一个马鞍点。
求出m×n 矩阵的所有马鞍点。
7、最少换车次数问题。
问题描述: 设某城市有n个车站,并有m条公交线路连接这些车站。
设这些公交车都是单向的,这n 个车站被顺序编号为0-n-1。
编号程序,输入该城市的公交线路数,车站个数,以及各公交线路上的各站编号。
实现要求:求得从站0出发乘公交车至站n 一1的最少换车次数。
程序设计思路:利用输入信息构建一张有向图G(用邻接短阵g表示),有向图的顶点是车站,若有某条公交线路经i站能到达j站,就在顶点i到顶点j之间设置一条权为1的有向边<i,j)。
这样,从站x至站y的最少上车次数便对应于图G中从点x至点y 的最短路径长度。
而程序要求的换车次数就是上车次数减1。
8、实现:拓扑排序9、图的算法实现问题描述:图的存储结构的建立、Prim、Kruskal、Dijkstra和拓扑排序算法。
实现要求:将图的信息建立文件;从文件读入图的信息,建立邻接矩阵和邻接表;实现Prim、Kruskal、Dijkstra和拓扑排序算法。
10、实现二叉树的叶子结点按从左到右的顺序连成一个单链表请设计一个算法,把二叉树的叶子结点按从左到右的顺序连成一个单链表。
二叉树用二叉链存储,链接时用叶子结点的rchild 域存放指针。
11、模拟实现五子棋在围棋比赛中,某一方在棋盘的某个位置下子后,有可能提取对方。
以W[19][19]表示一个棋盘,若W[i][j]=0表示在位置(i,j)上没有子,W[i][j]=1表示该位置上的是黑子,W[i][j]=-1表示该位置上是白子。
模拟实现五子棋过程。
12、实现:判别给定的二叉树是否为二叉排序树。
13、文章编辑问题描述:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;实现要求:分别统计出其中英文字母数和空格数及整篇文章总字数;2 统计某一字符串在文章中出现的次数,并输出该次数;删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:分行输出用户输入的各行字符;分4行输出\全部字母数\、\数字个数\、\空格个数\、\文章总字数\输出删除某一字符串后的文章14、实现:对一个存储为邻接表的图,给出求其所有连通分量。
15、管道铺设设计问题描述:N(N>10)个居民区之间需要铺设煤气管道。
假设任意两个居民区之间都可以铺设煤气管道,但代价不同。
实现要求:事先任意两居民区之间铺设煤气管道的代价存入磁盘文件中。
设计一个最佳方案使得这N个居民区之间铺设煤气管道所需代价最小,并将结果以图形方式在屏幕上输出。
16、排序算法的实现与比较问题描述:编程实现希尔、快速排序算法,并利用程序统计每种算法的执行时间。
实现要求:随机产生10000、50000、100000、200000个待排数据存入磁盘文件,从磁盘文件读入待排数据进行排序,并将排序结果写入另一个文件中。
17、实现排序:设一单向链表的头指针为head,链表的记录中包含着整数类型的key域,试设计算法,将此链表的记录按照key递增的次序进行就地排序. 18、统计C程序单词的个数问题描述:扫描c源程序,利用hash技术和二分查找技术统计该源程序中的关键字出现的频度,并比较各自查找的次数。
实现要求:、先用Hash表存储c语言中32个关键字,再扫描c源程序取出每个单词,利用Hash查找技术统计该程序中的关键字出现的频度。
发生Hash冲突用线性探测法解决。
设Hash函数为:Hash=[(key 的第一个字母序号)*100+(key的最后一个字母序号)] MOD 41。
、用顺序表存储c语言中的关键字,把c源程序取出每个单词利用二分查找技术统计该程序中的关键字的出现频度。
19、擦数游戏在黑板上从1开始写出一组连续的自然数,然后擦去其中的一个数k,其余的数的平均值为a/b(a,b为整数)。
试编写程序求出被擦去的数k。
20、医院选址问题描述:有n个村庄,现要从这n个村庄中选择一个村庄新建一所医院,使其余的村庄到这所医院的距离总体来说较短,设计较合理。
3 实现要求:可以将问题抽象为有n 个接点,在这n个接点之间建立一个无向图,边上的权值w(i,j)表示村庄i到j 之间道路的长度,在无向图中n个顶点之间,最多可能设置n(n-1)/2条线路,如何在这些线路中选择n-1条线路,以使总的线路最短?对于n个顶点的连通网可以建立许多不同的无向图,每一个无向图都可以表示一个道路网,其中要选择一个最优图,使图上各边之小。
21、求二叉树根结点到指定结点的路径。
22、保龄球记分系统问题描述:保龄球一局分10轮,每轮可按球一次或多次,以击倒的球数为依据得分。
一局得分为10轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。
即某轮某次滚球击例的球数不仅要记入本轮得分,还可能记入前一两轮得分。
具体的滚球规则和记分规则如下。
(1)若一轮的第一次该球就击倒10个球,则本轮不再滚球(若是第10轮则还需另加两次滚球),该轮的得分为本次击倒球数10与以后两次滚球所击倒的球数之和。
(2)若某一轮的第一次滚球未击倒10个球,则可对剩下的球再击一次。
如果两次击倒10个球,则本轮不再滚球(若是第10轮则还需另加一次滚球),该轮的得分为本次击倒球数10与下一次滚球所击倒的球数之和。
(3)若某一轮的两次滚球未击倒10个球,则本轮不再滚球。
该轮的得分为本轮击倒的球数。
实现要求:程序要求输出10轮中各轮的第一次得分和第二次得分,以及各轮得分和总分。
程序设计思想程序交互地逐轮输入一次滚球击倒的球数ball1和ball2,计算该轮得分score和累计得分total。
为记录因一轮击倒10个球,还暂时不能计算该轮的得分和累计总分的情况,程序引入变量frame,用来记录当前已完成完整计算的轮次,程序每输入一次滚球击倒球数,就检查还未完成完整计算的轮次,并计算之。
23、修改起泡排序试修改起泡排序,以交替的正、反两个方向进行扫描。
即第一趟把排序码最大的记录放到最末尾,第二趟把排序码最小的记录放到最头上。
如此反复进行。
24、运动会分数统计:问题描述:参加运动会有n个学校,学校编号为1??n。
比赛分成m 个男子项目,和w个女子项目。
项目编号为男子1??m,女子m+1??m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名学生自己设定。
实现要求:1). 可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数 4 25、堆排序的实现:在顺序结构上完成,先建堆然后重建堆,最后实现全部排序26、公园的导游图问题描述::给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。
游客从公园大门进入,选一条最佳路线,使游客可以不重复地游--------------------精选公文范文,管理类,工作总结类,工作计划类文档,感谢阅读下载--------------------- ~ 11 ~览各景点,最后回到出口。
实现要求:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,包括5个景点情况,能完成遍历功能;3.进一步要求:进一步扩充景点数目,画出景点图,有兴趣的同学可以自己扩充系统功能。
27、万年历:通过给定的年,求该年的日历,闰年算法:{Y%4 &&!Y 0}||Y@0==0 28、归并排序算法:用两路归并算法,实现N个无素的排序29、学籍管理对学生、课程、成绩分别建立三个数据文件。