- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科技大学
实验报告
学生姓名:郭小明 学号:20
一、 实验室名称:主楼A2-412
二、 实验项目名称:
软件开发环境试验——Huffman编码实验
三、 实验原理:
分割函数的三项原则
分割函数的三项原则包括:与其写注释,不如写函数;重复就是罪恶;函数不要超过
50行至70行。
关于分割函数三原则的具体含义,请见教材和课堂教学 PPT关于电话本的内容。这里
不再赘述。
Huffman编码的基本原理
本实验要求使用Huffman编码算法,实现对文件的压缩和解压。 因此,我们首先介绍
huffman的编码算法。
Huffman编码是一种可变长编码方式,是由美国数学家 David Huffman创立的,是二
叉树的一种特殊转化形式。编码的基本原理是:将使用次数多的代码转换成长度较短的编 码,而使用次数少的代码则可以使用较长的编码,并且保持编码的唯一可解性。
指导书试验原理部分较多,在这里就不做粘贴复制了。
四、 实验目的:
本实验总体目的是,通过使用 huffman编码算法从而实现文件的压缩和解压,以达到 使学生掌握并灵活运用分割函数的三项原则。
五、实验内容:
本实验要求实现一个exe程序。这个程序按照huffman编码方式,同时包含了压缩功能 和解压功能。用户通过以下命令进行压缩:
C:\> - c uncompress_filename compress_filename
上述命令中,是程序名,-c表示要进行压缩。uncompress_filenam是要压缩的文件名, 可以包含路径信息,而 compress_file name是压缩之后的文件名,同样可以包含路径信息。 用户可以通过如下命令进行解压:
C:\> - u compress_filename uncompress_filename
上述命令中,-u表示要执行解压命令。compress_filename是要解压的文件名,可以包 含路径信息;un compress_file nam^是解压后所得到的文件,同样可以包含路径信息。
提示:在实现程序时,需要考虑如何存储 huffman树或者编码表或者词频表等等。
本实验要求实现两个版本的程序,一是 C语言版本的,二是C++版本的。对这两个版
本的要求如下:
对于每一个版本的程序,需要在实验报告中给出函数调用关系图、流程处理关系 图以及它们的文字说明等内容;
对于每一个版本的程序,都需要在实验报告中给出源代码。为了便于查重,代码 中注释的比例要占到总行数的 20%;
C++版本的程序,需要给出类关系图。
实验报告的评分标准,包括以下几个方面:
实验报告是否规范
实验报告内容是否详实
实验报告中是否包含了函数调用图、流程图、类图以及它们的文字说明
实验报告中的代码注释是否达到要求
程序是否正确无误
程序是否严格按照分函数的原则编写
C++版本的程序类关系的耦合度如何
程序实现是否考虑了大文件情况
六、 实验器材(设备、元器件):
PC机,vs 2008软件平台。
七、 实验数据及结果分析:
代码见附件。
huffma nForC
文件中函数列表如下:
#sum_bit##co unt#
*/
void freToFile(int code[],HCode *HC)
Huffma nTree
Control 类 jmp
整个多分支流
HuffmanNo
Code 类
令地址
swap()
else if()
cmp操作数1操作数2
jxx地址(如果不符合if条件就跳转到下一个if条件处再进行比较)
jmp 整个多分支流程语句后的指令地址
}
else if()
cmp操作数1操作数2
jxx地址(如果不符合if条件就跳转到下一个if条件处再进行比较)
{
jmp 整个多分支流程语句后的指令地址
else if ()
cmp操作数1操作数2 jxx地址(如果不符合if条件就跳转到else条件处再进行比较)
{
}
else
jmp 整个多分支流程语句后的指令地址
{
}
for循环反汇编代码
for循环反汇编代码
通过实验指导书当中给出的代码清单 9的反汇编结果和分析,给出
的规律如下:
for(int i = 0;i<10;i++)
{
定义i变量,并进行初始化指令代码
jmp xxx跳转到A处执行
B:执行计数变量递增操作
将变量i mov至U eax处
eax里内容递增1
再将eax里面内容mov到i的变量里
A:cmp操作数1操作数2与循环结束条件做比较指令代码
jxx xxx 如果仍旧满足条件,向下执行;否则跳转到 C处向下执行
循环体指令代码
jmp xxx跳转到B处执行
}
C:
代码清单10
while循环的代码示例:
int _tmain(nt argc, _TCHAR* argv[])
{
int i
您可能关注的文档
- 电梯维保报价书(2).docx
- 电焊比赛试题.docx
- 箱梁压浆技术交底.docx
- 考研人大专业介绍之农村发展专业.docx
- 考研备考资料:外国教育史.docx
- 考研政治马原强化资料-人民群众是历史的创造者.docx
- 考研数学极限必做题.docx
- 考研英语阅读真题:考研英语(一)第篇毙考题.docx
- 考研:统考专业参考书目.docx
- 考评软件产品介绍.docx
- 山东省临沂市沂水县2023-2024学年高一下学期期中考试历史试题.docx
- 江苏省泰州市靖江高级中学2023-2024学年高二下学期4月期中考试物理试题(无答案).docx
- 新疆部分名校2023-2024学年高二下学期期中联合考试语文试题.docx
- 湖南省岳阳市岳阳县第一中学2023-2024学年高三下学期4月期中考试数学试题.docx
- 山东省烟台市2023-2024学年高二下学期4月期中生物试题(无答案).docx
- 江苏省靖江高级中学2023-2024学年高二下学期期中地理试题(无答案).docx
- 四川省甘孜藏族自治州某重点中学2023-2024学年高一下学期4月期中考试物理试题.docx
- 湖北省武汉市华中师范大学第一附属中学2023-2024学年高二下学期4月期中英语试题(无答案).docx
- 四川省成都市金牛区成都市实验外国语学校2024年高三三模考试生物试题.docx
- 浙江省宁波市北仑中学2023-2024学年高二下学期期中考试物理试题.docx
1亿VIP精品文档
相关文档
最近下载
- 振动搅拌磨机设计说明书.doc VIP
- DB43 T 2723-2023 气凝胶绝热材料通用技术要求.pdf
- 历年中考化学真题汇编上海(含解析).doc
- 2023年春电大国家开放大学信息技术应用形考任务1-3答案.docx
- 虚拟光驱软件酒精Alcohol120详细使用图文教程.pdf
- 诚信教育主题征文.docx VIP
- ABB 传动变频器 ACS580-01 变频器(0.75-250 kW,1.0-350 hp)硬件安装及使用手册.pdf
- 图书推荐系统的设计与实现.docx
- 妇幼保健信息化管理平台和智慧产科信息系统建设方案.docx
- 备战2023年中考语文模拟试卷(三)(学生版)(上海专用).docx VIP
文档评论(0)