c语言3.14 le10,C语言数据结构+代码(14页)-原创力文档

学院

计算机科学系

数据结构课程设计报告

设计名称: 压缩器/解压器

姓 名:

学 号:

专业班级: 08软件技术(1)班

系 (院): 计算机科学系

设计时间: 2009~2010学年第二学期

设计地点: 六楼机房

目 录

HYPERLINK 一 需求分析----------------------------------------------------------------------------------------3

HYPERLINK 二 概要设计----------------------------------------------------------------------------------------3

HYPERLINK 三 详细设计----------------------------------------------------------------------------------------6

HYPERLINK 四 测试与分析-------------------------------------------------------------------------------------10

五 测试结果--------------------------------------------------------------------------------------- 11

六 用户使用说明--------------------------------------------------------------------------------- 13

七 课程总结 -----------------------------------------------------------------------------------13

八 考文献-------------------------------------------------------------------------------------------14

九 附录----------------------------------------------------------------------------------------------

一 、需求分析:

为了节省存储空间,常常需要把文本文件采用压缩编码的方式储存,对于很大的文件来说,节省文件的存储空间就根相当于节省成本,只需要在存储时花费一点额外的运行时间,但在现在计算机的运行速率来说,这点时间不是问题,并且不影存储效果,这次的课程设计利用了lzw(Lemple-Ziv-Welch 由三人创造,故用他们的名字命名)算法来实现。

Lzw压缩算法是一种广泛应用的压缩算法,它不仅用于文本文件压缩,还用于各种图像文件压缩,而且在压缩过程中不使原文件失真,压缩效果好,特别是对一些有大量重复子串的文本文件,压缩效果更好。字符串和编码的对应关系是在压缩过程中动态生成的,并且隐含在压缩数据中,解压的时候根据表来进行恢复,算是一种无损压缩.

压缩/解压器要完成的主要功能:

用户登录进行选项选择。

对文件进行无损失压缩.

对压缩文件进行解压,并且原文件数据不丢失.

二、概要分析

2.1. 系统功能设计:

经过分析,压缩/解压器可分为四个模块。

A 系统主函数模块

B 压缩模块 Yasu().

C 解压模块 Jieya().

D 菜单选择模块 Menu().

2 系统功能分析:

2.2 压缩/解压器用到lzw算法,其它基本概念如下:

LZW压缩算法的基本概念:LZW压缩有三个重要的对象:数据流(CharStream)、编码流(CodeStream)和编译表(String Table)。

在编码时,数据流是输入对象(文本文件的据序列),编码流就是输出对象(经过压缩运算的编码数据);在解码时,编码流则是输入对象,数据流是输出对象;

而编译表是在编码和解码时都须要用借助的对象。字符(Character):最基础的数据元素,在文本文件中就是一个字节;

字符串(String):由几个连续的字符组成; 前缀(Prefix):也是一个字符串,不过通常用在另一个字符的前面,而且它的长度可以为0;根(Root):一个长度的字符串;编码(Code):一个数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值