源代码相似度比较

源代码相似度比较

ID:47535152

大小:15.18 KB

页数:3页

时间:2020-01-13

源代码相似度比较_第1页
源代码相似度比较_第2页
源代码相似度比较_第3页
资源描述:

《源代码相似度比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#include#include#defineN32//关键字个数#definesize256#definemaxlen9#definehashlen41//哈希表长度#defineSmax0.9//相似度s的阈值#defineDmin2structhashtable{char*hash1;//指向关键字的指针intcount;}hashtt[hashlen];usingnamespacestd;voidHashfunc

2、(charstr[]);//将关键字根据哈希函数放入哈希表中的指定位置intHashfind(char*words);//在哈希表中找是否该words为关键字,并统计频度intisletter(charch);//判断是否为字母floatMol(int*x);//取模函数intDot(int*x1,int*x2);//点积函数floatD(int*x1,int*x2);//求距离D的函数floatS(int*x1,int*x2);//求相似度S的函数intreadc(char*filename);//读取源程序文件中的单词

3、intgetkey(char*str,intlen);//获取该单词的keyvoidresethash(intn);//重置哈希表voidcopycount(intx[],intn);//将频道拷贝到数组里if((ch>='a'&&ch<='z')

4、

5、(ch>='A'&&ch<='Z'))return1;return0;}intreadc(char*filename){//读取源程序文件中的单词FILE*fp1=NULL;charwords[maxlen],ch;inti;if((fp1=fopen(filename,"r

6、"))==NULL){cout<<"cannotcreatfile!";exit(0);}while(!feof(fp1))//结束返回1{i=0;ch=fgetc(fp1);//一个字符一个字符的读while(isletter(ch)==0&&feof(fp1)==0){ch=fgetc(fp1);}while(isletter(ch)==1&&feof(fp1)==0){if(i==maxlen){while(isletter(ch)==1&&feof(fp1)==0){ch=fgetc(fp1);}i=0;bre

7、ak;}//超过最大关键字长度将会跳过当前识别区域,读取下一个单词else{words[i++]=ch;ch=fgetc(fp1);}}words[i]='';Hashfind(words);//将得到的该单词调入Hashfind函数,来判断是否为关键字,并统计频度}fclose(fp1);return0;}floatMol(int*x)//取模函数{inti=0,sum=0;for(i=0;i

8、Dot(int*x1,int*x2){//点积函数inti=0,sum=0;for(i=0;i

9、x1,int*x2){floatxs=0,xd=0;xs=S(x1,x2);cout<<"相似度xs="<Smax)//先判断S,若S大于阈值再计算几何距离{xd=D(x1,x2);cout<<"几何距离xd="<

10、urn;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。