1、C语言程序设计课程设计汇报题 目字符串处理学 号 姓 名 同组人员 年级专业09电子信息工程2班指导老师 完成日期年6月19日目录1. C语言程序设计目标要求32. 字符串处理设计要求.33. 字符串处理步骤图.34. 字符串处理源程序.55. 程序分析.9 5.1头文件应用9 5.2函数应用9 5.3库函数调用.106.程序调试截图.117.参考资料.138.总结.149. 物理和电子信息学院课程设计评定意见15C语言程序设计目标要求在老师指导下,学生依据选定课题,综合利用所学程序设计知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。 经过课程设计,初步锻炼利用所学基础知识处
2、理实际问题能力,掌握软件开发基础过程和基础方法和良好编程风格,培养在软件开发中相互合作团体意识字符串处理设计要求1)从键盘输入一个英文句子并保留在字符数组中;2)能删除多出空格:单词之间只留一个空格,句子前后无空格;3)能统计某单词出现频度;4)能替换某个单词。法实现也可。字符串处理步骤图 这个程序调用3个功效函数,分别起处理删除空格、查找某个单词出现频度、用一个单词替换原来一个单词。最终,在主程序里对这3个函数进行调用,完成函数要求全部功效。下面就是总程序步骤图:开始输入英文句子输出英文句子调用Delete(str)函数清除前导和后导空格,中间多出空格输出清除空格后句子输入要统计个数单词调用
3、FintCount(str)函数统计其出现次数调用Swap(str)函数替换某个单词输出替换后英文句子结束字符串处理源程序#include #include #include void Delete(char str) int i,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0; Length=strlen(str); for(i=0; iLength; i+) /* 删除前导空格 */ if(stri= ) StartBlank+; else break; for(j=0; j=0; i-) /* 删除后导空格 */ if(stri= ) End
4、Blank+; else break; Length-=EndBlank; while(EndBlank0) strLength-1+EndBlank=strLength+EndBlank; EndBlank-; i=0; /* 删除中间多出空格 */ while(iLength) if(stri= ) if(stri+1= ) for(j=i+1; jLength; j+) strj=strj+1; MiddleBlank+; Length-; else i+; else i+; void FindCount(char str) char FindWord20,*p1,*p2; int co
5、unt=0; /* 查找单词出现次数 */ printf(Enter a Findword:n); gets(FindWord); p1=str; p2=FindWord; while(*p1!=0) if(*p1=*p2)&(!isalpha(*(p1-1) while(*p1=*p2)&(*p2!=0) p1+; p2+; else p1+; if(*p2=0)&(*p1= )|(*p1=0) count+; /* 所查找单词完全匹配 */ p2=FindWord; /* 重置查找单词 */ printf(FindCount:%dn,count);void Swap(char str) c
6、har SwapWord20,FindWord20,*p1,*p2; int j,s,k,i=0,SwapWordLength,strLength,FindWordLength,n; printf(Enter a FindWord:n); gets(FindWord); printf(Enter a SwapWord:n); gets(SwapWord); p1=str; p2=FindWord; strLength=strlen(str); /* 原英文句子长度 */ FindWordLength=strlen(FindWord); /* 查找单词长度 */ SwapWordLength=s
7、trlen(SwapWord); /* 替换单词长度 */ n=SwapWordLength-FindWordLength; /* 查找和替换单词长度差 */ while(*p1!=0) if(*p1=*p2)&(!isalpha(*(p1-1) while(*p1=*p2)&(*p2!=0) p1+; p2+; i+; else p1+; i+; if(*p2=0)&(*p1= )|(*p1=0) /* 所查找单词完全匹配 */ if(n0) j=i-FindWordLength; for(k=0; kSwapWordLength; k+) strj+=SwapWordk; for(s=i;
8、 sstrLength; s+) strj+=strs; while(ji; s-) strs=strstrLength-; j=i-FindWordLength; for(k=0; kSwapWordLength; k+) strj+=SwapWordk; strLength=strlen(str); i+=n; p1+=n; p2=FindWord; void main() char str1000; printf(Input a English sentence:n); gets(str); /* 输入一个英文句子 */ printf(Output English sentence:n)
9、; puts(str); Delete(str); /* 删除前导空格,后导空格,中间多出空格 */ printf(Delete English sentence:n); puts(str); FindCount(str); /* 统计某个单词出现次数 */ Swap(str); /* 查找并替换某个单词 */ printf(Swap English sentencd:n); puts(str);程序分析一、 头文件应用#include #include #include 二、 函数应用void Delete(char str)void FindCount(char str)void Swap
10、(char str)子函数具体代码,如:void Delete(char str) int i,j,Length,StartBlank=0,EndBlank=0,MiddleBlank=0; Length=strlen(str); for(i=0; iLength; i+) if(stri= ) StartBlank+; else break; for(j=0; j=0; i-) if(stri= ) EndBlank+; else break; Length-=EndBlank; while(EndBlank0) strLength-1+EndBlank=strLength+EndBlank
11、; EndBlank-; i=0; while(iLength) if(stri= ) if(stri+1= ) for(j=i+1; jLength; j+) strj=strj+1; MiddleBlank+; Length-; else i+; else i+; 三、 库函数调用输出函数调用,如:printf(Input a English sentence:n);输入函数调用,如:gets(str);程序调试截图输入一个英文句子:输入句子:删除空格后句子:统计一个单词出现频度:用一个单词替换原来一个单词:参考资料1 谭浩强,C程序设计教程,清华大学出版社,2 赵永哲,李雄飞,戴秀英编著
12、,C语言程序设计,科学出版社,3 夏宽理,赵子正编著,C语言程序设计,中国铁道出版社,4 谭浩强编著,C程序设计,清华大学出版社,1991年5 Gary J. Bronson, A First Book of ANSI C (Fourth Edition), Publishing House of Electronics Industry, .6 Al Kelley, Ira Pohl, A Book on C: Programming in C (Fourth Edition), China Machine Press, .7 Brian W. Kernighan, Dennis M. Ri
13、tchie, The C Programming Language, China Machine Press, .总结经过这次课程设计,我对很多函数有了新认识,也学会了利用多个函数。写程序过程中不停积累,不停思索,经过长时间设计和调试,最终完成了这次课程设计,这次课程设计总来说让我受益匪浅。 在程序设计过程中碰到了很多困难,在程序一次一次调试失败下更让我学会了坚持,毫不畏惧困难,在同学帮助和老师讲解下顺利完成了课程设计。 此次课程设计不仅给了我很多经验,也让我体会到了失败时焦虑和难受,也体会到了成功时兴奋和喜悦。物理和电子信息学院课程设计评定意见指导老师评语关键内容包含:设计汇报内容完整性和完成情况、汇报格式规范性、经过课程设计取得收获等。成绩: 署名: 年 月 日