数据结构课程设计任务书-1班题目
数据结构课程设计任务书
数据结构课程设计报告题目一:图遍历的演示题目二:平衡二叉树的操作演示班级:计算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已存在。
《数据结构》课程设计方案任务书
《数据结构》课程设计任务书计算机与通信学院2018-5湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书。
《数据结构》课程设计任务书
《数据结构》课程设计任务书《数据结构》课程设计任务说明一、题目及选题规定1、课程设计题目1)航空客运订票系统2)用二叉树实现家谱的相关运算3)电话客户服务模拟2、选题规定数据结构课程设计需独立完成1个选题内容。
1)~3)选题中任选一个。
二、课程设计进度安排1.问题分析和任务定义(3学时)内容:根据设计题目的要求,充分分析和理解问题,明确问题要求做什么(不是怎么做?),限制条件是什么。
要求:掌握问题分析的方法,以无歧义的陈述说明程序设计的任务;了解以用例图来明确系统功能的方法。
重难点:以无歧义的陈述说明程序设计的任务;对问题作透彻分析,避免出现需求分析错误。
说明:本阶段是解决“做什么”的问题,就是要全面理解用户的各项要求,并准确表达所接受的用户需求。
2.逻辑设计和数据结构的选择(3学时)内容:为操作对象定义相应的数据结构,以结构化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
要求:掌握逻辑设计和数据结构选择的方法。
重难点:逻辑设计和数据结构选择。
说明:本阶段的主要任务是把需求分析得到得数据流图转换为软件结构和数据结构。
设计软件结构的具体任务是:将一个负责系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
总体设计建立的是目标系统的逻辑模型,与计算机无关。
3.详细设计和编码(5个学时)内容:算法的具体描述和代码的书写要求:掌握在逻辑设计基础上作详细设计的方法把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
重难点:在逻辑设计基础上作详细设计并编码实现。
说明:本阶段主要任务是设计每个模块的实现算法、所需的局部数据结构。
详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
4.上机调试(4个学时)内容:源程序的输入和代码的调试要求:能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
《数据结构》课程设计题目
《数据结构》课程设计题目《数据结构》课程设计题目课程设计题一:学生成绩管理系统设计目的:1.2.3. 掌握线性链表的建立。
掌握线性链表的基本操作。
掌握查找的基本算法。
设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。
设计要求:1.2.3.写出系统需求分析,并建模。
编程实现,界面友好。
输出操作前后的结果。
课程设计题二:停车场管理系统设计目的:1.2.3.4. 掌握栈和队列的建立。
掌握栈和队列的基本操作。
深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。
每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
设计要求:1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。
《数据结构》课程设计指导书1
《数据结构》课程设计指导书(共13题)一、课程设计的目的课程设计的目的是培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。
巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的学习作风。
为今后学习其他计算机课程打下基础。
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高学生的编程序能力和创新意识。
二、课程设计的要求在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过算法的设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的课程设计与程序分析报告。
前期准备工作完备与否直接影响到后序上机调试工作的效率。
三、课程设计的学生分组情况每组三至五人,共同研究、共同讨论,可以共同编写算法,但必须各自独立完成各自的程序。
四、课程设计的时间安排课程设计前两周:将各项任务及问题进行讲解、分析。
课程设计一周:星期一:学生对任务进行讨论、研究与分析,初步设计出算法。
星期二到星期四:设计出详细算法,并上机调试程序。
星期五到星期六:写出课程设计报告并考核。
五、课程设计的主要内容【课程设计题目一】一元稀疏多项式加法、乘法器【问题描述】设计一个一元稀疏多项式加法、乘法器用于计算两个多项式的加法和乘法。
例如(x2+4x5+2x9)+(x+3x4)或(7x4+4x6+2x9)*(x4+3x9)【基本要求】(1)输入并建立两个多项式f(x)和g(x);(2)输出每个多项式,要求输出时按指数从小到大输出。
(3)两个多项式完成加法、乘法运算。
(4)输出两个多项式的加法之和及乘积的结果。
(5)写出课程设计报告【实现提示】用带表头结点的单链表存储多项式。
【测试数据】分别选定三组测试数据进行测试,验证程序的正确性。
数据结构课程设计题目汇总及要求
数据结构课程设计题目课程设计题一:线性表子系统一.设计目的:1.掌握线性表的特点2.掌握线性表的顺序存储结构和链式存储结构的基本运算3.掌握线性表的基本操作二.设计内容和要求:1.设计一个选择式菜单。
线性表子系统******************************************************* 1 ……建表** 2 ……插入** 3 ……删除** 4 ……显示** 5 ……查找** 6 ……求表长** 0 ……返回*******************************************************请选择菜单号(0…6):2.采用单链表创建线性表。
3.在线性表中实现插入、删除元素,显示线性表中所有元素,查找元素和求线性表长的基本操作。
课程设计题二:栈子系统一.设计目的:1.掌握栈的特点及其描述方法2.掌握链式存储结构实现一个栈3.掌握链栈的各种基本操作4.掌握栈的典型应用的算法二.设计内容和要求:1.设计一个选择式菜单。
栈子系统****************************************************** * 1 ……入栈* * 2 ……出栈* * 3 ……显示* * 4 ……数制转换* * 0 ……返回* ****************************************************** 请选择菜单号(0…4):2.设计一个整型数据元素的链栈。
3.编写入栈、出栈和显示栈中全部元素的程序。
4.编写一个把十进制数转换成八进制数的应用程序。
课程设计题三:队列子系统一.设计目的:1.掌握队列的特点及其描述方法2.掌握链式存储结构实现一个队列3.掌握队列的各种基本操作4.掌握队列简单应用的算法二.设计内容和要求:1.设计一个选择式菜单。
队列子系统******************************************************* 1 ……入队** 2 ……出队** 3 ……读队首元素** 4 ……显示** 5 ……报数问题** 0 ……退出*******************************************************请选择菜单号(0…5):2.设计一个整型数据元素的链队列。
数据结构课程设计题目
数据结构课程设计题⽬《数据结构》课程设计题⽬1. 排序算法的性能分析问题描述设计⼀个测试程序,⽐较⼏种内部排序算法的关键字⽐较次数和移动次数以取得直观感受。
基本要求(1)对冒泡排序、直接排序、选择排序、箱⼦排序、堆排序、快速排序及归并排序算法进⾏⽐较。
(2)待排序表的表长不⼩于100,表中数据随机产⽣,⾄少⽤5组不同数据作⽐较,⽐较指标:关键字参加⽐较次数和关键字的移动次数(关键字交换记为3次移动)。
(3)输出⽐较结果。
选做内容(1)对不同表长进⾏⽐较。
(2)验证各算法的稳定性。
(3)输出界⾯的优化。
2. 排序算法思想的可视化演⽰—1基本要求排序数据随机产⽣,针对随机案例,对冒泡排序、箱⼦排序、堆排序、归并算法,提供排序执⾏过程的动态图形演⽰。
3. 排序算法思想的可视化演⽰—2基本要求排序数据随机产⽣,针对随机案例,,对插⼊排序、选择排序、基数排序、快速排序算法,提供排序执⾏过程的动态图形演⽰。
4. 线性表的实现与分析基本要求①设计并实现线性表。
②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储⽅式③针对随机产⽣的线性表实例,实现线性表的插⼊、删除、搜索操作动态演⽰(图形演⽰)。
5. 等价类实现及其应⽤问题描述:某⼯⼚有⼀台机器能够执⾏n个任务,任务i的释放时间为r i(是⼀个整数),最后期限为d i(也是整数)。
在该机上完成每个任务都需要⼀个单元的时间。
⼀种可⾏的调度⽅案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。
⼀个时间段不允许分配给多个任务。
基本要求:使⽤等价类实现以上机器调度问题。
等价类分别采取两种数据结构实现。
6. ⼀元稀疏多项式计算器问题描述设计⼀个⼀元稀疏多项式简单计算器。
基本要求⼀元稀疏多项式简单计算器的基本功能是:(1)输⼊并建⽴多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相加,建⽴多项式a+b;(4)多项式a和b相减,建⽴多项式a-b;(5)计算多项式在x处的值;(6)计算器的仿真界⾯(选做)7. 长整数的代数计算问题描述应⽤线性数据结构解决长整数的计算问题。
《数据结构》课程设计任务书
一.课程设计的任务每位同学做两题:一题在设计题中每人相对应一题号另一题必选题(每个班级有一必选题)二. 要求: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.本次课程设计按照教学要求需要在一周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4.编程语言任选。
三、设计选题选题说明:前面6个为基础题(必选一题,可达60分),后面题目*越多难度越大,根据实际选做题目的难度和数量以及实现程序的完善性可以适当加减分;同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1.集合的并、交和差运算任务:编制一个能演示执行集合的并、交和差运算的程序。
要求:(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
(2) 演示程序以用户和计算机的对话方式执行。
实现提示:以链表表示集合。
选作内容:(1) 集合的元素判定和子集判定运算。
(2) 求集合的补集。
(3) 集合的混合运算表达式求值。
(4) 集合的元素类型推广到其他类型,甚至任意类型。
2.停车场管理任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
数据结构与算法课程设计任务书
数据结构与算法课程设计任务书一、课程设计目的数据结构与算法课程设计是一门重要的实践教学环节,其目的在于加深学生对数据结构和算法基本概念的理解,培养学生运用所学知识解决实际问题的能力,提高学生的编程技能和创新思维。
通过课程设计,学生将能够更加熟练地掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、递归、贪心、动态规划等),并将其应用到实际的程序设计中。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计的题目应具有一定的综合性和挑战性,能够涵盖所学的数据结构和算法知识。
3、学生在设计过程中应注重程序的正确性、可读性和可维护性,合理选择数据结构和算法,优化程序性能。
4、学生需按照规定的格式撰写课程设计报告,报告内容应包括问题描述、算法设计、程序实现、测试结果及分析等。
三、课程设计题目题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现以下功能:1、录入学生的基本信息(学号、姓名、课程名称、成绩)。
2、按照学号、课程名称等关键字进行查找和排序。
3、计算每个学生的平均成绩,并按照平均成绩进行排序。
4、统计每门课程的不及格人数和优秀人数(85 分及以上为优秀)。
题目 2:公交线路查询系统设计一个公交线路查询系统,能够实现以下功能:1、录入公交线路的起点、终点、途经站点等信息。
2、根据用户输入的起点和终点,查询可行的公交线路。
3、考虑换乘情况,给出最优的公交线路方案(换乘次数最少、行程时间最短等)。
题目 3:文本文件处理系统设计一个文本文件处理系统,能够实现以下功能:1、读取文本文件,并将文件中的内容存储到合适的数据结构中。
2、统计文件中单词的出现频率,并按照频率降序排列。
3、查找指定的单词或字符串在文件中的位置。
4、对文件内容进行加密和解密操作。
题目 4:迷宫求解系统设计一个迷宫求解系统,能够实现以下功能:1、生成一个随机的迷宫。
2、采用深度优先搜索或广度优先搜索算法求解迷宫的路径。
数据结构课程设计任务书
课程设计(论文)任务书软件学院软件工程专业2013 - 1班一、课程设计(论文)题目数据结构课程设计车厢调度二、课程设计(论文)工作自2014 年9月24日起至2014 年10月 8 日止。
三、课程设计(论文) 地点: 创新大楼四、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生熟练掌握抽象数据类型的组织和定义;(2)使学生熟练掌握数据类型的定义和实现;(3)培养学生组织和分析数据的能力;(4)培养学生分析和应用基于不同数据结构的算法的能力;(5)提高学生的科技论文写作能力。
2.基本要求:每位同学在以下题目中任选一题(在方框中打勾),独立完成课程设计:□击鼓传花:编号为1,2,……,n的n个人按顺时针方向围坐一圈。
一开始第一个人持有一个“花”,然后按顺时针方向自1开始顺序传递“花”,经过m个人(m是随机数)后停止。
访问停止时,持有“花”的人必须输出一条信息:“名字:I got the flower”。
随后从此人开始继续按顺时针方向传递“花”……直到游戏结束。
□全国交通咨询模拟:参见《数据结构题集》P153。
□车厢调度:参见《数据结构题集》P98。
3.课程设计论文编写要求(1)要按照书稿的规格打印誊写课设报告;(2)报告分为封面、任务书(本文档)、正文、课程设计体会和参考文献四部分;学生签名:年月日课程设计(论文)评审意见(1)题目分析(20分):优()、良()、中()、一般()、差();(2)流程分析(30分):优()、良()、中()、一般()、差();(3)数据定义(30分):优()、良()、中()、一般()、差();(4)代码编写(10分):优()、良()、中()、一般()、差();(5)创新能力(10分):优()、良()、中()、一般()、差();(6)格式规范性、设计态度及考勤是否降等级:是()、否()评阅人:职称:讲师2014年1月6日正 文一、 数据结构定义1. 抽象数据类型本设计中用到的数据结构ADT 定义如下: ADT Stack {数据对象:D={i i a a |∈CharSet,i=1,2,...,n,,n ≥0} 数据关系:R1={<i i i i a a a a ,|,11-->∈D,i=2,...,n}基本操作: InitStack(&S)操作结果:构造一个空栈S 。
数据结构课程设计任务书班题目
130校园导游咨询*问题描述:(1)设计你的学校的校园平面图,所含景点不少于10个。
以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。
*测试数据:由读者根据实际情况指定。
*实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。
顶点和边均含有相关信息。
131长整数四则运算*问题描述:设计一个实现任意长的整数进行加法运算的演示程序。
*基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。
任何整形变量的范围是-(2^15 - 1) (2^15 - 1)。
输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
*测试数据:(1)0;0;应输出“0”。
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。
(3)-9999,9999;1,0000,0000,0000;应输出“999(4)1,0001,0001;-1,0001,0001;应输出“0”。
(5)1,0001,0001;-1,0001,0000;应输出“1”。
(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。
(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。
*实现提示:(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。
(2)可以利用头结点数据域的符号代表长整数的符号。
用其绝对值表示元素结点数目。
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)。
数据结构课程设计题目表
《数据结构》课程设计课题表课题1:设计出链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。
要求:(1)所设计的数据结构应尽可能节省存储空间。
(2)程序的运行时间应尽可能少。
课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
课题6:设计出树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。
(2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。
(3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。
数据结构课程设计-2019版
课程设计题目(2019版):(1-8题必做)1、系统进程统计(必做)(链表)[问题描述]设计一个程序,每秒统计一次当前系统的进程状况,并按照内存使用自多到少排序打印输出相关信息。
对已经结束的进程,另外给出一个列表,并显示该进程的结束时间和持续时间。
[基本要求](1)该题目要求使用两个链式线性表。
一个链表存储当前活动进程,要求使用双向链表,排序要求是按照内存使用自多到少排序。
另外一个链表存储已结束进程,要求使用单向链表,按照结束时间离当前时间的关系排序,最近的最前,最远的最后。
(2)每秒在窗口内更新一次当前系统进程情况,输出内容包括:进程名,持续时间,内存使用情况。
(3)每秒在窗口内更新一次已结束进程情况,输出内容包括:进程名,持续时间,结束时间。
(4)注意进程在这两个链表中的切换,一个进程既可被结束,也可以过一段时间后再被运行。
2、算术表达式求值(必做) (栈)[问题描述]一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。
假设操作数是正实数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#6+15*(21-8/4)#。
引入表达式起始、结束符是为了方便。
编程利用“运算符优先法”求算术表达式的值。
[基本要求](1)从键盘或文件读入一个合法的算术表达式,输出正确的结果。
(2)显示输入序列和栈的变化过程。
(3)考虑算法的健壮性,当表达式错误时,要给出错误原因的提示。
(4)实现非整数的处理(*)。
3、公共钥匙盒(必做)(线性表,栈,队列)[问题描述]有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。
每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。
钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。
一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。
数据结构课程设计参考题目(一)
数据结构课程设计参考题目(一)数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储、管理和操作等方面的问题。
随着计算机技术的发展,数据结构逐渐成为各个领域必不可少的一门课程。
而数据结构课程设计参考题目是该课程的一项重要内容,它能够帮助学生更好地掌握课程知识,提高对数据结构的理解和应用能力。
以下是几个数据结构课程设计参考题目。
1.链表操作设计一个链表类,使得它能够实现插入、删除、查找和遍历链表的操作。
要求采用单向链表或双向链表实现,并考虑链表的循环操作。
同时,要求能够对链表进行排序操作。
2.栈与队列操作设计一个栈和队列类,使得它们能够实现入栈、出栈、入队和出队的操作。
要求采用数组或链表实现,并可用于表达式转换和括号匹配等相关问题。
3.堆排序算法实现堆排序算法,要求能够对整型数列进行排序,并输出其排序后的结果。
要求堆的构建、删除和调整操作均可用最大堆或最小堆实现。
同时,要求能够对算法的时间复杂度进行分析,并与快速排序等算法进行比较。
4.哈希表实现设计一个哈希表类,使其能够实现插入、删除和查找等操作。
要求采用链地址法或开放地址法实现,同时需要考虑哈希函数和扩容等问题。
要求能够对哈希冲突的解决方法进行比较和分析。
5.树与图的遍历实现二叉树、B树或B+树的遍历操作,要求能够实现先序、中序和后序遍历,并能够循环遍历或递归遍历。
同时,要求能够对树的平衡性进行探究和讨论。
另外,树的遍历也是图的遍历的基础,可以通过深度优先搜索或广度优先搜索实现图的遍历。
以上是一些常见的数据结构课程设计参考题目,它们可以锻炼学生的编程能力、算法分析能力和数据处理能力,同时也可以增强学生对数据结构知识的理解和掌握。
数据结构课程设计分类题目 (1)
(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次,如序列{20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个);
13、设有一个由正整数组成的无序单链表,编写完成下列功能的算法:
(1)找出最小值结点,且打印该数值;
(2)若该数值是奇数,则将其与直接后继结点的数值交换;
(3)若该数值是偶数,则将其直接后继结点删除。
14、在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。例如:(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70)。
printf(sum);}
树和二叉树
1、二叉树用二叉链表存储,写一个算法将二叉树中的叶子结点按从右至左的顺序建立一个单链表。
2、知二叉树用二叉链表存储,写出求二叉树宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。
3、叉树用二叉链表存储,写一个算法交换各结点的左右子树。
4、二叉树用二叉链表存储,若结点的左孩子的数据域的值大于右孩子数据域的值,则交换其左右子树。
19、试设计一个算法打印出由根结点出发到达叶结点的所有路径。
20、试写出算法,求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
21、给定一组项及其权值,假定项都存放于二叉树的树叶结点,则具有最小带权外部路径长度的树称为huffman 树。编写构造huffman 树 的算法。
22、已知一中序线索二叉树,写一算法完成对它的中序扫描。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目1. 学生运动会成绩管理任务:学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。
进入系统后可以输入和修改某个项目的结果情况,可以按各系院编号输出总分;按总分排序;按男团体总分排序;按系编号查询;按项目编号查询;按女团体总分排序。
要求:建立一个文件,包括多个系,多个项目的得分情况,能对文件中的信息进行扩充(追加),修改和删除;完成对多个系,多个项目的得分排序,以及完成系统查询功能。
键盘输入:系数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)。
2. 哈夫曼树应用任务:1.从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;2.利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码。
同时将此字符形式的编码文件写入文件CodePrint中。
3.利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中,并输出结果。
要求:完成功能1、2和3。
3.图的遍历任务:实现图的深度优先, 广度优先遍历算法,并输出原图结构及遍历结果。
要求:两种必须都要实现,写出画图的思路;画出图的结构,有兴趣的同学可以进一步改进图的效果。
4.矩阵乘法任务:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,完成矩阵的加法,减法,数乘,转置,ab-1结果,对于不符合要求的运算给与提示。
要求:除键盘输入外,可通过文件输入。
5. 数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。
要求:完成规定功能。
6.n元多项式运算任务:完成两个n元多项式作加法、减法、乘法,给出明确的等式形式。
要求:建立一个文件,实现两个一元二次多项式运算。
要求:完成规定功能。
7.集合运算任务:完成集合的合并、求交集、差、对称差等操作。
要求:(1)使用顺序、单链表、双向循环链表、二叉平衡树、哈希表做存储形式表示集合。
(2)比较不同存储结构的算法效率。
8.公园的导游图任务:给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。
游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。
要求:建立一个文件,包括5个景点情况,能完成遍历功能;进一步扩充景点数目,画出景点图,9. 商店存货管理系统任务:建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。
要求:建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序;扩充商品数量,以及完成系统查询功能。
10. 汉诺威塔任务:编程序显示n(n<=9)层汉诺威塔的调整过程。
要求:完成规定功能。
11.个人帐簿管理系统设计任务:个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
要求:建立一个文件,包括某人每月的的收支情况,能对文件中的信息进行扩充(追加),修改和删除;以及完成系统查询功能。
12.排序系统设计任务:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。
开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m是停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。
如此下去,直到所有人全部出列为止。
令n最大值取30。
要求设计一个程序模拟此过程,求出出列编号序列。
要求:完成规定功能,13.一元稀疏多项式计算器任务:一元稀疏多项式简单计算器的基本功能是:(1)输入并建立多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;(3)多项式a和b相加,建立多项式a+b;(4)多项式a和b相减,建立多项式a-b;(5)多项式a和b相乘,建立多项式a*b.(6)计算多项式在x处的值.(7)求多项式a的导函数a′.(8)多项式的输出形式为类数学表达式.例如,多项式-3x8+6x3-18的输出形式为-3x∧8+6x∧3 -18,x15+(-8)x7-14的输出形式为x∧15-8x∧7-14.注意,系数值为1 的非零次项的输出形式中略去系数1,如项1x8的输出形式为x8,项-1x3的输出形式为-x3.(9)计算器的仿真界面.要求:用带表头结点的单链表存储多项式.。
14. 走迷宫游戏任务:程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。
游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
要求:1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;2) 迷宫的墙足够结实,老鼠不能穿墙而过;3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;5) 找出走出迷宫的所有路径,以及最短路径。
6)利用序列化功能实现迷宫地图文件的存盘和读出等功能15.哈夫曼编/编译器任务:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这是要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
试为这样的信息收发站写一个哈夫曼的编/译码系统。
要求:一个完整的系统应该具有以下功能:(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中。
(6)上述文件CodeFile中的每个“0”或“1”实际上占用了一个字节的空间,只起到示意或模拟的作用。
为最大限度的利用码点存储能力,试改写你的系统,将编码结果以二进制形式存放在文件CodeFile中。
(7)修改你的系统,实现对你的系统的原程序的编码和译码(8)实现各个转换操作的源/目文件,均由用户在选择此操作时指定。
测试数据:用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:16. 稀疏矩阵运算器任务:稀疏矩阵是指那些多数元素为零的矩阵。
利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。
实现一个能进行稀疏矩阵基本运算的运算器。
以“带行逻辑链接信息”的三元组、以十字链表表示稀疏矩阵。
表示稀疏矩阵,实现两矩阵相加、相减和相乘的运算。
稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。
实现矩阵求逆的运算。
要求:首先应输入矩阵的行数和列数,并判别两个矩阵的行、列数对于所要求做的运算是否相匹配。
可设矩阵的行数和列数均不超过20。
程序可以对输入的三元组进行限制,例如,按行优先。
注意提高计算效率。
17. 迷宫问题的求解及演示任务:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的道路和障碍.设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
编写递归形式的算法,求得迷宫中所有可能的通路;以方阵形式输出迷宫及其通路。
要求:首先实现一个以链表做存储结构的栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向.如:对于下列数据的迷宫,输出的一条通路为(1,1,1),(1,1,2),(2,2,2),(3,2,3),(3,1,2),…。
测试数据:迷宫测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口实现提示:计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。
假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。
可以二维数组存储迷宫数据,通常设定入口的下标为(1,10,出口点的下标为(n,n)。
为处理方便起见,可在迷宫的四周加一圈障碍。
对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。
18、串基本操作的演示任务:实现串类型,并写一个串的基本操作的演示系统。
要求:用堆分配存储表示实现HString串的最小操作子集的基础上,实现串抽象数据类型的其余基本操作,参数合法性检查必须严格。
系统既能处理正确的命令,也能处理错误的命令。
说明:(在格式中,Φ表示0个、1个或多个空格所组成的串;〈串标识〉表示一个内部名或一个串文字。
前者是一个串的唯一标识,是一种内部形式的(而不是字符形式的)标识符。
后者是两端由单引号括起来的仅可打印字符组成的序列。
串内每两个连续的单引号表示一个单引号符。
)利用上述基本操作函数构造以下系统:它是一个命令解释程序,循环往复地处理用户键入的每一条命令,直至终止程序的命令为止。
命令定义如下:(1)赋值。
格式:AΦ〈串标识〉Φ〈回车〉用〈串标识〉所表示的值建立新串,并显示新串的内部名和串值。
如:A ′Hi!′(2)判相等。
格式:EΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉若两串相等,则显示“EQUAL”,否则显示“UNEQUAL”。
(3)联接。
格式:CΦ〈串标识1〉Φ〈串标识2〉Φ〈回车〉将两串联接产生结果串,它的内部名和串值都显示出来。