目录一、系统开发的背景.......................................................................................................(1)二、系统分析与设计.......................................................................................................(1)三、系统的设计与实现...................................................................................................(2)(一)设计初始化(Initialization).......................................................................(2)(二)设计编码(Encoding).......................................................................................(3)(三)设计译码(Decoding).......................................................................................(3)(四)设计印代码文件(Print).................................................................................(4)(五)设计印哈夫曼树(TreePrinting)...................................................................(4)四、系统测试...................................................................................................................(5)(一)测试main函数.....................................................................................................(5)(二)测试编码(Encoding)及译码(Decoding)函数............................................(5)(三)测试印代码文件(Print)函数..........................................................................(6)(四)测试相关的根目录................................................................................................(6)五、总结............................................................................................................................(6)六、附件(代码、部分图表)........................................................................................(7)哈夫曼编/译码器系统一、系统开发的背景为了提高信道利用率,缩短信息传输时间,降低传输成本,且在信息发送端通过一个编码系统对待传数据预先编码,在信息接收端将传来的数据进行译码(复原),因此设计哈夫曼编码/译码器系统。二、系统分析与设计(一)系统功能要求:【任务要求】I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。T:印哈夫曼树(TreePrinting)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。【测试数据】利用教科书中的数据调试程序。用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THISPROGRAMISMYFAVORITE”。字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度5763151485180238181161(二)系统模块结构设计通过对系统功能的分析,哈夫曼编码/译码器系统功能如图1所示。编码印代码文件印哈夫曼树哈夫曼编码/译码器系统初始化译码图1哈夫曼编码/译码器系统功能图通过上图的功能分析,把整个系统划分为5个模块:1、初始化(Initialization),该模块主要实现:初始化要编辑的语句,然后语句里面有个调用输入编码的语句len=InputCode();2、编码(Encoding),该模块主要实现:voidEncoding();3、译码(Incoding),该模块主要实现:voidDecoding();4、印代码文件(Pri...