欢迎来到天天文库
浏览记录
ID:44118540
大小:339.30 KB
页数:15页
时间:2019-10-18
《哈夫曼数实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验报告题目:编写哈夫曼数程序班级:软件工程(2)姓名:二二学号:0925115025完成日期:2011-5-24一.需求分析输入信息以加载存档的reading.txt文件为方式,加载不成功,提示出错信息,加载成功后,系统对其编码,并按照选择对各种相关信息存档。二.概要设计哈夫曼树用邻接矩阵作为存储结构,借助静态链表来实现遍历2.1结构定义#dcfincMAXVALUE1000//定义最大权值#defincMAXBIT100//定义哈夫曼树中叶子结点个数typcdcfstruct{chardata;//字
2、符值intnum;//某个值的字符出现的次数}TotalNodc;//统计结点,包括字符种类和出现次数typedefstruet{TotalNodctot[300];//统计结点数组intnum;//统计数组中含有的字符个数}Total;//统计结构体,包括统计数组和字符种类数typcdcfstruct{charmes[300];//字符数组intnum;//总字符数}Message;//信息结构体,包括字符数组和总字符数typedefstruet{intlockcd[500];//密码数组intnum;
3、//密码总数}Locking;//哈夫曼编码后的密文信息typcdcfstructchardata;//字符intweight;//权值intparent;//双亲结点在数组HuffNode[]中的序号intlchild;//左孩子结点在数组HuffNode[]中的序号intrchild;//右孩子结点在数组HuffNode[]中的序号}HNodetype;//哈夫曼树结点类型,包括左右孩子,权值和信息typedefstruet{intbit[MAXBIT];intstart;}HCodetype;//哈
4、夫曼编码结构体,包括编码数组和起始位2.2主要函数声明及功能描述如下voidreading_file(Message^message);从文件中读取信息voidwritingfile(Message^message);将信息写进文件voidtotalmessage(Message^message,Total*total);统计信息中各字符的出现次数voidHaffmanTree(Total*total,HNodetypeHuffNode[]);构建哈夫曼树voidHaffmanCode(HNodetype
5、HuffNode[],HCodetypeHuffCode[],Total*total);建立哈夫曼编码voidwritingHCode(HNodetypeHuffNode[],HCodetypeHuffCode[],Total*total);将编码规则写进文件voidlock(Message^message,HNodetypeHuffNode[],HCodetypeHuffCode[],Total^total,Locking^locking);给文件信息加密编码voidwritinglock(Lockin
6、g^locking);将已编码信息写进文件voidwritingtranslate(Locking^locking,HCodetypeHuffCode[],HNodetypeHuffNode[],Total*total);将已编码信息翻译过来并写进文件一.详细设计头文件head.h^defineMAXVALUE1000//定义最大权值^defineMAXBIT100//定义哈夫曼树中叶子结点个数typedefstruct{chardata;//字符值intnum;//某个值的字符出现的次数}TotalNo
7、de;//统计结点,包括字符种类和岀现次数typedefstruct{TotalNodctot[300];//统计结点数组intnum;//统计数组中含有的字符个数}Total;//统计结构体,包括统计数组和字符种类数typedefstruct{charmcs[300];//字符数组intnum;//总字符数}Message;//信息结构体,包括字符数组和总字符数typedefstruct{intlocked[500];//密码数组intnum;//密码总数}Locking;//哈夫曼编码后的密文信息ty
8、pedefstruct{chardata;//字符intweight;//权值intparent;//双亲结点在数组HuffNode[]中的序号intlch订d;//左孩子结点在数组HuffNode[]中的序号intrch订d;//右孩了结点在数组HuffNode[]中的序号}HNodetype;//哈夫曼树结点类型,包括左右孩子,权值和信息typedefstruct{intbit[MAXBIT];intstart;}HCod
此文档下载收益归作者所有