课程设计任务书---数据结构

上传人:Bod****ee 文档编号:47497799 上传时间:2018-07-02 格式:DOC 页数:30 大小:279.53KB
返回 下载 相关 举报
课程设计任务书---数据结构_第1页
第1页 / 共30页
课程设计任务书---数据结构_第2页
第2页 / 共30页
课程设计任务书---数据结构_第3页
第3页 / 共30页
课程设计任务书---数据结构_第4页
第4页 / 共30页
课程设计任务书---数据结构_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《课程设计任务书---数据结构》由会员分享,可在线阅读,更多相关《课程设计任务书---数据结构(30页珍藏版)》请在金锄头文库上搜索。

1、 数据结构综合实践数据结构综合实践 课程设计任务书课程设计任务书中文:数据结构综合实践课程设计名 称英文:Datastructure Comprehensive Practice适用专业软件工程培养层次本科学期第 4 学期周数1学分1总学时1 周一、课程设计目的与要求一、课程设计目的与要求课程设计目的课程设计目的 1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行

2、软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。课程设计要求课程设计要求通过课程设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。学生自选课程设计题目,设计题目从任务书所列选题表中选取,每班每题不得超过 2 2 人。学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在 15 周前报课程设计指导教师批准方可生效。1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计

3、实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、设计的题目要求达到一定工作量(300300 行以上代码) ,并具有一定的深度和难度。3、程序设计语言推荐使用 C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份) ,要求编排格式统一、规范、内容充实,不少于 10 页(代码不算) ;6、课程设计实践作为培养学生动手能力的一种手段,单独考核。二、课程设计内容与要求二、课程设计内容

4、与要求供选择的数据结构程序课程设计题目供选择的数据结构程序课程设计题目第一类题目第一类题目 线性表及其应用线性表及其应用该类题帮助学生熟练掌握线性表的基本操作,以及在两种存储结构上的实现,其中以各种链 表的操作和应用作为重点内容。1. 运动会分数统计运动会分数统计【问题描述】 参加运动会的n个学校编号为1n。比赛分成m个男子项目和w个女子项目,项目编号分别为 1m和m+1m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为 7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和 得分报表。 【基本要求】 1)可以输入各个项目的前三名或前五名的

5、成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。5)数据存入文件并能随时查询 6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,各学校分数为整型。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文 件中。 测试数据: 【测试数据】 要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程 序

6、的稳定。 例如,对于n=4,m=3,w =2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计 一组实例数据。 【实现提示】 可以假设n20,m30,w20,姓名长度不超过 20 个字符。每个项目结束时,将其 编号、 类型符(区分取前五名还是前三名) 输入,并按名次顺序输入运动员姓名、校名(和成 绩)。 【选作内容】 允许用户指定某项目采取其他名次取法。2.2. 约瑟夫环约瑟夫环【问题描述】 约瑟夫 (Joseph) 问题的一种描述是:编号为 1,2, ,n 的n个人按顺时针方向围坐一圈, 每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针 方向自

7、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) 。【实现提示】程序运行后,首先要求用户指定初始报数上限值,然后读取各人的密码。可设n30。 此题所用的循环链表中不需要 “头结点”,请注意空表和非空表的界限。【选作

8、内容】向上述程序中添加在顺序结构上实现的部分。3.3. 集合的并、交和差运算集合的并、交和差运算( (此题目不能选,因为报告范例对应的就是该题目此题目不能选,因为报告范例对应的就是该题目) )【问题描述】 编制一个能演示执行集合的并、交和差运算的程序。 【基本要求】 (1) 集合的元素限定为小写字母字符 a.z 。 (2) 演示程序以用户和计算机的对话方式执行。 【测试数据】 (1)Set1=“magazine“,Set2=“paper“, Set1Set2=“aegimnprz“,Setl Set2=“ae“,Set1-Set2=“gimnz“。 (2)Set1= “ 012oper4a6t

