数据结构与算法专业课程设计格式要求.doc
《数据结构与算法专业课程设计格式要求.doc》由会员分享,可在线阅读,更多相关《数据结构与算法专业课程设计格式要求.doc(36页珍藏版)》请在咨信网上搜索。
1、 数据结构和算法 课程设计(/第二学期第20周)指导老师: 孙麒 郭奕亿班级: 09计算机科学和技术1班学号: E0968姓名:倪建鹤数据结构和算法课程设计任务书数据结构和算法是计算机专业关键关键课程之一,在计算机专业学习过程中占有很关键地位。数据结构和算法课程设计就是要利用本课程和到现在为止相关课程中知识和技术来处理实际问题。尤其是面临非数值计算类型应用问题时,需要选择合适数据结构,设计出满足一定时间和空间限制有效算法。本课程设计要求同学独立完成一个较为完整应用需求分析。并在设计和编写含有一定规模程序过程中,深化对数据结构和算法课程中基础概念、理论和方法了解;训练综合利用所学知识处理实际问题
2、能力,强化面向对象程序设计理念;使自己程序设计和调试水平有一个显著提升。 赫夫曼编码/译码器1. 问题描述利用赫夫曼编码进行通信能够大大提升信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端经过一个编码系统对待传输数据预先编码,在接收端将传来数据进行译码(复原)。对于双工信道(即能够双向传输信息信道),每端全部需要一个完整编/译码系统。试为这么信息收发站编写一个赫夫曼码编/译码系统。2. 基础要求一个完整系统应含有以下功效:(1) I:初始化(Initialization)。从终端读入字符集大小n,和n个字符和n个权值,建立赫夫曼树,并将它存于文件hfmTree中。(2) E:编码(E
3、ncoding)。利用已建好赫夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中正文进行编码,然后将结果存入文件CodeFile中。(3) D:译码(Decoding)。利用已建好赫夫曼树将文件CodeFile中代码进行译码,结果存入文件Textfile中。以下为选做:(4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式编码文件写入文件CodePrin中。(5) T:印赫夫曼树(Tree printing)。将已在内存中赫夫曼树以直观方法(比如树)显示在终端上,同时将此字符形式赫夫曼树写入文件TreePr
4、int 中。3. 测试要求(1) 已知某系统在通信联络中只可能出现八种字符,其频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计赫夫曼编码。(2) 用下表给出字符集和频度实际统计数据建立赫夫曼树,并实现以下报文编码和译码:“THIS PROGRAME IS MY FAVORITE”。字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度57631514851802381811614. 实现提醒(1) 编码结果以文本方法存放在文件Codefile中。(2) 用户界面能够设计为“菜单
5、”方法:显示上述功效符号,再加上“Q”,表示退出运行Quit。请用户键入一个选择功效符。此功效实施完成后再显示此菜单,直至某次用户选择了“Q”为止。(3) 在程序一次实施过程中,第一次实施I,D或C命令以后,赫夫曼树已经在内存了,无须再读入。每次实施中不一定实施I命令,因为文件hfmTree可能早已建好。具体要求:课程设计结果内容必需由以下四个部分组成,缺一不可。(1) 上交源程序:学生根据试验题目标具体要求所开发全部源程序(应该放到一个文件夹中);(2) 上交程序说明文件:(保留在.txt中)在说明文档中应该写明上交程序所在目录,上交程序主程序文件名,假如需要安装,要有程序安装使用说明;(3
6、) 设计汇报:(保留在word 文档中,文件名要求: 根据“姓名_学号_设计题目”起名,如文件名为“ 张三_XXX_赫夫曼编码 ”.doc。打印稿用A4纸)。其中包含: 题目; 试验目标; 需求分析:在该部分中叙述实现功效要求; 概要设计:在此说明每个部分算法设计说明(能够是描述算法步骤图),每个程序中使用存放结构设计说明(假如指定存放结构请写出该存放结构定义); 具体设计各个算法实现源程序,对每个题目要有对应源程序(能够是一组源程序,每个功效模块采取不一样函数实现)。源程序要根据写程序规则来编写。要结构清楚,关键函数关键变量,关键功效部分要加上清楚程序注释; 调试分析测试数据,测试输出结果,
7、时间复杂度分析,和每个模块设计和调试时存在问题思索(问题是哪些?问题怎样处理?),算法改善设想; 总结: 总结能够包含 : 设计过程收获、碰到问题及处理问题过程思索、程序调试能力思索、对数据结构这门课程思索、在设计过程中对数据结构课程认识等内容。三、工作内容及工作计划:一周(20)时间地点工作内容指导老师7月 11日早晨10-414试验要求,需求分析; 孙麒、郭奕亿下午10-414查找资料,总体结构设计;孙麒、郭奕亿7月12日早晨10-414算法设计、用户界面设计孙麒、郭奕亿下午10-414算法设计、用户界面设计孙麒、郭奕亿7月13日早晨10-414具体设计孙麒、郭奕亿下午10-414具体设计
8、孙麒、郭奕亿7月14日早晨10-414具体设计孙麒、郭奕亿下午10-414具体设计孙麒、郭奕亿7月15日早晨10-414上机检验、答辩孙麒、郭奕亿下午10-414上机检验、答辩孙麒、郭奕亿四、考评成绩评定标准:本课程设计评价由三部分组成,包含程序演示(50%),课程设计汇报(30%),回复老师提问(20%)。1程序演示: 优功效完善,全部测试正确,而且能够对局部进行完善。 良功效完善,但测试欠缺。 中功效基础完善,但程序还有部分错误。 及格完成内存中赫夫曼编码/译码,但不包含文件操作。 不及格功效不完善,且程序错误较多,无法运行。2课程设计汇报: 优包含设计内容,设计思想,已经完成任务及达成目
9、标,设计思绪清楚、书写条理清楚,源程序结构合理、清楚,注释说明完整,有对此次课程设计心得体会。 良包含设计内容,设计思想,已经完成任务及达成目标,设计思绪基础清楚、书写条理基础清楚,源程序结构合理、清楚,注释说明基础完整,有对此次课程设计心得体会。 中课程设计汇报内容基础完整,思绪较清楚,书写基础清楚,源程序结构尚可,有注释说明但不完整。 及格课程设计汇报内容基础完整,思绪较差,书写尚清楚。 不及格课程设计汇报内容不完整,书写没有条理。3回复老师提问: 优能回复老师提出全部问题,并完全正确,思绪清楚 良基础能回复老师提出全部问题,有些小错误 中基础能回复老师提出问题,少数问题回复错误或不清楚
10、及格能回复老师提出问题,但较多问题回复错误或不能回复 不及格基础不能回复老师提出问题数据结构和算法课程设计目 录一、 题目二、 需求分析三、 概要设计四、 程序说明五、 具体设计六、 试验心得和体会赫夫曼编译码器一、题目问题描述利用赫夫曼编码进行通信能够大大提升信道利用率,缩短信息传输时间,降低传输成本。这要求在发送端经过一个编码系统对待传输数据预先编码,在接收端将传来数据进行译码(复原)。对于双工信道(即能够双向传输信息信道),每端全部需要一个完整编/译码系统。试为这么信息收发站编写一个赫夫曼码编/译码系统。基础要求一个完整系统应含有以下功效:(1) I:初始化(Initialization
11、)。从终端读入字符集大小n,和n个字符和n个权值,建立赫夫曼树,并将它存于文件hfmTree中。(2) E:编码(Encoding)。利用已建好赫夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中正文进行编码,然后将结果存入文件CodeFile中。(3) D:译码(Decoding)。利用已建好赫夫曼树将文件CodeFile中代码进行译码,结果存入文件Textfile中。(以下为选做:)(4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式编码文件写入文件CodePrin中。(5) T:印赫夫曼树(Tree
12、 printing)。将已在内存中赫夫曼树以直观方法(比如树)显示在终端上,同时将此字符形式赫夫曼树写入文件TreePrint 中。测试要求(1) 已知某系统在通信联络中只可能出现八种字符,其频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计赫夫曼编码。(2) 用下表给出字符集和频度实际统计数据建立赫夫曼树,并实现以下报文编码和译码:“THIS PROGRAME IS MY FAVORITE”。字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度5763151485180238
13、181161二、需求分析(1)初始化哈夫曼数(2)输入字符保留至tobetran.txt中(3)对字符编码(4)编码结果以文本方法存放在文件Codefile中。(5)在对codefile中编码进行译码(6)打印编码和哈夫曼树用户界面能够设计为“菜单”方法:显示上述功效符号,再加上“Q”,表示退出运行Quit。请用户键入一个选择功效符。此功效实施完成后再显示此菜单,直至某次用户选择了“Q”为止。 在程序一次实施过程中,第一次实施I,D或C命令以后,赫夫曼树已经在内存了,无须再读入。每次实施中不一定实施I命令,因为文件hfmTree可能早已建好。三、概要设计函数间关系图3.1所表示:主函数显示表头
14、初始化树输入字符编码译码打印编码打印赫夫曼树选最小两个权值Select()图3.1 函数间关系数据结构和算法设计赫夫曼编译码器关键功效是先建立赫夫曼树,然后利用建好赫夫曼树生成赫夫曼编码后进行译码 。在数据通信中,常常需要将传送文字转换成由二进制字符0、1组成二进制串,称之为编码。结构一棵赫夫曼树,要求赫夫曼树中左分之代表0,右分支代表1,则从根节点到每个叶子节点所经过路径分支组成0和1序列便为该节点对应字符编码,称之为赫夫曼编码。最简单二进制编码方法是等长编码。若采取不等长编码,让出现频率高字符含有较短编码,让出现频率低字符含有较长编码,这么可能缩短传送电文总长度。赫夫曼树课用于结构使电文编
15、码总长最短编码方案。其关键步骤图图3.2所表示。开始结点数是否大于1将data和权值赋给ht输出根结点和权值调用SELECT函数计算根结点函数父结点为两子结点之和输出两子结点和已结构结点是否为根结点?左子是否为空?此时编码为0I2*N?I+编码为1结束否否否右子是否为空是是否否是是是四、程序说明1赫夫曼树抽象数据类型定义ADT HuffmanCoding数据对象T:含有相同特征数据元素集合数据关系R:满足最优二叉树关系基础操作P:Init(&t)操作结果:结构一个空赫夫曼树t。encode()操作结果:利用赫夫曼树进行编码Decode()操作结果:利用赫夫曼树进行译码2. 主函数Void mi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 专业课程 设计 格式 要求
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。