欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计报告---基于哈夫曼树的文件压缩解压程序

    • 资源ID:1398630       资源大小:500.50KB        全文页数:30页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构课程设计报告---基于哈夫曼树的文件压缩解压程序

    1、 计算机科学学院 数据结构课程设计 题题 目:基于哈夫曼树的文件压缩目:基于哈夫曼树的文件压缩/ /解压程序解压程序 学生姓名:学生姓名: 学学 号:号: 专专 业:计算机科学与技术业:计算机科学与技术 班班 级:级: 指导教师姓名及职称:指导教师姓名及职称: 讲师讲师 起止时间:起止时间: 2014 年 3 月 2014 年 4 月 1 1 需求分析需求分析 1.1 课题背景及意义 近年来,随着计算机技术的发展,多媒体计算机技术、计算机网络技术以及 现代多媒体通信技术正在向着信息化、高速化、智能化迅速发展。各个领域的应 用与发展,各个系统的数据量越来越大,给数据的存储、传输以及有效、快速获

    2、取信息带来了严重的障碍。数据压缩技术能够比较有效地解决这个问题。 还有在最近几年中兴起的物联网和云计算都是对海量的数据进行处理和传 输的,如果不对数据进行压缩,那么数据传输所需的带宽要求就很高,物理成本 上也随之上升。所以说数据压缩在计算机通信中占有很重要的位置,且涉及领域 多,应用广泛,与我们的生活息息相关。 1.2 课题要求 1.2.1实现一个基于哈夫曼树的文件压缩程序和文件解压程序。 1.2.2.压缩程序能输入源文件进行压缩,输出压缩文件; 1.2.3解压程序读入压缩文件,根据相应的哈夫曼编码解压还原 ,得到对应的 源文件。 1.2.4可选做:求出压缩率;打印哈夫曼树;对文件夹压缩;图形

    3、图形化窗口 操作界面。 1.3 任务和要求 1.3.1 选择 1 时: 输入一个待压缩的文本文件名称(可带路径)。 如:D:1XXX.txt 压缩文件名称= D:1XXX.zip 1.3.2 选择 2 时: 输入一个待解压的压缩文件名称(可带路径)。 如:D:1YYY.txt 解压文件名称=D:1YYY.zip 2 2 概要设计概要设计 2.1 问题解决的思路概述 图 1 主程序流程图 2.2 算法思想: 2.2.1 输入要压缩的文件 首先运行的时候,用户主界面上有菜单提示该如何使用软件,根据菜单提示 选择所要执行的项,依次进行,因为各个环节之间有先后顺序。第一步为输入压 缩软件的名称, 由键

    4、盘输入文件路径和文件名称, 读入字符数组中, 打开该文件, 按照提示进行压缩。若打不开,则继续输入。 2.2.2 读文件并计算字符频率 文件将信息存放在字符数组中;计算每个字符出现的次数,申请一个结构体 数组空间, 用读取的字符减去字符结束符作为下标记录字符的频率。 2.2.3 根据字符的频率,利用 Huffman 编码思想创建 Huffman 树 将所记录的字符的频率作为权值来创建 Huffman 树, 依次选择权值最小的两 个字符作为左右孩子,其和作为父结点的权值,依次进行下去,直到所有的字符 结点都成为叶子结点。 统计字符, 得出统 计出字符的权值 n 建立哈夫曼 树 生成二进制文件 对

    5、二进制文件进 行解码 根据哈夫曼树编 码 对编码进行压缩 生成对应文件 根据哈夫曼树解 码 生成哈夫曼树 2.2.4 由创建的 Huffman 树来决定字符对应的编码,进行文件的压缩 根据创建的 Huffman 树来确定个字符的 01 编码,左孩子为 0,右孩子为 1。 读取文件,依次将每个字符用他们的编码表示,即完成一次编码。 2.2.5 解码压缩即根据 Huffman 树进行译码 读取编码文件,依据创建的 Huffman 树,定义一个指针指向根结点。从根结 点开始,每读一个字符,指针变化一次(当读取的字符是1时,指针指向当前 所指结点的右孩子,当读取的字符是0时,指针指向当前所指结点的左孩

    6、子) , 直至该指针所指结点为叶子结点时结束(即当结点的左右孩子均为空时) 。将当前 叶子结点所代表的字符值输出到译码文件中,依次读取编码文件中的字符,按照 上述方法依次进行下去直至文件 2.3 数据结构定义 typedef struct node /哈夫曼树结构体 long w;/权重 short p,l,r; /定义双亲,左孩子,右孩子 htnode,*htnp; typedef struct huffman_code unsigned char len;/记录该结点哈夫曼编码的长度 unsigned char *codestr; /记录该结点的哈夫曼编码 hufcode; 2.5 主程序的流程及模块间关系 主函数实例化 huffmanTree 类,并实现菜单工具栏,通过用户的选择输入,用 switch 语句进行分支执行 huffmanTree 类中功能函数: 1:压缩函数 int compress(char *source_file,char *obj_file); 2:解压函数 int de


    注意事项

    本文(数据结构课程设计报告---基于哈夫曼树的文件压缩解压程序)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583