急救!!麻烦大家给一下这个程序的设计思路,小弟跪谢了!!

来源:百度知道 编辑:UC知道 时间:2024/05/30 21:46:15
#include <stdio.h>
main()
{
int n1=0,n2=0,n3=0,n4=0;//分别用来统计的计数器,同时进行初始化(不能少)
char ch;
while((ch=getchar())!='#')//一个一个字符地输入,直到输入‘#’
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')n1++;//是否英文字母
else if(ch>='0'&&ch<='9') n2++;//是否数字字符
else if(ch==' ')n3++;//是否空格
else n4++;//其他字符
}
printf("n1=%d,n2=%d,n3=%d,n4=%d\n",n1,n2,n3,n4);//输出
}
要求:
一、问题描述
简单说明要解决的问题
二、问题分析
以无歧义的陈述说明程序设计的任务,程序的功能是什么?强调的是程序要做什么?并要求明确说明:
(1) 数据输入的形式和输入值的范围
(2) 数据输出的形式
(3) 程序所能达到的功能以及出错处理
(4) 每个组员的分工
三、程序设计思路功能模块说明
在此说明实现程序的主要思路,另外要求写出每个部分的算法设计说明(可以是描述算法的流程图)。并要说明本程序中用到的所有数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系
四、程序调试与测试
(1)调试中遇到的主要问题及解决办法
(2)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。输出结果直接抓取屏幕图像粘贴到报告中。
五、程序清单
这里列出程序清单及注释内容,源程序中要求带有详细的注释。

在此感谢了!

依次读取一个字符直到#,然后依次判断是不是英文字母,是不是数字,是不是空格,还是别的字符,是哪一种就给哪一种的计数加上1。然后输出每种各有多少个
n1=0,n2=0,n3=0,n4=0分别是英文字母、数字、空格和其他字符的计数器。每读入一个字符就判断一次。
其他随便说,这个程序主要是多分支的判断问题,数据从键盘输入,最后的统计结果显示在显示器上。。。这个你编就是了,围绕着这些说说。。。真是个老大啊。。。
一、问题描述
很多问题可归结为对流中字符的统计,比如对输入流中各种字符的分类统计,即统计给类字符的出现情况。
二、问题分析
本程序统计从键盘输入的一串字符中各种字符的个数,其中分为:英文字母、数字、空格和其它字符四种。程序的输入为键盘标准输入,可以输入任何可打印字符,包括空格、回车等控制字符,以'#'键作为输入的结束。在程序的最后输出上述四种字符再本次输入中出现的次数。程序可以统计除了'#'字符之外的各类字符的出现情况,因为比较简单而且分类比较模糊,没有对错误的处理。
组员的分工。。。你自己看着办
三、程序设计思路功能模块说明
首先,程序要设置四个计数器用来对四类字符的出现次数进行计数,并在开始的时候给这四个计数器赋以0值表示尚未进行计数。然后依次读取一个字符直到'#',然后依次判断是不是英文字母,是不是数字,是不是空格,还是别的字符,是哪一种就给哪一种的计数加上1。最后输出每种字符各有多少个。
四个计数器n1、n2、n3、n4设置为整数类型,符合自然规律。另一个变量ch作为getchar()函数所取得字符的临时变量,并用来作为循环体中进行判断的内容。while语句对getchar()函数获得的字符进行判断,如果不是结束标志'#',则进入循环体,否则说明输入结束,进入最后的报数阶段。在while的循环体中,判断ch的情况,如果ch在字符'a'到'z'或者'A'到'Z'之间,说明ch是英文字母,相应的计数器n1加一;如果不是上一种情况,再判断ch是不是在字符'0'到'9'之间,如果是则说明ch是数字,相应计