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






