程 序 设 计 课 程 设 计 报 告 学 院:软件学院 专业班级:软件 班 学 号: 姓 名: 指导教师: 时 间: 2012 年 6 月 29 日 文本文件单词的检索与计数 专业:软件工程 班级: 1
1 【问题描述】 串是非数值处理中的主要对象,如在信息检索、文本编辑、符号处理等许多领域,得到越来越广泛的应用
在高级语言中也引入了串数据类型概念,并且串变量与其他变量(如整型、实型等)一样,可以进行各种运算
然而,在各种不同类型的应用中,所处理的串有不同的特点,要想有效地实现串的处理,就必须熟悉串的存储结构及其基本运算
本课程设计的目的就是熟悉串类型的实现方法和文本模式匹配方法,熟悉如何利用模式匹配算法实现一般的文本处理技术
本课程设计分两步:首先,设计出串定位算法(即模式匹配算法)及其实现;然后,再利用串定位算法设计文本文件的检索及单词的计数等操作
2 【设计需求及分析】 1
1 串模式匹配算法的设计要求 在串的基本操作中,在主串中查找模式串的模式匹配算法— — 即求子串位置的函数Index(S,T),是文本处理中最常用、最重要的操作之一
所谓子串的定位就是求子串在主串中首次出现的位置,又称为模式匹配或串匹配
模式匹配的算法很多,在这里只要求用最简单的朴素模式匹配算法
该算法的基本思路是将给定子串与主串从第一个字符开始比较,找到首次与子串完全匹配的子串为止,并记住该位置
但为了实现统计子串出现的个数,不仅需要从主串的第一个字符位置开始比较,而且需要从主串的任一给定位置检索匹配字符串,所以,首先要给出两个算法: 1.标准的朴素模式匹配算法 2.给定位置的匹配算法 1
2 文本文件单词的检索与计数的设计要求 要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某