9、ion89“,Set2=“error data“, Set1Set2=“adeinoprt“,Setl Set2=“aeort“,Set1-Set2=“inp“。 【实现提示】 以有序链表表示集合。 【选作内容】 (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。4.4. 长整数四则运算长整数四则运算【问题描述】 设计一个实现任意长的整数进行加法运算的演示程序。 【基本要求】 利用双向循环链表实现长整数的存储,每个结点含一个整型变量。任何整型变量的范 围是 (215-l)(215-1) 。输入

10、和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号 隔开。 【测试数据】 (1) 0;0; 应输出 “0“ 。 (2)2345,6789; 7654,3211; 应输出 “1,0000,0000“ 。 (3)9999,9999;1,0000,0000,0000; 应输出 “9999,0000,0001“ 。 (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“ 。 (

11、7) 1,0000,9999,9999;1; 应输出 “1,0001,0000,0000 “ 。 【实现提示】 (1) 每个结点中可以存放的最大整数为 215-1=32767, 才能保证两数相加不会溢出。但若这 样存放,即相当于按32768进制数存放,在十进制数与32768进制数之间的转换十分不方便。故可以在每个结点中仅存十进制数的4位,即不超过9999的非负整数,整个链表表示为万进制数。 (2) 可以利用头结点数据域的符号代表长整数的符号。相加过程中不要破坏两个操作数链表。 不能给长整数位数规定上限。 【选作内容】 (1) 实现长整数的四则运算; (2) 实现长整数的乘方和阶乘运算; (3)

12、 整型量范围是 (2n1) (2n1), 其中,n是由程序读人的参量。输入数据的分 组方法可以另行规定。5.5. 一元稀疏多项式计算器一元稀疏多项式计算器【问题描述】 设计一个一元稀疏多项式简单计算器。 【基本要求】 一元稀疏多项式简单计算器的基本功能是: (1) 输入并建立多项式 ; (2) 输出多项式,输出形式为整数序列:n,cl,el,c2,e2,cn,en,其中n是多项式的项 数,ci 和ei,分别是第 i 项的系数和指数,序列按指数降序排列; (3) 多项式a和b相加,建立多项式a +b; (4) 多项式a和b相减,建立多项式a -b 。 【测试数据】 (1)(2x+5x83.1x1

13、1) + (75x8+11x9)=(3.lx11+11x9+2x+7) (2)(6x-3x+4.4x21.2x9) (-6x-3+5.4x2x2+7.8x15) =(-7.8x15-1.2x9+12x-3-x) (3)(1 +x + x2+x3+x4+x5)+(-x3x4)=(1+x+x2+x5) (4)(x+x3)+(-xx3)=0 (5)(x+x100)+(x100 +x200)=(x+2x100+x200) (6)(x+x2+x3)+0=x+x2+x3 (7) 互换上述测试数据中的前后两个多项式 【实现提示】 用带表头结点的单链表存储多项式。 【选作内容】 (1) 计算多项式在x处的值。

14、 (2) 求多项式 a 的导函数 。a(3) 多项式a和b相乘,建立乘积多项式ab 。 (4) 多项式的输出形式为类数学表达式。例如 ,多项 式 -3x8+6x318 的输出形式为 ,x15+(8)x714的输出形式为。注意,数值为1的非零次183683xx147815xx 项的输出形式中略去系数1,如项1x8的输出形式为x8,项 1x3的输出形式为x3。 (5) 计算器的仿真界。6.6. 池塘夜降彩色雨池塘夜降彩色雨【问题描述】 设计一个程序,演示美丽的“池塘夜雨”景色:色彩缤纷的雨点飘飘洒洒地从天而降, 滴滴 入水有声,溅起圈圈微澜。 【基本要求】 (1) 雨点的空中出现位置、降范过程的可

15、见程度、入水位置、颜色、最大水圈等,都是随机确 定的 ; (2) 多个雨点按照各自的随机参数和存在状态,同时演示在屏幕上。 【测试数据】 适当调整控制雨点密度、最大水圈和状态变化的时间间隔等参数。 【实现提示】 (1) 每个雨点的存在周期可分为三个阶段:从天而降、入水有声和圈圈微澜,需要一 个记录存储其相关参数、当前状态和下一状态的更新时刻。 (2) 在图形状态编程。雨点下降的可见程度应是断断续续、依稀可见;圈圈水波应是 由里至外逐渐扩大和消失。 (3) 每个雨点发生时,生成其记录,并预置下一个雨点的发生时间。 (4) 用一个适当的结构管理当前存在的雨点,使系统能利用它按时更新每个雨点的状态,

16、一旦 有雨点的水圈全部消失,就从结构中删去。 【选作内容】 (1) 增加“电闪雷鸣”景象。 (2) 增加风的效果,展现“风雨飘摇”的情景。 (3) 增加雨点密度的变化:时而“和风细雨”, 时而“暴风骤雨”。 (4) 将“池塘”改为“荷塘”,雨点滴在荷叶上的效果是溅起四散的水珠,响声也不同。第二类题目第二类题目 栈和队列及其应用栈和队列及其应用仅仅认识到栈和队列是两种特殊的线性表是远远不够的,该类题在于使读者深入了解栈和队列 的特性,以便在实际问题背景下灵活运用它们;同时还将巩固对这两种结构的构造方法的理解。 编程技术训练要点有:基本的任务书观点及其典型用法;问题求解的状态表示及其递归算法; 利用栈实现表达式求值的技术;事件驱动的模拟方法;以及动态数据结构的实现。7.7. 停车场管理停车场管理【问题描述】 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内 按车辆到达时间的先后顺序,依次由北向南排列

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号