一、实验目的
通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。
二、需求分析
1、文件加密核心算法(赫夫曼编码)设计
文件加密的核心算法是赫夫曼编码,赫夫曼编码的完成首先建立在赫夫曼树的创建,在此之前要完成编码字符的权值计算,依照题意:
1、输入26个字符的权值。
2、 依次找出最小的权值,创建赫夫曼树HuffmanTree。
3、赫夫曼树创建完毕,即可进行字符串的编码和解码工作。核心算法即完成。
2、功能要求和说明
在一个加密应用中,要处理的信息来自下面的字符集,各个字符的相关使用频度如下:
字符 空格 A B C D E F G H I J K L M
频度 180 64 13 23 32 103 22 15 47 57 1 5 31 20
字符 N O P Q R S T U V W X Y Z
频度 55 63 15 1 48 56 80 25 7 18 2 16 1
现请编写程序你实现如下功能:
(1)运行时,由用户输入来初始化字符集大小和相应用字符。
(2)输入一个要加密的字符串,将其加密。
(3)输出解密字符串。
三、系统实现
1、输入权值