admin 管理员组

文章数量: 1086019

C++ 制作内容检索程序

最近心血来潮,毕竟在家闲得无聊,敲了一个检索的程序,不过写代码时挺快,debug倒是很费劲

程序实现的原理

对于一个检索程序,我们要知道用户所搜索的是什么东西,当然,这个的前提是你的内容中有相关的。

其实检索程序要注意的是用户输入数据与数据本身的联系。也就是说,在达到一个什么样的标准时,我们可以说这个内容是与用户搜索相关的,但这个是无法确定的,所以不妨把要求定低点,当然了,我是说的其他的内容。

在这里我要实现的是一个题目的搜索,所以要求低了就会出现查找有误的情况,那么就开始我的讲解

查找相似度

对于相似度的查找,我使用了的字符逐一判断,对于这种查找,代码难度较低,只需要在外部定义一个变量就行,用于记录相等的字符数量。

这个的原理类似与一个名为“文章相关性 基因相关性 比较相似性”的题目,刚刚说的这个是一个题目。其原理类似,都是使用比对后的数据和总数据量对比。

那就不妨去写一下这个程序

#include<iostream>
using namespace std;
struct node{string s;int cnnt;
}stu[100];
/*上述结构体用于存储数据,便于与输入的进行一个比对*/
void work(){//随便命名的,可以根据自己的喜好string tmp;cin>>tmp;for(int i=0;i<100;i++){if(tmp==stu[i].s){/* 已经检索到了*///在这里,执行你想要的代码}else{for (int j = 0; j < stu[i].s.size(); j++) {for (int k = 0; k < tmp.size(); k += 2) {if ((stu[i].s[j] == a[k]) && (tmp[i].s[j + 1] == a[k + 1])) {stu[i]nt++;//计数,符合当前执行条件}}}}/*以上写的代码是关于汉字的,若是英文字符,算法类似,但是不用两个相比较了*/}bool flag=false;//这里判断是否符合标准for (int i = 0; i < 114; i++) {if (stu[i]nt >= a.size() / 2 && stu[i]nt != 0) {flag = true;//当前是符合标准的}if (flag) {cout << "已为您找到一下题目信息\n";//判断flag,有无题目信息,给一个int temp = 1;int t = 0;for (int i = 0; i < 114; i++) {if (stu[i]nt >= a.size() / 2 && stu[i]nt != 0) {//输出当前查找到的资源cout << temp << ".";temp++;cout << stu[i].s << endl;}}} else {cout << "当前数据暂未库,如有数据资源,请联系我们\n";/*找不到了!!!*/}
}

上述代码所需要比对的数据没有进行读入,因为数据量太大了

那么以上就是检索的全部代码了,其实就是一个暴力的写法,不过代码更注重的是可读性,也就是让大家都能看得懂,方便日后的检查。

希望大家能够关注我,谢谢~

本文标签: C 制作内容检索程序