C语言程序设计课程设计.doc
优质文本计算机实践C/C+程序设计报告指导教师学号学生姓名专业班级 成绩二一四年六月十九日注:由于我的程序是由书上例子改编而来教材P179,与其他同学或许有相似之处,还望老师谅解。鉴于此,我将所写的原用于想增加创新分的两个程序均写在报告中。我只是想证明,我个人所做的程序的真实性,因此而为老师的批阅工作带来麻烦很抱歉,敬请谅解。一设计题目题目编号: B18题目名称: 编写一个函数funstr二题目的意义应用字符串和数组进行简单的统计,统计由实参传来的字符串中的字母、数字、空格和其他字符的个数并分别输出。 三程序设计功能图程序由2个功能模块函数组成,功能模块图如下:图3-1 程序设计功能图第一种方法:由书中例子改编表3-1 主函数main()说明模块名称main模块功能主函数模块说明输入字符串,满足条件那么调用fun函数,不满足那么程序结束类型变量名初值变量说明charstr从键盘上输入练习者输入的字符串intnum字符串长度main()函数程序代码如下:/* * * * * * * * * * * * * * * * * * * * * * * * 学号:1303010203* 姓名:卞文月* 班级:电气13-2 班* 题目代码: B18* 程序功能: 统计由实参传来的一个字符串中的字母、* 字、空格和其他字符的个数,直到输入的字符串为999* * * * * * * * * * * * * * * * * * * * * * * */#include <iostream>#include<ctype.h> / 字符函数头文件#include<cstring> / 字符串函数头文件using namespace std;void fun(int n,char str)int alphas,digits,spaces,others; alphas=0; / 各种字符计算器 digits=0; spaces=0; others=0;for(int i=0;i<n;i+) if(isalpha(stri) / 判断stri中的字符是否为字母 alphas+; else if(isdigit(stri) / 判断stri 中的字符是否为数字 digits+; else if(isspace(stri) /判断stri 中的字符是否为空格 spaces+; else others+; cout<<" 字母个数:"<<alphas<<endl;cout<<" 数字个数:"<<digits<<endl;cout<<" 空格个数:"<<spaces<<endl;cout<<" 其他字符个数:"<<others<<endl;int main() int num; char str80; cout<<"请输入一串字符:" while(cin.getline(str,80) if(strcmp(str,"999")=0)/ 判断输入的字符串是否是999,假设是那么程序终止;假设不是,那么执行下面程序 break; num=strlen(str); / 计算stri 中字符个数 fun(num,str); / 调用函数fun,统计个数 return 0;表3-2函数fun()说明模块名称void fun(int n,char str)模块功能统计并输出由实参传来的一个字符串中的字母、数字、空格和其他字符的个数模块说明统计并输出由实参传来的一个字符串中的字母、数字、空格和其他字符的个数,分别进行记录,并分别输出类型变量名初值变量说明intn形参charstr形参intalphas0字符计算器,计算字符串中字母的个数intdigits0字符计算器,计算字符串中数字的个数intspaces0字符计算器,计算字符串中空格的个数intothers0字符计算器,计算字符串中其他字符的个数inti0局部变量,循环控制变量funstr程序代码如下:void fun(int n,char str)int alphas,digits,spaces,others; alphas=0; / 各种字符计算器 digits=0; spaces=0; others=0;for(int i=0;i<n;i+) if(isalpha(stri) / 判断stri中的字符是否为字母 alphas+; else if(isdigit(stri) / 判断stri 中的字符是否为数字 digits+; else if(isspace(stri) /判断stri 中的字符是否为空格 spaces+; else others+; cout<<" 字母个数:"<<alphas<<endl;cout<<" 数字个数:"<<digits<<endl;cout<<" 空格个数:"<<spaces<<endl;cout<<" 其他字符个数:"<<others<<endl;第二种方法:表3-3 主函数main()说明模块名称main模块功能主函数模块说明输入字符串,满足条件那么调用fun函数,不满足那么程序结束类型变量名初值变量说明charstr从键盘上输入练习者输入的字符串intb0用于记录字母、数字、空格和其他字符的个数常量M80字符串长度/* * * * * * * * * * * * * * * * * * * * * * * * 学号:1303010203* 姓名:卞文月* 班级:电气13-2班* 题目代码: B18* 程序功能: 统计由实参传来的一个字符串中的字母、数字、空格* 和其他字符的个数,直到输入的字符串为999* * * * * * * * * * * * * * * * * * * * * * * */#include<iostream>#include<cstring>#define M 80 /定义符号常量using namespace std;void fun(char str,int b4) /函数声明int len=strlen(str);int i; /局部变量,循环控制变量for(i=0;i<len;i+) if(stri>='a'&&stri<='z')|(stri>='A'&&stri<='Z') /判断是否是字母 b0+; else if(stri>='0'&&stri<='9') /判断是否是数字 b1+; else if(stri=' ') /判断是否是空格 b2+; else b3+; /其他字符 cout<<"字母个数:"<<b0<<endl;cout<<"数字个数:"<<b1<<endl;cout<<"空格个数:"<<b2<<endl;cout<<"其他字符个数:"<<b3<<endl;/分别输出字母、数字、空格和其他字符的个数 int main()cout<<"请输入字符串:"int b4=0;/定义b数组并初始化,用于记录字母、数字、空格和其他字符的个数char strM;while(cin.getline(str,80) /输入字符串 if(strcmp(str,"999")=0) /判断输入的字符串是不是999 break; fun(str,b); /调用函数fun return 0;表3-4 fun函数说明模块名称void fun(char str,int b4)模块功能统计并输出由实参传来的一个字符串中的字母、数字、空格和其他字符的个数模块说明统计并输出由实参传来的一个字符串中的字母、数字、空格和其他字符的个数,用一维数组bi中元素分别进行记录,并分别输出类型变量名初值变量说明charstr形参:从键盘上输入的字符串intb0形参:统计个数并进行存储intlen字符串str的长度len=strlenstrinti0局部变量:循环控制变量funstr程序代码如下:void fun(char str,int b4) int len=strlen(str);int i; /局部变量,循环控制变量for(i=0;i<len;i+) if(stri>='a'&&stri<='z')|(stri>='A'&&stri<='Z') /判断是否是字母 b0+; else if(stri>='0'&&stri<='9') /判断是否是数字 b1+; else if(stri=' ') /判断是否是空格 b2+; else b3+; /其他字符 cout<<"字母个数:"<<b0<<endl;cout<<"数字个数:"<<b1<<endl;cout<<"空格个数:"<<b2<<endl;cout<<"其他字符个数:"<<b3<<endl;/分别输出字母、数字、空格和其他字符的个数 四详细设计两种方法的主程序流程图:图4-1 主程序流程图两种方法的fun程序流程图:第一种方法:由书中例子改编图4-2 fun流程图1第二种方法:图4-3 fun流程图五程序运行界面第一种方法:由书中例子改编图5-1 代码编辑界面截图1图5-2 运行界面截图1第二种方法:图5-3 代码编辑界面截图2图5-4运行界面截图2六调试、分析及总结No遇到问题解决措施1开始时所编的程序不能做到连续输入参考教材的例子不断改进2调试时出现很多的错误提示,中英文同步信息显示错误仔细检查,发现是由于一个小的花括号引起的3此程序,在不同的软件中调试、运行时,总会出现不同的问题。比方,在code blocks中显示没有错误,而在V6.0中就会显示有错误经过一系列的调试与运行,终于将该程序在多个编程软件中成功运行4由于这个程序比拟简单,所以写主函数和funstr的表格时能写的内容较少,让我很苦恼鉴于我所选的题目较容易,为了公平起见,也为了排除与其他同学相似的嫌疑,提高自己的能力,我的报告中两种不同解决此题的方法5调试运行时,界面总是出现看不懂的文字,经想同学请教,说是乱码了,说明程序中存在一些小问题与同学们的讨论问题并改进程序6稳固了所学的C+知识,这一次学习任务的考察,使我了解了自己对这一学期知识的掌握程度,更加有效地催促我学习七参考资料1.C/C+程序设计案例教程基于计算思维即我校编的C+教材,P179 例9.1。2. .C/C+程序设计案例教程基于计算思维即我校编的C+教材,第七章 字符串及书后常用字符与ASC值对照表。3. CD3_计算机实践_?CC+语言程序设计?报告模板。八综合评分以下内容任课教师填写序号考察主项教师评语得分备注1完成题目情况2代码格式标准3题目难度系数4创新性5实验报告文档6平时成绩7成绩合计