1、 课程设计报告课程设计报告 课程设计题目:课程设计题目: 文章编辑文章编辑 学生姓名:学生姓名: 专专 业:计算机科学与技术业:计算机科学与技术 班班 级:级: 学学 号号: 指导教师:指导教师: 2012 年年 06 月月 21 日日 1 目录目录 一、实验题目 1 二、实验时间、地点 . 1 三、实验目的 1 四、实验要求 1 五、实现思路 2 1、定义结构体 . 2 2、主要函数: . 2 六、实现过程 4 主要代码: 4 运行结果: 10 七、实验总结 14 八、参考文献 14 一、实一、实验题目验题目 文章编辑:输入一页文字,程序可以统计出字母、数字、空格的个数。静 态存储一页文章,
2、每行最多不超过 80 个字符,共 N 行; 二、二、实验时间、地点实验时间、地点 第十九周,软件楼 603 三、三、实验目的实验目的 本次课程设计的主要目的是综合运用所学的数据结构知识解决一个比较实际问 题,侧重对链表、数组、字符串、图、树等相关内容的综合应用,使同学们能进 一步熟悉掌握数据结构的基础知识,进一步提升自己的解决问题和编程调试能 力,为后续专业课程的学习打下良好的基础。 四、四、实验要求实验要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个
3、子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的 英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分 4 行输出“全部字母数“、“数字个数“、“空格个数“、“文章总字数“ 2 (3)输出删除某一字符串后的文章; 五、实现五、实现思路思路 1 1、定义结构体、定义结构体 定义结构体 struct line,文本行采用顺序存储,行与行之间采用链式存储 开始 主函数 输入文字统计个数查找某一子串 输出文字 统计字母、数字、空 格、某一字符串的个 数以及文章总字数 删除这一子串 输出删除后的文 章 具体操作 2 2、主要函数:、主要函数: int
4、FindString(LINE * len=strlen(s);i=len-strlen(p)即前 i 项恰好不含要删除的字符串,将前 i 项复制到 tmp 中 开始 count=0;h=0;len1=0; len2=strlen(str); p-datai=str0 i+ k=0;j=0; p-datai+j=strj k+;j+; k=len2 count+; i=i+k-1; 结束 Y N Y N N Y 4 j=i+strlen(str) 即要删除的字符串在 i+1 和 j 之间,将 j 之后的字符串复 制到 tmp 中 将 tmp 赋给串 s,返回 s 六、六、实现过程实现过程 主要
5、代码:主要代码: #include #include #include #include typedef struct line char *data; struct line *next; LINE; void Create(LINE * LINE *p=new LINE; /*首先为链表 建立一个附加表 头结点*/ head=p; /*将 p 付给 表头指针*/ char ch100; while(1) str p i j s for(m=0;mnext=new LINE; p-data=new charstrlen(ch)+1; /*为结点分 配空间 */ strcpy(p-data,c
6、h); if(chstrlen(ch)-1=5) /*除去最后一个控制符 E */ p-datastrlen(ch)-1=0; break; p-next=NULL; /*最后的一个指针为 空 */ head=head-next; /*文本字数统计*/ int Count_Space(LINE* int asc_space=32; int count=0; int i; int Len; do Len=strlen(p-data); for(i=0;idatai=asc_space) count+; while(p=p-next)!=NULL); return count; int Count_Num(LINE * int count=0; int L