1、 课程设计课程设计 题题 目:目: 文章编辑 课课 程程 名名: 算法与课程设计 系系 (部):(部): 数学与计算机 专专 业:业: 计算机科学与技术 学生姓名:学生姓名: 学学 号:号: 指导教师:指导教师: 职称(学位):职称(学位): 副教授(硕士) 完成时间:完成时间: 2016 2016 年年 12 12 月月 2828 日日 一、一、 概述概述 1、 任务描述: 输入一段文字,对文章做出统计、删除、替换等操作 2、 主要功能: 统计文章字母、数字、空格个数及文章总字数,统计字符串,删除字符 串,对指定字符串的替换 3、设计平台: VC+6.0 二、二、 系统设计系统设计 3、 需
2、求分析: (1)输入数据的形式和范围:可以输入大写、小写的英文字母、任何数 字及标点符号; (2) 分 4 行输出“全部字母数“、“数字个数“、“空格个数“、“文章总字数 “ ; (3)查找指定的字符串; (4)删除指定的字符串,输出删除某一字符串后的文章; (5)替换指定的字符串,输出替换某一字符串后的文章。 4、 概要设计 5、 算法思想 存储结构使用线性表,分别用几个子函数实现相应的功能; 三、三、 详细设计详细设计 6、 算法设计 (1)定义结构体:typedef struct line char *data; struct line *next; LINE; (2)输出函数 void
3、 OutPut(LINE * gets(stri); /读取数组的内容 if(strlen(stri)80) printf(“每行最多输入 80 字符,请重新输入第 %d 行文字n“,i+1); /*当每行输入文字大于 80 字符时输出此语句,并且重新输入文字*/ gets(stri); return strlen(stri); /返回数组的长度? (2) 文章输出 void output() for(i=0;iN;i+) puts(stri); /输出数组的内容 (3) 统计字符个数 void count() for(j=0;j=a /统计数字 if(strij= ) snum+; /统计空
4、格 (4) 统计指定字符串个数 void checkstring() char cstr20; char *p1,*p2; printf(“请输入需要统计的字符串: “); gets(cstr); p2=cstr; for(i=0;iN;i+) p1=stri; while(strstr(p1,p2)!=NULL)/strstr()函数的原型是:extern char *strstr(char *str1, char *str2); /功能是找出str2字符串在str1字符串中第一次出 现的位置(不包括 str2 的串结束符)。 strnum+; p1=strstr(p1,p2)+1; pri
5、ntf(“字符串:%s 在文章中出现的次数为:%d n“,cstr,strnum); (5) 删除指定字符串 void outputdelstr() char cstr20; char *p,*p1,*p2; int len; printf(“请输入要删除的字符串: “); gets(cstr); len=strlen(cstr); p2=cstr; for(i=0;iN;i+) p1=stri; while(strstr(p1,p2)!=NULL) p=p1=strstr(p1,p2); while(*(p+len-1) *p=*(p+len); p+; printf(“删除字符串:%s 后文章为: n“,cstr); output(); /输出删除字符串后的文章 (6) 替换指定字符串 void replace() char cstr20,rcstr20; int clen,rlen; printf(“请输入要替换的字符串:“); gets(cstr); clen=strlen(cstr); pr