求C语言大佬编一个小程序,急!感激不尽!是一个有趣的文件搜索引擎

任务 您是 一个公司的软件工程师, 负责实现他们的搜索引擎。执行搜索引擎时, 应要求用户使用命令行参数指定 "搜索模式"。用户应该能够从两种模式中进行选择:·手动引导搜索手动引导搜索(命令行关键字 "手册") 允许用户手动 (手动) 在搜索引擎中键入查询词。提交搜索字词 (输入按下的键) 后, 搜索引擎应将所有文档 id 打印到至少一个查询字词匹配的屏幕上。·脚本引导式搜索脚本引导搜索 (命令行键字 "脚本") 允许用户在与搜索引擎相同的文件位置创建名为 "query. txt" 的查询。查询文件包含由查询 id 标识的搜索查询 (每行 1个)。 示例查询. txt:q1 house mouseq2 star car bar 在本例中, q1 和 q2 是查询1和查询2的查询 id。查询 1 (q1) 由2个查询术语 (house and mouse) 组成, 而查询2由3个查询术语 (star car bar) 组成 执行以下步骤:. 1 获取数据集创建一个名为 "搜索引擎" 的新工作目录并下载数据集。打开工作目录中的存档并手动检查文件。请注意文档的哪一部分与您的搜索引擎相关, 如数据部分所述。. 2 创建源文件创建一个名为 search xxxx. c (xxx 应替换为您的学生 id) 的源代码文件。源代码文件包含搜索引擎的整个代码。.3 实现核心搜索引擎算法  实现其他两种搜索模式手册和脚本的核心搜索引擎。 应使用选项“manual”或“script”将搜索模式指定为命令行参数。 算法1说明了核心搜索引擎的伪代码。见图2.. 4 修正核心搜索引擎算法 在为搜索引擎创建伪代码时, hackit 的工程师犯了一个错误, 因为他们的算法版本为与文档术语匹配的每个查询术语打印文档 id。当然, 这是一个错误, 是不能接受的。您需要确保每个文档 id 只打印一次以进行筛选, 而不考虑与之匹配的查询术语的数量。 .5 高级搜索引擎 i-精确搜索 通过实现精确的搜索功能作为命令行选项 "精确搜索" 来扩展核心搜索引擎。此功能应适用于两种搜索模式 (手动和脚本), 并与所有其他高级搜索功能兼容。如果搜索引擎使用 "精确搜索" 命令行参数执行, 则只打印那些与所有查询术语匹配的文档以进行筛选。例如:d1{a,b,c} d2{a,g,d} d3{a,b} d4{a,b,r,f}  q1{a,b,f} 当 "精确搜索" 被激活时时, 只应打印文档 d4, 因为它是唯一与查询 q1 的所有查询术语匹配的文档, 即: q1 的所有查询术语 (a、b、f) 也出现在 d4 中。 .6高级搜索引擎 ii-顶级搜索通过将顶级搜索功能实现为命令行选项 "topsearch" 来扩展搜索引擎。此功能应适用于两种搜索模式 (手动和脚本), 并与所有其他高级搜索功能兼容。如果搜索引擎使用 "topsearch" 命令行参数执行, 则只向屏幕打印包含最多查询术语 (查询和文档之间最大重叠) 的文档。例如:d1{a,a,a,a,c} d2{a,g,d,d} d3{a,b,x}d4{a,b,r,f}  q1{a,b,x} 当 "顶级搜索"被激活时, 在搜索查询 q1 时, 只应将文档 d1 打印到屏幕上。请注意, 文档 d3 匹配 q1 中的所有查询术语, 但 d3 和 q1 = 3 的重叠, 而 d1 和 q1 = 4 的重叠则被视为重复查询术语。还有一些具体的数据集、要求什么的,请感兴趣的大佬们私聊我,感激不尽,重金酬谢!

搜索引擎分类部分提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。随着搜索引擎索引规则发生很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
蜘蛛搜索引擎
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。这种引擎的特点是搜全率比较高。追问

这个程序里的搜索引擎跟你说的还是有一点不一样,就是一个自编的很简单的搜索引擎......求代码~不过还是很感谢回答~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-26
//如想详聊,看下面这个的输出!
#include<stdio.h>
#include<stdlib.h>

int main()
{
char arr1[10]={52,86,97,104,10,7,115,21,64,39};
char arr2[]={67,57,65,12,111,39,4,112,41,
7,76,63,15,72,98,102,28,53,51,79,93,108,
12,1,105,117,28,102,47,74,81,120,'\0'};
int i;

for(i=0;arr2[i];i++)
arr2[i]^=arr1[i%10];
puts(arr2);
system("PAUSE");
return 0;
}
相似回答