文本单词检索实习报告 本文关键词:单词,实习报告,文本,检索
文本单词检索实习报告 本文简介:编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。1.实验题目编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件
文本单词检索实习报告 本文内容:
编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
1.实验题目
编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
2.需求分析
本演示程序用C编写,主要完成文本文件的建立;统计该文件中某单词在文中出现的次数;给定一个单词找出其在文中出现的次数及其位置。
(1)
输入的形式和输入值的范围:建立文件时要前建立一个文件名,然后输入一段英文文字,所有的输入都是字符型。
(2)
输出的形式:在所有三种操作中都显示提示操作,其中统计单词操作中输出某一单词在该文件中出现的次数,检索单词时输出该但是出现的次数及其出现的位置。
(3)
程序所能达到的功能:完成文本文件的创建,对单词的统计及检索定位操作。
(4)
测试数据:
A.
建立操作中输入MyDreams,建立一个文件名,输入一段文字
B.
查找操作中输入teacher/student,统计出这个单词在文本中出现的次数
C.
检索操作中输入teacher,输出这单词在文本中出现的次数及其位置
3.概要设计
(1)为了实现上述程序功能,需要定义文本文件的抽象数据类型:
CreatTextFile():
数据对象:string
S,char
fname[10],yn;
数据关系:(S∈fname)
基本操作:CreatTextFile()
操作结果:建立一个文件F且建立一段文字
初始条件:文件F存在
基本操作:PartPosition
(String
s1,String
s2,int
k)
操作结果:若有与给定单词相同的单词,则返回i-s2.length;
初始条件:文件F存在,给定一单词
基本操作:SubStrCount()
操作结果:若给定单词存在,则统计出指定单词出现次数
初始条件:文件F存在,给定一单词
基本操作:void
SubStrInd()
操作结果:检索出给定单词出现次数及其位置
(2)本程序包含5个函数:
①
主函数main()
②
建立文本文件函数CreatTextFile()
③
字符串对比函数PartPosition
(String
s1,String
s2,int
k)
④
统计单词函数SubStrCount()
⑤
检索定位函数SubStrInd()
各函数间关系如下:
CreatTextFile()
main()
SubStrCount()
PartPosition
()
SubStrInd()
4.详细设计
实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。
(1)
结点类型和指针类型
typedef
struct
{
char
ch[Max];
int
length;
}
String;定义顺序串类型
(2)
文本文件的基本操作
①文本文件建立:
void
CreatTextFile()
②单词统计:
void
SubStrCount()
③单词定位:
void
SubStrInd()
{
④单词检验对应:
int
PartPosition
(String
s1,String
s2,int
k)
(3)
主函数
main()
{
scanf(“%d“,switch(xz)
{
case
1
:
CreatTextFile();break;
case
2
:
SubStrCount();break;
case
3
:
SubStrInd();break;
case
4
:
return
0;
default:printf(“选择错误,重新选
/n“);
}
}
5.调试分析
本程序编写的思路比较清晰,首先要建立一个文本文件,让后输入一段文本,
然后再建立一个单词检验对应函数,此函数比较重要,在单词的统计和定位中都需要用到,再者建立一个统计单词函数和单词定位函数即可。
在刚开始写完程序调试时并没有的得到预想的结果,文本里面有给定的单词,也统计出来,但是数字却是错误的,后来检查知道是i的初始化不正确。
检索文本文件中单词的统计,定位时间复杂度为O(n)
通过本次试验让我明白到:理论和实际操作是存在一定的差异的,只有通过实际的操作才能将所学的知识灵活地运用起来,用实际验证理论,通过理论指导实际操作。
6.使用说明
程序名为文件检索
.exe,运行环境为VC++6.0。程序执行后显示
文本文件的检索、字串的统计及定位
1.
建立文本文件
2.
单词字串的计数
3.
单词字串的定位
4.
退出整个程序
请选择(1—4):
在选择输入数字开始执行不同的功能。不过这首先要建立文件输入一行以上的单词,即建立文本文件。然后才可以执行其他的操作,每执行一个功能,都会在显示出相应的结果。
选择1:显示“输入要建立的文件名:”
建立文件名后
显示“请输入一行文本:”
选择2:显示“输入查找的文件名:”
输入已建立好的文本文件名
显示“请输入要统计的单词:”
输入要统计的单词后
显示“单词%s在文本文件%s中共出现%d次”
选择3:显示“输入要定位文本文件名:”
输入已建立好的文件名后
显示“请输入要定位的单词”
输入单词后显示出该单词所在的行号,出现的次数,及位置。
选择4:退出整个程序。
7.测试结果
1)
建立文本文件:
?
选择1,
输入文件名MyDreams。
输入文本:
2)
统计:
》
选择2输入MyDreams,查找:teacher得到出现的次数为:3;
》
选择2输入MyDreams,查找:student得到出现结果为:0
3)
定位:
?
选择3,输入MyDreams。查找teacher,得到teacher在文件中出现的行号、次数及位置。
4)结束程序:
》输入4,退出程序。
程序测试结果截图如下:
5