学院数计学院出卷教师许中元系主任签名。
制卷份数专业班级编号。
江汉大学2010—2011学年第 2 学期。
考核要求。课程编号课程名称: 数据结构课程设计。
考试形式:工程设计(非笔试)
适用范围: 数学与计算机学院计科系
一、设计考核说明:
学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动与教师沟通。
学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。
课程设计按照教学要求需要一周(5天)时间完成,二、具体要求:
1.学生在选题范围中选择设计题目(学生亦可自选择相关设计题目,但要求难度相当)。
2.学生单独进行相应软件项目的设计、实现工作,独立提交完整文档。
3.小组成员没有明确分工或者提交文档雷同,第2名及以后作不及格处理。
4.要求按照系统设计规范来撰写设计文档。文档包括封面(项目的题目、姓名等)、目录、主体设计部分以及后记。文档每人一份。
5.要求内容完整,结构清晰,最终提交电子文档与打印文档各一份。
三、设计题目选题表。
本次课程设计完成如下模块(下面共9个模块,学生必须在其中至少挑选3个完成,其中带**号标记的是必须要选择的,多做不限)
1. 一元多项式计算。
任务:能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输入;
在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
2. huffman树及huffman编码。
任务:由用户输入n个结点权值,建立huffman树并输出huffman编码。
3. 运动会分数统计。
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为,前三名的积分分别为;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:1)可以输入各个项目的前三名或前五名的成绩;
2)能统计各学校总分,3)可以按学校编号、学校总分、男女团体总分排序输出;
4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。
输出形式:有中文提示,各学校分数为整形。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求分别使用(1)全部合法数据;(2)整体非法数据;(3)局部非法数据等进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。
4.迷宫求解。
任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出。
要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。
5.文章编辑。
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共n行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章**现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。
6.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 ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列。
7.二叉树建立及相关算法实现 **
任务:按照广义表表达法建立二叉树,并实现二叉树的层次、先序、中序与后序遍历,以及输出树中叶子结点的结点值及叶子结点的个数( 用递归或非递归的方法都可以)。
要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立创建二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数、输出后序遍历序列的函数以及输出叶子结点值和个数的函数。
8.纸牌游戏。
任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;..再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:
这时正面向上的牌有哪些?
9.图的建立及输出。
任务:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。
10.排序算法的实现 **
任务:实现插入排序(直接插入排序、二分插入排序)、选择排序(直接选择排序、堆排序)、交换排序(冒泡排序、希尔排序)。
附:上交相关内容要求。
上交的成果的内容必须由以下四个部分组成,缺一不可。
1. 上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);
2. 上交程序的说明文件:(保存在。txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;
3. 课程设计报告:(保存在word 文档中,文件名要求按照"学号-姓名-课程设计报告"起名,如文件名为"001-张三-课程设计报告".doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:1)需求分析:
在该部分中叙述,每个模块的功能要求。
2)概要设计。
在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
3)详细设计。
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
4)调试分析。
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
4. 课设总结: (保存在word 文档中)总结可以包括 :
课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。
附:课程设计窗口示意图,供参考。
1. 主窗口。
2. 分层菜单。
3. 运行窗口。
4. 上交成果中要有你的磁盘文件说明。
6.上交的文件结构要清晰,主程序可以编译成exe 文件。
数据结构课程设计要求
数据结构大作业。一 作业目的。1 掌握使用数据结构进行程序设计的基本方法。2 理解和熟练掌握所使用的数据结构的各种相关操作。3 进一步提高编程能力。二 作业内容。1 水电费管理系统。问题描述 实现水电费管理系统,管理员可以录入 修改,删除和查询用户每月的水电费情况 普通用户可根据输入的信息 如姓名,...
数据结构课程设计要求
课程设计教学大纲。课程 252010071 课程名称 算法与数据结构 algorithm and data structure 总学时 或周数 学分 1周 24学时 1学分 开课学期 第4学期 计算机科学与技术专业 适用对象 计算机科学与技术专业本科生。先修课程 高等数学 概率论 高级程序设计语言c...
数据结构课程设计报告要求
数据结构课程设计报告书内容要求。1 上交文档要求。要求以打印文档和电子文档两种形式上交。1 打印文档要求 打印文档大小统一为 a4纸幅。并按照以下4项内容和次序装订。各部分排版规范参见电子文档中的模板。规范排版是为了让学生熟悉word工具在工程中的运用,为后期的毕业设计做准备。课程设计报告上交文档包...