计算机程序综合实验报告Huffman编码计算器.doc

计算机程序综合实验报告Huffman编码计算器.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机程序综合实验报告Huffman编码计算器

计算机程序设计综合实验 姓名: 学号: 班级: 撰写时间:2015/7/8 计算机程序综合设计实验 一、A部分 1 1、需求分析 1 2、 二、B部分 6 1、需求分析 6 2、 (2)流程图与结构图 7 3、测试 7 A部分 需求分析(描述程序要完成的功能, 要求清晰, 完整, 无二义性) ? 编写压缩程序, 为一个文本文件进行Huffman编码, 对其进行压缩, 将 压缩后的结果存储为文件 ? 编写解压程序, 将你压缩后的文件解压缩还原为原始文件 ? 程序要能够处理较大的文本文件, 例如提供的”kjv.txt” 二. 设计 1. 技术路线(打算通过什么手段来完成这些功能) (1)压缩: ①打开待压缩文件。 ②统计文章中出现的各字符及其权值,并赋值给header[i]数组。 ③根据权值大小对字符数组进行排序(此处采用从大到小的排序方法)。 ④找出最小权和次小权,并以此构件哈夫曼树,对每个字符进行哈夫曼编码(将所有的结点放到一个队列中,用一个结点替换两个频率最低的结点,新结点的频率就是这两个结点的频率之和。新结点就是两个被替换结点的父结点了,如此循环)。 ⑤重新读取文件将对哈夫曼的编码输出到输出文件。 ⑥记录输出的每个字符对应的编码(解压时要用到)。 解压缩: ①打开待解压缩的文件。 ②读取文档(一个一个字符的读取)并读出编码信息。 ③将header数组按照编码长度从小到大进行排列。 ④据此对文件部分进行解压缩。 流程图与结构图(结构图反映系统是如何进行模块划分的) 程序设计流程图: 输入1 输入数 输入2 字 Y N N Y Y 图1.流程图 (2)结构图: 1 2 图2.结构图 测试(采用了哪些测试样例, 这些样例是怎么设计出来的, 调试过程中都遇见了什么问题, 是如何解决的) 对kjv.txt文件进行压缩运行结果: 图3.压缩前原文件部分内容 图4.程序压缩文件成功界面 图5.压缩成功后压缩文档的部分内容 对kjv.txt文件的压缩文件运行解压缩操作结果: 图6.程序解压缩文件成功界面 图7.对文件解压缩后解压缩文件的部分内容 对文档进行压缩和解压缩后文档中出现的相应文件: 图8.文件夹中多出的文档 出现问题:文件压缩成功后再对其解压缩,一直不能成功。 解决办法:通过在网上有哪些信誉好的足球投注网站资料并且询问同学,在哈夫曼压缩函数尾部添加了记录哈夫曼编码的代码,为后面的解压缩函数提供基础。问题得到解决。 设计测试样例 由于本程序压缩的文件都是纯字符文件,所以在选择文件时,我们选择纯英文或者纯汉语文件。选取文件大小不同的英文和汉语文件,经测试,英文文件和汉语文件都能进行压缩,大容量文件和小容量文件也能进行压缩,压缩发现纯英文文件的压缩率较大。在文件解压时,将两个压缩后的文件进行解压,发现解压后的文件与原文件相同,故解压缩功能实现。 1、利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件。 2、实现算术加、减、乘、除等运算。 3、增加部分科学计算:三角函数的运算、对数运算、指数运算、进制转换等。 二. 设计 1. 技术路线(打算通过什么手段来完成这些功能) 用各种控件编辑好计算器的编辑框和按钮,然后给控件连接变量,建立类向导。 向三个类CAboutDlg CCalculatorApp CCalculatorDlg中添加代码。 设置编辑框的属性,为编辑框连接一个double类型的Value值变量m_result,用于将结果在编辑框中显示出来。 设置了两个变量number1和number2用来存放前后两个数字。 在编辑每个功能按钮时运用了UpdateData()这样一个函数,通过true和false来实现 DDX_Text(pDX, IDC_EDIT1, m_result);这个文件中IDC_EDIT1和m_result数据的转换在编辑框中输出结果时只要将number 否 是 三. 测试 1、操作说明 2、加减乘除法测试(以除法为例) 加法: 先输入一个数1 点击除号: 输入数字2 点击=后得到0.5 若除数为0,则有提示出错 3、科学计算(以对数运算为例) 输入数字5 点击Ln x按钮得到结果 本次简易计算器实验用基本对话框来完成本次实验并设计好实验的对话框样式,添加所需的按钮、编辑框等控件,给各个控件添加连接变量,接着设计好每个功能实现的算法步骤,然后为各个类中添加代码。并且定义两个变量number1和number2分别存放前后两个数字。然后用switch和case语句,实现按钮的功能。通过函数Update

您可能关注的文档

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档