1、 1 目目 录录 一、设计目的 2 二、设计内容 2 三、设计要求 2 四、主要数据结构与算法 2 1、主要数据结构 . 2 1.1 主要数据结构 . 2 1.2 程序流程图. 3 2、主要算法设计 . 3 2.1 输入文本. 3 2.2 输出文本. 4 2.3 输出删除某一字符串后的文章 . 5 2.4 统计某个字符串在文章中出现的次数 . 6 五、调试与分析 7 1、菜单主界面 . 7 2、输入函数 . 8 3、输出文本 . 8 4、统计文字、数字、空格的个数 . 8 5、统计某个字符串在文章中出现的次数 . 9 6、输出删除某一字符串后的文章 . 9 六、总结. 10 七、参考文献. 1
2、0 八、程序清单. 11 2 课程设计(大作业)报告课程设计(大作业)报告 一、设计目的一、设计目的 熟练使用 C 语言实现文章编辑。 二、设计内容二、设计内容 静态存储一页文章,统计出文字、数字、空格的个数。 三、设计要求三、设计要求 1、分别统计出其中英文字母数和空格数及整篇文章总字数; 2、统计某一字符串在文章中出现的次数,并输出该次数; 3、删除某一子串,并将后面的字符前移。 4、实现功能: 分行输出用户输入的各行字符; 分 4 行输出“全部字母数” 、 “数字个数” 、 “空格个数” 、 “文章总字数” 输出删除某一字符串后的文章。 四、主要数据结构与算法四、主要数据结构与算法 1、
3、主要数据结构主要数据结构 1.1 主要数据结构主要数据结构 函 数 名 实 现 功 能 typedef struct DataType aMAXSIZE; int length;Article; 定义串的静态存储分配结构 void input(Article *s) 输入文本 void ptint(Article *s) 输出文本 void letter_number(Article *s) 输出全部字母个数 void space_number(Article *s) 输出全部空格个数 void digit_number(Article *s) 输出全部数字总数 void size_numbe
4、r(Article *s) 输出文章总字数 void dele_print(Article *p,Article *s) 输出删除某一字符串后的文章 void Counter(Article *p,Article *s) 统计某个字符串在文章中出现的次数 表 1 主要数据结构 3 1 1.2 程序程序流程图流程图 开始 主函数 输入文字统计个数查找某一子串 输出文字 统计字母、数字、空 格、某一字符串的个 数以及文章总字数 删除这一子串 输出删除后的文 章 具体操作 图 1 程序流程图 2、主、主要算法设计要算法设计 2.12.1 输入文本输入文本 输入一段文本,当输入的文本是回车符(“n”)
5、时,将输入的文本最后一个字符赋成字符串 的结束符0,然后修改输入文本的长度。 void input(Article *s) /*输入文本*/ int i; s-length=0; 4 for(i=0;iai); s-length+; if(s-ai=n) s-ai=0; s-length-; break; 2.2 2.2 输出文本输出文本 将输入的文本,如果输入文本的长度为 0,则以错误提示出现在屏幕上,若长度不为 0, 则以每行显示 80 个字符的格式输出在屏幕上。 void ptint(Article *s) /*输出文本*/ int i,j=0; if(!s-length) printf
6、(“n 错误!“); else for(i=0;ilength;i+) printf(“%c“,s-ai); j+; if(j%80=0) 5 printf(“n“); 2.32.3 输出删除某一字符串后的文章输出删除某一字符串后的文章 此函数用到了串的简单模式匹配,即:设置一个标记 succ,当正文串 s 与模式串匹配 成功时,标记 succ=1;当正文串 s 与模式串匹配不成功时,succ=0。最后根据标记的值来 判断时候找到匹配的子串,最终实现删除操作。 void dele_print(Article *p,Article *s) /*输出删除某一字符串后的文章*/ int i,j,succ,flag=1; i=0; while(ilength-p-length+1) j=0; succ=1; /*用 j 扫描模式 p*/ while(jlength-1) else succ=0; if(j=p-length