工学数据结构课程设计报告.docx
- 文档编号:28303750
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:8
- 大小:20.89KB
工学数据结构课程设计报告.docx
《工学数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《工学数据结构课程设计报告.docx(8页珍藏版)》请在冰豆网上搜索。
工学数据结构课程设计报告
[工学]数据结构课程设计报告
[工学]数据结构课程设计报告沈阳工程学院课程设计设计题目:
数据结构及算法的设计与实现系别信息系班级计本081学生姓名李城龙学号2008412109指导教师职称起止日期:
2009年12月28日起——至2010年1月8日止VI沈阳工程学院计算机组成原理课程设计成绩评定表系(部):
信息工程系班级:
计本081学生姓名:
李城龙指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.55432指导教师评审成绩(加权分合计乘以8)分加权分合计指导教师签名:
年月日评阅教师评审意见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。
0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评阅教师签名:
年月日答辩小组评审意见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.55432答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:
年月日数据结构课程设计任务书一、设计目的数据结构是计算机专业的核心课程,是一门实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段,要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++)程序并上机调试的基本方法,还要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
二、设计要求1、课程设计题目每组三题,每个学生必须独立完成;2、课程设计时间为2周;3、设计语言C(C++)不限;4、课余时间完成源程序和课程设计报告等文档书写工作,上机时间只能做调试工作。
上机时带上源程序、数据结构教材、C语言教材。
5、上机任务1)选择合适的数据结构,并定义数据结构的结构体;2)根据程序所要完成的基本要求,设计出完整的算法;3)设计出主程序(main函数),使其成为完整的程序。
6、上机时间:
按照实验室上机时间安排计划执行7、无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
三、报告书写格式1.封皮2.成绩单3.任务书4.目录5.正文6.参考文献四、成绩评定评定成绩根据课程设计表现、成绩测验、课程设计报告等进行综合评定。
评定等级:
不及格、及格、中、良好、优秀。
五、设计题目设计题目一哈夫曼编\译码器设计要求:
1.初始化,键盘输入字符集大小n,n个字符和n个权植,建立哈夫曼树。
2.编码,利用建好的huffman树生成huffman编码;3.输出编码;4.译码功能;5.字符和频度如下:
字符空格ABCDEFGHIJKLMNOPQ频度18664132232103211547571232205763151字符RSTUVWXYZ频度48518023818116设计题目二文章编辑设计要求功能:
输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出“全部字母数“、“数字个数“、“空格个数“、“文章总字数“(3)输出删除某一字符串后的文章;设计题目三利用Hash技术统计C源程序中关键字的频度设计要求一、任务描述扫描一个C源程序,用Hash表存储该程序中出现的关键字,并统计该程序中的关键字出现的度。
用线性探测法解决Hash冲突。
设Hash函数为:
Hash(Key)=[(Key的首字母序号)*100+(Key的尾字母序号)]Mod41。
关键字39个,参考C语言教材。
二、数据结构设计①关键字表的存储结构;②Hash表中的结点结构。
频度、冲突次数三、功能设计①从一个大字符串中分解单词②识别是否是关键词;用哪种方法:
有序表查找、二叉查找树?
③Hash函数,解决冲突,统计冲突次数。
key=>地址④插入Hash表,或调整Hash表项中的频度⑤输出Hash表,关键词总数,冲突次数自己想象,功能要多,设计要合理。
设计题目四设计实现利用普里姆算法构造最小生成树的程序.设计内容与步骤选择合适的数据结构结点结构的设计算法设计与分析程序设计、实现、调试课程设计说明书进度安排设计工作4学时实现与调试12学时课程设计说明书4学时设计考核要求考勤20%课程设计说明书50%答辩30%五、参考书目[1]佟伟光,杨政《实用数据结构》(第二版)科学出版社[2]严蔚敏《数据结构》(C语言版)清华大学出版社[3]李保春编著,《数据结构习题与解析》,清华大学出版2001年第一版[4]徐孝凯编著,《数据结构课程实验》,清华大学出版2002年第一版[5]张乃笑编著,《数据结构与算法》,电子工业出版社2004年10月[6]王卫东编著,《数据结构辅导课》,西安电子科技大学出版社2001年[7]陈文博朱青著,《数据结构与算法》,机械工业出版社1996年[8]赵文静等编,《数据结构辅导》,西安交通大学出版社1999年沈阳工程学院课程设计(报告)摘要摘要“数据结构”是一门专业技术基础课。
它的教学要求是:
学会分析研究计算机加工的数据结构的特征,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。
另一方面,本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。
在学习中,先要学习程序设计课程的目的掌握设计程序的思路,学习会用计算机语言编写程序,以实现所需要处理的任务。
要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。
不应把学习重.点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。
一定要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程序。
请记住:
重要的是学会编程,而不是背语法。
程序设计是为了锻炼我们的实际动手能力,在一定程度上,又增加了我们的各方面的知识,特别是一些联系实际的课程设计,它的完成需要自己平时积累的大量知识、并且需要勤于思考的能力和无限的激情。
本次课设主要是学习程序设计的方法,进行程序设计的基本训练,大多数的学生应该把精力放在最基本,最常用的内容上,学好基本功。
最后,感谢老师在我们程序设计的过程中辛勤的指导和不倦的教诲。
关键词:
线性表,栈和队列,二叉树,图,查找,排序VII目录数据结构及算法课程设计成绩评定表……………………………………………I课程设计任务书…………………………………………………………………III摘要…………………………………………………………………………….VII第一章哈夫曼编\译码器………………………………………………………….11.1问题分析………………………………………………………………….11.2数据结构与算法分析…………………………………………………….11.3核心代码………………………………………………………………….31.4运行结果…………………………………………………………………8第二章文章编辑…………………………………………………………………101.1问题分析………………………………………………………………101.2数据结构与算法分析……………………………………………………101.3核心代码…………………………………………………………………121.4运行结果…………………………………………………………………17第三章利用Hash技术统计C源程序中关键字的频度………………………191.1问题分析…………………………………………………………………191.2数据结构与算法分析……………………………………………………191.3核心代码…………………………………………………………………211.4运行结果…………………………………………………………………32第四章设计实现利用普里姆算法构造最小生成树的程序………………………341.1问题分析………………………………………………………………….341.2数据结构与算法分析…………………………………………………….341.3核心代码………………………………………………………………….351.4运行结果………………………………………………………………….39总结………………………………………………………………………………40致谢………………………………………………………………………………41参考文献……………………………………………………………………………42沈阳工程学院课程设计(报告)第二章文章编辑第一章哈夫曼编\译码器当今社会,计算机技术和通信技术已不断发展,处理和传输的数据量越来越庞大。
如何采用有效的数据压缩技术引起了人们的极大重视。
从而产生了哈夫曼编码,它是一种应用广泛且非常有效的数据压缩技术,该技术一般可将数据压缩20%至90%,通常我们将压缩技术称为编码,解压缩过程称为解码。
树状结构简称为树,是一种以分支关系进行定义的层次结构,是十分重要的非线性数据结构,在计算机软件设计方面,有着广泛的应用。
1.1问题分析在程序的运行过程中,我们小组遇到了一些问题:
⒈不知该用哪种方法、按什么样的顺序查找各个结点。
⒉如何建立哈夫曼树,怎样能最简单的通过主函数去逐步调用其他各个函数以达到题目的要求。
⒊如何利用建好的huffman树生成huffman编码及如何实现译码功能。
通过查找资料我们解决了所有问题,构造哈夫曼树时,首先将由n各字符形成的n个叶子节点存放到数组HTNode的前n个分量中,然后根据前面介绍的哈夫曼方法的基本思想,不断将两个小子树合并为一个较大的子树,每次构成的新子树,每次构成的新子树的根节点顺序放到HTNode数组中的前n个分量的后面。
译码功能,假定电文中只使用A、B、C、D、E、F6种字符,若进行等长编码,它们分别需要3位二进制字符,可一次编码为000、001、010、011、100、101。
1.2数据结构与算法设计哈夫曼编\译码器的主要功能是先建立哈夫曼树,然后利用建好的哈夫曼树生成哈夫曼编码后进行译码。
在数据通信中,经常需要将传送的文字转换成由二进制字符0、1组成的二进制串,称之为编码。
构造一棵哈夫曼树,规定哈夫曼树中的左分之代表0,右分支代表1,则从根节点到每个叶子节点所经过的路径分支组成的0和1的序列便为该节点对应字符的编码,称之为哈夫曼编码。
最简单的二进制编码方式是等长编码。
若采用不等长编码,让出现频率高的字符具有较短的编码,让出现频率低的字符具有较长的编码,这样可能缩短传送电文的总长度。
哈夫曼树课用于构造使电文的编码总长最短的编码方案。
其主要流程图如图1-1所示。
开始结点数是否大于1将data和权值赋给ht输出根结点和权值调用SELECT函数计算根结点函数父结点为两子结点之和输出两子结点和已构造的结点是否为根结点?
左子是否为空?
此时编码为0I#include//要用system函数要调用的头文件#include//用getch()要调用的头文件#include#defineN50//义用N表示50叶节点数#defineM2*N-1//用M表示节点总数当叶节点数位n时总节点数为2n-1#defineMAXSIZE100typedefstruct{chardata;//结点值intweight;//权值intparent;//双亲结点intlchild;//左孩子结点intrchild;//右孩子结点}HTNode;typedefstruct{charcd[N];//存放哈夫曼码intstart;//从start开始读cd中的哈夫曼码}HCode;voidCreateHT(HTNodeht[],intn)//调用输入的数组ht[],和节点数n{inti,k,lnode,rnode;intmin1,min2;for(i=0;i#include#include#defineLENsizeof(structline)typedefstructline{char*data;//文本每行以字符串形式存储,行与行之间以链表存储structline*next;}LINE;//创建一链表,同时向里面输入p)-1]=\0;break;}}p->next=NULL;//最后的一个指针为空。
head=head->next;}//统计字母数intCountLetter(LINE*intcount=0;do{intLen=strlen(p->data);//计算当前data里的数据元素的个数for(inti=0;idata[i]>=a//下一个节点不为空returncount;//返回文章的字母总数}//统计数字数intCountNumber(LINE*intcount=0;do{intLen=strlen(p->data);//计算当前data里的数据元素的个数for(inti=0;idata[i]>=48returncount;}//统计空格数intCountSpace(LINE*intcount=0;do{intLen=strlen(p->data);//计算当前data里的数据元素
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 数据结构 课程设计 报告