文学研究助手课程设计报告书
目录
1 问题描述 ............................................................................................................................................ 1 2 注意事项 ............................................................................................................................................ 1 3 设计 .................................................................................................................................................... 2
3.1 存储结构设计 .......................................................................................................................... 2 3.2 算法设计(流程图) .............................................................................................................. 3 3.3 测试用例设计 .......................................................................................................................... 4 6.1源程序: ................................................................................................................................... 7 6.2 测试结果 ................................................................................................................................ 14 情况一,当输入的字符串在文章中没有的情况 ................................................................................ 14 情况二:输入一个单词,在文章中存在此单词 ................................................................................ 16 情况三:输入多个测试单词 ................................................................................................................ 18 情况四:循环进行多次研究 ................................................................................................................ 20 本科生课程设计成绩评定表 ................................................................................................................ 24
1 问题描述
文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。实现
1
这一目标的文字统计系统,称为“文学研究助手”。其中,英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。
2 注意事项
1 文本串为非空,以文件的形式存放,统计匹配的词集非空,文件名和词集均由用户输入。
2 单词是字母构成的序列,并且区分大小写,且中间不应有空格。 3 为了操作的简便,单词在原文本中不出现换行的情况。
4 计算机终端输出的格式是:单词,次数,行号,同一行出现两次,只输出第一次的。
3 设计
3.1 存储结构设计
1 char articles[MAXSIZE] (定义一个全局数组,用于从文件中读取字符依次放入此字符串中。以便进行此后的操作)。 2 struct HString {
char* words; int length; int* next; int count; int j;
};(定义此结构体类型,其中 words指针用来指代存储输入检测单词的空间的头指针,length用来表示该检测单词的长度,count用来存储每个单词的出现次数,j用来表示从该单词的零位置开始检测,为下面的KMP算法提供方便)。 3 void wenjianfuzhi(char articles[])
2
{
FILE *p,*q;
char ch; int i=0;
p=fopen(\,\); if(p==NULL) {
exit(-1);
}
while(scanf(\,&ch)!=EOF)
putc(ch,p);
fclose(p);
q=fopen(\,\); if(q==NULL) {
exit(-1);
}
while((ch=getc(q))!=EOF) {
articles[i]=ch; i++; } fclose(q); system(\);
}(本函数之中,首先以写的方式打开一个叫做“dage.txt”的文本文件,让后依次向其中输入数据,让后再以读的方式,将文件中的内容给全局数组,本段程序中是将原来的文章,存入事先开辟的一个文件“dage.txt”中来).
3.2 算法设计(流程图)
3
文学研究助手课程设计报告



