数据结构及算法课程设计指导书_第1页
数据结构及算法课程设计指导书_第2页
数据结构及算法课程设计指导书_第3页
数据结构及算法课程设计指导书_第4页
数据结构及算法课程设计指导书_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计指导书主编 软件工程教研室 适用专业: 计算机科学与技术上海应用技术学院2012年06月目录第一章课程设计教学大纲2第二章课程设计任务与要求3第一章 数据结构与算法课程设计教学大纲课程代码B7042619课程名称课程设计Data Structure and algorithm course design课程基本情况1. 学分: 2 周数:22. 课程性质:学科专业基础课3. 适用专业:计算机软件工程专业(卓越计划试点班)4. 适用对象:本科5. 先修课程:计算机语言(C) ,离散数学,数据结构与算法6. 开课单位:计算机学院(*院(部、中心),企业)7. 课程教学网站:课程 教

2、学 目标通过课程设计,加深学生对数据结构课程内容以及相关技术的理解,并提高学生运用算法理论解决实际问题的能力。课程设计应以综合性或设计性题目为主,数量为3-4题左右。课程设计内容与要求1设计题目:布置综合性或设计性题目10道以上;布置基本题目10道以上。2设计内容:要求学生必须完成综合题2道以上,基本题3道以上。3设计要求:所选题目需要进行分析需求,绘制程序流程图、编制相关算法说明,最终编制并调试代码。4内容:在机房设计并编制程序,书写必要的程序文档。进程与时间安排序号内容环境要求时间(天)1分析需求,查找资料实验室22设计算法,绘制流程图实验室23编制程序,并调试实验室44完成课程设计报告、

3、答辩实验室2考核 方式考查课、操作考核教材与主要参考资料数据结构教程(第4版),李春葆,清华大学出版社,2014数据结构(C语言版),严蔚敏 吴伟民,清华大学出版社,2007数据结构(用面向对象方法与C+描述) ,殷人昆,清华大学出版社,1998C+数据结构与程序设计 (美)Robert L.Kruse/Alexander J.Ryba著/钱丽萍译, 清华大学出版社,2004 计算机算法设计与分析(第2版),王晓东, 电子工业出版社, 2004算法导论(第二版 影印版)(美) Corrmen. T. H. 北京:高等教育出版社,20025计算几何算法分析与设计周培德:北京:清华大学出版社,20

4、00.3第二章 课程设计任务与要求一、数据结构课程设计要求学生必须仔细阅读数据结构与算法课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。课程设计按照教学要求时间完成,每天(按每周5天)至少要上3-4小时的机来调试C语言设计的程序,总共至少要上机调试程序30小时。二、数据结构课程设计的具体内容本次课程设计完成如下模块(共20个模块,学生可以在其中至少挑选3-4个功能块完成,但有*号的模块是必须要选择2个,多做可以加分)1、 运动会分数统计*任务

5、:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

6、输出形式:有中文提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;2、 一元多项式计算*任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入;在上交资料中请写明:存储结

7、构、多项式相加的基本过程的算法(可以使用程序流程图) 、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;3、 订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订

8、单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 4、 迷宫求解任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;5、 文章编辑*功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的

9、次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;6、 joseph环 任务:编号是1,2,,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报

10、数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?要求:输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。输出形式:建立一个输出函数,将正确的输出序列7、 猴子选大王*任务:一堆猴子都有编号,编号是1,2,3 .m ,这群猴子(m个)按照1-m的顺序围坐一圈,

11、从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。要求:输入数据:输入m,n m,n 为整数,n<m输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能 8、 建立二叉树,层序、先序、中序、后序遍历( 用递归或非递归的方法都可以)*任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数、输出中序遍历序列的函数、输出后序遍历序列的函数; 9、 赫夫曼树的建立 任务 :建立建立最优二叉树函数 要

12、求:可以建立函数输入二叉树,并输出其赫夫曼树在上交资料中请写明:存储结构、 基本算法(可以使用程序流程图) 、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;10、 纸牌游戏*任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些? 要求有翻牌过程说明。11、图的建立及输出任务:建立图的存储

13、结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。 要求:根据邻接表分别输出图的深度优先遍历序列、广度优先遍历序列。12、拓扑排序任务:编写函数实现图的拓扑排序。13、 各种排序任务:用程序实现插入法排序、选择法排序、起泡法改进算法排序;利用插入排序、选择法排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。输入的数据形式为任何一个正整数,大小不限。输出的形式:数字大小逐个递增的数列。14、有序表的合并要求输入有序表的数据,利用顺序表和链表结构分布完成两个有序表合并功能,并输出合并后

14、的信息。15、学生成绩管理*任务:要求实现对学生资料的录入、浏览、插入和删除等功能。输入:设学生成绩以记录形式存储,每个学生记录包含的信息有:学号和各门课程的成绩,设学生成绩至少3门以上。存储结构:采用线性链式结构。16、汉诺塔问题*任务:设有三个分别命名为X、Y、Z的塔座,在塔座X上插有n个直径各不相同,从小到大依次编号1、2、n的圆盘,现要求将X塔座上的n个圆盘移到塔座Z上,并插在X、Y和Z中任一塔座;任何时候都不允许将较大的圆盘放在较小的圆盘之上。要求: (1)用户输入初始圆盘数; (2)输出所有的移动过程,有文字说明数据结构:可采用栈结构实现。17、地铁建设问题*任务:合理设计安排地铁

15、的建设线路,使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。要求:(1)读入辖区名称和各辖区间的直接距离; (2)根据读入的各辖区的距离信息,计算出应该建设哪些辖区间的地铁路线; (3)输出应该建设的地铁路线及所需建设的总里程信息。数据结构:本设计使用的数据结构是无向图,采用邻接矩阵作为存储结构。18、电文的编码和译码*任务:从键盘接收一串电文字符,输出对应的huffman编码。同时,能翻译由huffman编码生成的代码串,输出对应的电文字符串。要求:(1)构造一棵huffman树; (2)实现huffman编码,并用huffman编码生成的代码串进行译码; (3)程序中字符和权值是可变的

16、,实现程序的灵活性。数据结构:利用结构体数组来存储huffman树和编码。19、数制的转换任务:实现十进制数N和二进制数之间的转换。要求:输入相应的各式正确的数值(可以是混合小数的形式),程序按照设定的算法执行后,给出相对应的进制数数值,对于输入数据的合法性可以不做检查。数据结构:可采用栈或队列。20、医院就诊任务:模拟病人等待就诊过程。反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事:(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。(2)护士从等待队列中取出下一位病人的病历本,该病人进入诊室就诊。要求:程序采用菜单方式,功能说明如下:(1)排队输入排队病人的病

17、历号,加入到病人排队队列中;(2)就诊病人排队队列中最前面的病人就诊,并将其从队列中删除;(3)查看排队从队首到队尾列出所有的排队病人的病历号;(4)不再排队,余下依次就诊从队首到队尾列出所有的排队病人的病历号,并退出运行;(5)下班退出运行。数据结构:可采用队列。三、上交相关内容要求上交的成果的内容必须由以下四个部分组成,缺一不可。1 上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2 上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;3 课程设计报告:(保存在word 文档中,文件名要求 按照"姓名-学号-课程设计报告"起名,如文件名为"张三-001-课程设计报告".doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求;b)概要设计:在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。c)详细设计:各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论