收集20篇左右的某种英文文献资料(每篇字符数量>1万字符),将其编辑成一个超过20万字符的文件,统计每个英文字母的使用频率,对期中的一篇进行加密,然后运用统计方法进行解密,人工比较解密结果与明文的差距。要求:
1. 加密使用简单替换的方法进行,并且只对英文字母进行加密,其他字符不替换,字母替换不区分大小写并按如下方式进行:
a b c d e f g h i j k l m n o p q r s t u v w x y z
g d y e f q r x k a p t u i n o v b j w c s h z l m
即加密时字母a用字母g替换、字母b用字母d替换、字母c用字母y替换、。。。。。。字母z用字母m替换。
2. 设计一个统计字母出现频率的函数void arate(char filename[50],float fr[26]),函数的功能是统计filename文件中每一英文字母出现的频率,统计结果存放在数组fr[26]中,期中a[0]~a[25]分别表示字母a~z(大小写不分)出现的频率。
3. 设计一个加密函数void enp(char infile[50],char outfile[50],char key[26]),函数的功能是将文件infile中的所有字母根据字母表key[26]进行加密,加密结果输出到文件outfile中。
4. 设计一个函数void dep(char infile[50],char outfile[50],float fr[26]),函数的功能是根据字母频率表对文件(密文)中的每一字母进行解密,解密的结果存放到文件outfile中,方法是统计infile文件中每一字母出现的频率,根据频率表推断每一字母(密文)对应的字母(明文)。
>> 本文固定链接: http://www.vcgood.com/archives/2483
>> 转载请注明: momo19882007 2008年06月25日 于 C语言帝国 发表