算法与编程实习报告
第一题:统计字母的使用频率
一、题目:统计字母的使用频率
目的与要求
1.目的:
通过编写程序统计字母的使用频率,培养学生综合利用C语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。
2.基本要求:
1)要求用C语言编程,在VisualC++环境下调试完成;
2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
3)要求应用本课所讲授的程序设计语言知识来解决问题
设计方法和基本原理
1.课题功能描述:本程序的功能,就是要统计英文字母的使用频率。
2.问题详细描述
为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现的次数)。
3.问题的解决方案
按照程序要求,本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):◆将字符串中的大写字母转换为小写字母
◆统计输入的字符串中字母的使用频率
◆按使用频率从大到小进行排序
主函数中控制输入、函数调用和输出。
主要技术问题的描述
根据三的分析,主要问题在于:
1)为统计字母的使用频率,定义一个长度为26的int数组存放所统计的各个字母的使用频率。
2)在统计字母的使用频率时,不要使用if语句或switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得。
3)按使用频率从大到小进行排序时,建议使用指针数组更为方便。
创新要求
实现程序功能后,可进行创新设计:
1)使用多文件,即主函数和各个函数分别存放在不同的.c文件中,在头文件中进行函数原型声明。
2)读入一篇英文文档,并对其进行字母频率分析。
二、功能描述
1.程序运行第一步进行模式选择:从屏幕读入一串字母或从文件中读取文章(从屏幕读入时字符串长度不超过200)。
2.读取文章完毕后,统计各个字母的使用频率,并按从大到小的顺序打印出来,同时,对使用次数相同的字母按字母表顺序打印,对使用次数为0的字母不予打印。
四、主要函数描述
1.Main函数:负责变量的定义、模式的选择及函数的调用。
2.change函数:负责将大小写字母统一成小写字母后返回小写字母。
3.calculate函数:负责统计某一字母的使用频率并输出。
4.read函数:读入位于f:/单词开头大写.t_t,通过调用函数统计字母频率并相应输出。
5.fprint函数:按字母使用频率从大到小的顺序输出字母及其使用频率。
五、主要技术问题
程序如下:
include
include
defineN200
/判断字母并将大写字母转换为小写字母后返回/
voidchange(charp)
inti=0;
for(i=0;(p+i)!='