数据结构实习报告
信息工程学院
数据结构与C语言综合训
练报告
(2012~2013学年夏学期)
报告题目:用Haffman编码压缩文件
姓名:____米源____ _______
专业:___电子商务_________
年级班级:__2011级112班____
指导教师:__吴昊,景旭_______
完成日期:__2012-7-14________
一.摘要
本次实习内容为用Haffman编码压缩文件
首先准备一个字符文件,要求:
1、统计该文件中各种字符的频率;
2、对各字符进行Huffman编码,显示每个字符的编码;
3、以及将该文件翻译成Huffman编码文件;
4、再将Huffman编码文件翻译成源文件;
5、显示每个字符以一个字节进行二进制编码后的编码文件;
6、以3和5的结果分析Haffman编码的优缺点。
二.综合训练目的和要求
本综合训练是计算机科学与技术、信息管理与信息系统、软件工程专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》、《数据结构》课程后进行的一次全面的综合练习。
1.本课综合训练的目的和任务:
1. 巩固和加深学生对C语言、数据结构课程的基本知识的理解和掌握
2. 掌握C语言编程和程序调试的基本技能
3. 利用C语言进行基本的软件设计
4. 掌握书写程序设计说明文档的能力
5. 提高运用C语言、数据结构解决实际问题的能力
2.本课综合训练的要求:
1. 分析综合训练题目的要求
2. 写出详细设计说明
3. 编写程序代码,调试程序使其能正确运行
4. 设计完成的软件要便于操作和使用
4. 设计完成后提交课程设计报告
三.综合训练任务内容
每个学生在教师提供的综合训练题目中任意选择一题,独立完成,题目选定后不可更换。本报告题目为用Haffman编码压缩文件
四.总体设计(程序设计组成框图、流程图)
程序的设计的主要思路:把哈弗曼数组的下标和字符的ASCII码以及存储哈弗曼编码的向量的下标对应起来,这样可以使得编码和设计思路比较容易。
流程图:
五.详细设计说明(模块功能说明(如函数功能、入口及出口参数说明及函数调用关系描述等)
1.程序系统的结构
用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
2.程序1(标识符)设计说明
从本节开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。
1) 程序描述
给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如是否有返回值等)。
2) 功能
说明该程序应具有的功能,可采用输入—处理—输出的形式。
3) 性能
说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。
4)输人项
给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。数量和频度、输入媒体(例如键盘,文件等)、输入数据的来源和安全保密条件等等。
5) 输出项
给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出(例如显示器,文件等)、对输出图形及符号的说明、安全保密条件等等。
6)算法
详细说明本程序所选用的算法,具体的计算公式和计算步骤。
7) 流程逻辑
用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
8) 接口
用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(结构体等)。
9) 存储分配
根据需要,说明本程序的存储分配。
10) 注释设计
说明准备在本程序中安排的注释,如:
a. 加在模块首部的注释;
b. 加在各分枝点处的注释;
c. 对各变量的功能、范围、缺省条件等所加的注释;
d. 对使用的逻辑所加的注释等等。
11) 限制条件
说明本程序运行中所受到的限制条件。
12) 测试计划
说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果等。
13) 尚未解决的问题
说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。
3.程序2(标识符)设计说明
用类似2的方式,说明第2个程序乃至第N个程序的设计考虑
六.软件使用说明
七.调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
八. 进度计划
第1天选择综合训练题目,分析课题的要求,查阅有关资料,复习相关知识;
第2天编写详细设计说明
第3天交详细设计说明电子稿,编程
第4~7天编程及调试
第8~9天写课程设计报告,提交软件
第10天提交课程设计报告(打印稿及电子稿),答辩
九.综合训练心得与体会
十.存在问题和改进意见
十一.附录
附录1:源程序和执行结果