求助,数据结构课设,哈夫曼编码实现文本文件的压缩和解压!!我可以付费! 20

文本文件的压缩/解压实用程序【问题描述】WinZip是大家经常使用的一个文件压缩/解压实用程序。这个程序使用的是无损压缩方法,即压缩后的文件经过解压后与原始文件完全一样。... 文本文件的压缩/解压实用程序
【问题描述】
WinZip是大家经常使用的一个文件压缩/解压实用程序。这个程序使用的是无损压缩方法,即压缩后的文件经过解压后与原始文件完全一样。这是对文本文件进行压缩的基本要求。本次“数据结构与算法分析”课程设计要求大家利用课堂上讲述的理论知识实现文本压缩和解压的操作。

【基本要求】
请设计一个文本文件的压缩和解压程序。具体要求如下:
1. 先统计文件中出现的每个字符的出现次数;
2. 根据上述的统计结果设计huffman编码;
3. 为提高查询速度,以每个字符的huffman为结点内容构造一棵二叉排序树;
4. 压缩。即将文本文件中的每个字符用huffman编码代替,并写入二进制文件中。也就是说,压缩文件是一个记录文件内容的二进制流;
5. 解压。即将二进制文件还原为文本文件。
6.程序运行后应该有一个菜单,菜单至少应该包含:打开文本文件、压缩、解压、查看二进制文件、查看每个字符的huffman编码、查看字符出现统计结果、帮助、退出等菜单项。

【输入】
1. 待压缩的文本文件
2. 待解压的二进制文件

【输出】
程序应该能够显示下列内容:
1. 每个字符的出现次数
2. 每个字符的huffman编码
3. 文本文件
4. 二进制文件
5. 原文本文件与二进制文件的大小对比

【实现提示】
一、本题应该涉及下面三种数据结构:
(1)文本文件:待压缩文件
(2)二进制文件:压缩后的文件
(3)huffman树
(4)huffman编码:应该选择一种易于在解压是搜索编码的数据结构(自行设计)

二、技术难点:
在压缩时,将二进制编码拼接为以字节为单位的二进制流;在解压时,从以字节为单位的二进制流中分离出每个字符的编码。

三、过程提示:
压缩:
(1)统计每个字符出现的次数
(2)设计huffman编码
(3)将文本文件内容压缩到一个二进制文件中。注意,为能够解码,在压缩文件中要保留huffman编码。

解压:
(1) 读出huffman编码
(2) 按位读取二进制文件,并搜索huffman编码表,搜寻匹配的字符,并形成文本文件。

【扩展要求】
(1) 将多个文本文件压缩到一个二进制文件中
(2) 选择两种以上存储huffman编码的数据结构,并比较查询速度的差异
(3) 可以自行根据压缩/解压程序的实际应用情况,扩展功能

【检查计划】

第一次检查 初期检查
1.问题需求分析,系统的基本功能设计(书面)
2.数据结构设计(书面)
3.程序结构原型(书面)
4.读取文本文件,设计huffman编码(代码)

第二次检查 中期检查
使用自带的数据,演示程序的功能(代码,测试数据)

第三次检查 最终检查
1.文档齐全
2.根据测试数据,运行程序;演示时适当地讲解,并且回答问题
3.添加功能的现场操作
可以加我qq么??我是一点都不会。。我可以按时间付费。
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
修行虚最美0Y
2007-07-09 · 超过25用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:0
展开全部
找一下huffman的类模块,网上好多,你要的基本功能都有...
huffman压英文还好,对中文压缩还有不少问题

RE:我已经把源码地址发给你...网上有的...不用付费..
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式