1、 算法与数据结构算法与数据结构 课程设计报告课程设计报告 题题 目:目: 文章编辑 设设 计计 者者: 专业班级:专业班级: 学学 号:号: 指导教师:指导教师: 所属系部:所属系部: 计算机科学与技术系 2012 年 5 月 31 日 目录目录 1问题描问题描述及要求述及要求 . 1 1.1 问题描述 1 1.2 基本要求 1 2需求分析需求分析 1 2.1 输入数据的形式和范围 1 2.2 输出形式 1 3算法思想描述算法思想描述 1 4概要设计概要设计 1 4.1 统计字符个数函数及算法流程图 1 4.2 统计指定字符串个数函数及算法流程图 2 4.3 删除指定字符串函数及算法流程图 3
2、 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 1 文章编辑文章编辑 1问题描述及要求问题描述及要求 1.1 问题描述 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 1.2
3、 基本要求 (1)静态存储一页文章,每行最多不超过 80 个字符,共 N 行; (2)分别统计出其中英文字母数和空格数及整篇文章总字数; (3)统计某一字符串在文章中出现的次数,并输出该次数; (4)删除某一子串,并将后面的字符前移; (5)存储结构使用线性表,分别用几个子函数实现相应的功能。 2需求分析需求分析 2.1 输入数据的形式和范围 可以输入大写、小写的英文字母、任何数字及标点符号。 2.2 输出形式 (1)分行输出用户输入的各行字符; (2)分 4 行输出“全部字母数“、“数字个数“、“空格个数“、“文章总字数; (3)输出删除某一字符串后的文章; 3算法思想描述算法思想描述 本程
4、序是对输入的文字进行操作,故使用静态的字符数组作为存储结构,定义如下: char strN80; / 存储文章的字符数组 对于文本的输入, 采用头插法将文本信息存储到链表已申请好的存储空间中; 对于文本 内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字 数直接通过条件比较即可得到; 对于文本内容的处理, 查找部分仍是使用循环对已存储的文 章进行匹配, 判断需要查找的字符或者字符串是否与文章中某部分内容相同, 如果存在相同 的记录相同的个数。 删除部分先使用程序的查找功能对文章中需要删除的字符或者字符串进 行查找,然后对其进行删除。 4概要设计概要设计 本程序主要
5、定义了 3 个函数:void count(),void checkstring(),void outputdelstr() 4.1 统计字符个数函数及算法流程图 函数:void count() 功能:统计字母、数字、空格的个数 2 流程图如下: 4.2 统计指定字符串个数函数及算法流程图 函数:void checkstring() 功能:统计某一个指定的字符串的个数 流程图如下: i=0 i=a gets(stri); /读取数组的内容 if(strlen(stri)80) printf(“每行最多输入 80 字符,请重新输入第 %d 行文字n“,i+1); /*当每行输入文字大于 80 字符
6、时输出此语句,并且重新输入文字*/ gets(stri); return strlen(stri); /返回数组的长度 5.2 文章输出函数 void output() /文章输出函数 for(i=0;iN;i+) puts(stri); /输出数组的内容 5.3 统计字符个数函数 void count() /统计字符个数的函数 for(j=0;j=a /统计数字 if(strij= ) snum+; /统计空格 5 5.4 统计指定字符串个数函数 void checkstring() /统计指定字符串个数函数 char cstr20; char *p1,*p2; printf(“请输入需要统计的字符串: “);