1、 课程设计报告课程设计报告 课程名称课程名称 数据结构数据结构 课题名称课题名称 字符串操作字符串操作 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 学学 号号 姓姓 名名 联系方式联系方式 指导教师指导教师 20201111 年年 1212 月月 2525 日日 目目 录录 一、问题描述一、问题描述1 1 二、基本要求二、基本要求1 1 三、测三、测试数据试数据1 1 四、算法思想四、算法思想1 1 1 1、注释注释. .1 1 2 2、模式匹配、模式匹配1 1 3 3、KMPKMP 算法算法 . .2 2 4 4、文本文件单词的检索与计数、文本文件单词的检索与计数2 2 五、模
2、块划分五、模块划分. .3 3 1 1、串的模式匹配串的模式匹配. .3 3 2 2、字符串的加密与解密字符串的加密与解密. .4 4 3 3、文本文件单词的计数和检索文本文件单词的计数和检索. .4 4 六、数据结构六、数据结构4 4 七、源程序(格式调整,添加注释)七、源程序(格式调整,添加注释)5 5 八、测试情况八、测试情况1212 九、九、参考文献参考文献1313 十、总结十、总结1 14 4 一、一、 问题描述问题描述 字符串是一种常见的数据类型, 在现实生活中有着广泛的应用。 本次课程设计需要选择 合适的结构完成字符串的建立, 实现串的基本操作, 编写三种模式匹配算法和字符串的加
3、密 与解密算法,并利用它们实现字符串的应用:包括文本文件对单词的检索和计数。 二、基本要求二、基本要求 程序要求选择合适的存储结构,并实现以下功能: 1.完成串的基本操作,如:串的赋值,比较,连接,插入,删除; 2.实现串的模式匹配,包括:穷举法,BF 算法和 KMP 算法; 3.字符串的应用:字符串的加密与解密;文本文件单词的计数;文本文件单 词的检索; 三、测试数据三、测试数据 1.对模式匹配(穷举法, KMP 算法和 BF 算法)的测试: 如: 在 “asd sfhasd asd” 中找从第 3 个下标开始匹配的模式串“asd”。 2.对加密与解密的测试:如:对串“afhbs 537hs
4、j/sjdh”加密,再将加密 后的串还原。 3.对文本文件单词的计数和检索的测试:如创建一个文本文件,在其中对单 词“me”进行计数并且检索其所处行、列。 四、算法思想四、算法思想 1 1、用结构体 SString 记录字符串信息,其中 ch 代表字符串,length 代表 字符串长度。 2 2、模式匹配:、模式匹配: 1)穷举法的 Index(S,T,pos): 从位置开始通过 SubString 截取 S 中 T 长度的字符串,并与 T 通过 StrCompare 进行比较,若找到则返回位置;否则继续。若没找到,返回-1。 2)BF 算法: IndexBF(S, T,pos) 主串 S 从 pos 位置开始, 模式串 T从