好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

文本单词检索实习报告

文本单词检索实习报告 本文关键词:单词,实习报告,文本,检索

文本单词检索实习报告 本文简介:编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。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

TAG标签: