C语言数据结构课程设计 文章编辑
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j<len
j>=len
if(str[i][j]>='a'
&&
str[i][j]<='z') cnum++;
if(str[i][j]>='A'
&&
str[i][j]<='Z') cnum++;
if(str[i][j]>='0'
&&
str[i][j]<='9') dnum++;
if(str[i][j]==' ') snum++;
/*strstr()函数的原型是:extern char *strstr(char *str1, char *str2);功能是找出 str2 字符串在 str1 字符串中第一次出现的位置(不包括 str2 的串结束符)。*/
2.需求分析
2.1 输入数据的形式和范围 可以输入大写、小写的英文字母、任何数字及标点符号。
2.2 输出形式 (1)分行输出用户输入的各行字符; (2)分 4 行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数; (3)输出删除某一字符串后的文章;
3.算法思想描述
本程序是对输入的文字进行操作,故使用静态的字符数组作为存储结构,定义如下: char str[N][80]; // 存储文章的字符数组
p++; }
i++
算法结束
3
5.详细设计
5.1 文章输入函数 int intput() //文章输入函数
{ printf("请输入第 %d 行文字\n",i+1); gets(str[i]); //读取数组的内容 if(strlen(str[i])>80)
{ printf("每行最多输入 80 字符,请重新输入第 %d 行文字\n",i+1); /*当每行输入文字大于 80 字符时输出此语句,并且重新输入文字*/
}
4
5.4 统计指定字符串个数函数 void checkstring() //统计指定字符串个数函数
{ char cstr[20]; char *p1,*p2; printf("请输入需要统计的字符串: "); gets(cstr); p2=cstr; for(i=0;i<N;i++) { p1=str[i]; while(strstr(p1,p2)!=NULL)
4.1 统计字符个数函数及算法流程图..................................................................1 4.2 统计指定字符串个数函数及算法流程图......................................................2 4.3 删除指定字符串函数及算法流程图..............................................................3 5.详细设计..................................................................................................................4 5.1 文章输入函数..................................................................................................4 5.2 文章输出函数..................................................................................................4 5.3 统计字符个数函数..........................................................................................4 5.4 统计指定字符串个数函数..............................................................................5 5.5 删除指定字符串函数......................................................................................5 5.6 源程序清单......................................................................................................6 6.测试数据及分析.................................................................................................... 11 6.1 文章输入函数................................................................................................11 6.2 文章输出函数................................................................................................11 6.3 统计字符个数函数........................................................................................12 6.4 统计指定字符串个数函数............................................................................12 6.5 删除指定字符串函数....................................................................................13 7.课程设计总结........................................................................................................14 8.参考资料................................................................................................................14
i++
算法结束
4.3 删除指定字符串函数及算法流程图 函数:void outputdelstr() 功能:删除某一个指定的字符串 流程图如下:
i=0
i<N
i>=N
p1= strstr(p1,p2)
p1!=null p1=null
p=p1=strstr(p1,p2); while(*(p+len-1)) { *p=*(p+len);
j++ i++
算法结束
4.2 统计指定字符串个数函数及算法流程图 函数:void checkstring() 功能:统计某一个指定的字符串的个数 流程图如下:
2
i=0
i<N
i>=N
p1= strstr(p1,p2)
p1!=null p1=null
p1=strstr(p1,p2)+1 strnum++
3.算法思想描述..........................................................................................................1 4.概要设计..................................................................................................................1
2.需求分析..................................................................................................................1 2.1 输入数据的形式和范围..................................................................................1 2.2 输出形式..........................................................................................................1
对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中;对于文本 内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字 数直接通过条件比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文 章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同 的记录相同的个数。删除部分先使用程序的查找功能对文章中需要删除的字符或者字符串进 行查找,然后对其进行删除。
gets(str[i]); } return strlen(str[i]); //返回数组的长度 }
5.2 文章输出函数 void output() //文章输出函数
{ for(i=0;i<N;i++) { puts(str[i]);来自百度文库//输出数组的内容 }
}
5.3 统计字符个数函数 void count() //统计字符个数的函数
4.概要设计
本程序主要定义了 3 个函数:void count(),void checkstring(),void outputdelstr() 4.1 统计字符个数函数及算法流程图 函数:void count() 功能:统计字母、数字、空格的个数
1
流程图如下:
i=0
i<N
i>=N
j=0 len=strlen(len[i])
算法与数据结构 课程设计报告
题 目: 文章编辑 设 计 者: 专业班级: 学 号: 指导教师: 所属系部: 计算机科学与技术系
2012 年 5 月 31 日 目录
1.问题描述及要求......................................................................................................1 1.1 问题描述..........................................................................................................1 1.2 基本要求..........................................................................................................1
文章编辑
1.问题描述及要求
1.1 问题描述 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
1.2 基本要求 (1)静态存储一页文章,每行最多不超过 80 个字符,共 N 行; (2)分别统计出其中英文字母数和空格数及整篇文章总字数; (3)统计某一字符串在文章中出现的次数,并输出该次数; (4)删除某一子串,并将后面的字符前移; (5)存储结构使用线性表,分别用几个子函数实现相应的功能。
{ for(j=0;j<len[i];j++) { if(str[i][j]>='a' && str[i][j]<='z') cnum++; //统计小写字母 if(str[i][j]>='A' && str[i][j]<='Z') cnum++; //统计大写字母 if(str[i][j]>='0' && str[i][j]<='9') dnum++; //统计数字 if(str[i][j]==' ') snum++; //统计空格 }