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 制作内容检索程序
版权声明:本文标题:C++ 制作内容检索程序 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1693409810a220288.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论