标题:word文档查重算法C语言代码
只看楼主
wt_666
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-2
结帖率:0
已结贴  问题点数:20 回复次数:3 
word文档查重算法C语言代码
想用C语言写个程序,可以实现论文查重功能,输出论文的重复率,求大神指教!
搜索更多相关主题的帖子: C语言 论文 
2016-11-22 22:33
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:20 
第一次自学文件执行操作,也许看上去编写的程序有点生硬,但基本功能应该还可以的,你先看看~
程序代码:
/*检查论文重复率*/

#include<stdio.h>
#include<stdlib.h>
FILE *fp1,*fp2;
void fun_open()//初始化事件
{
/*    char road_1[100],road_2[100];
    pirntf("请输入论文1路径\n");
    scnaf("%[^\n]%*c",road_1);
    pirntf("请输入论文2路径\n");
    scnaf("%[^\n]%*c",road_2);
    if ((fp1=fopen(road_1,"r"))==NULL)
    {
        printf("无法打开此文件\n");
        exit(0);
    }
    if ((fp2=fopen(road_2,"r"))==NULL)
    {
        printf("无法打开此文件\n");
        exit(0);
    }
    ---这里提供了自行输入路径格式的方式*/
    if ((fp1=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写.txt","r"))==NULL)//路径和格式自己改~当然
    {
        printf("无法打开此文件\n");
        exit(0);
    }
    if ((fp2=fopen("D:\\个人管理\\编程\\文本\\读写文件\\读写2.txt","r"))==NULL)//路径和格式自己改
    {
        printf("无法打开此文件\n");
        exit(0);
    }
}
void load()//输出两篇论文
{
    char ch1,ch2;
    printf("两篇论文输出如下\n\n论文1:\n\n");
    while (!feof(fp1))
    {
        ch1=fgetc(fp1);
        putchar(ch1);
    }
    putchar(10);

    printf("\n论文2\n\n");

    while (!feof(fp2))
    {
        ch2=fgetc(fp2);
        putchar(ch2);
    }
    putchar(10);
}
void judge()//判断
{
    char ch1,ch2;
    double same=0.0,dif=0.0;
    while (!feof(fp1)||!feof(fp2))
    {

        while((ch1=fgetc(fp1))==' ');//防止空格影响~
        while((ch2=fgetc(fp2))==' ');
        if (ch1==ch2)same++;
        else dif++;
    }
    printf("\n两篇论文的重复率为%%%.2f\n",same/(same+dif)*100);
}
void fun_rewind(FILE *fp1,FILE *fp2)
{
    rewind(fp1);
    rewind(fp2);
}
int main()
{
    fun_open();
    load();
    fun_rewind(fp1,fp2);
    judge();
    fclose(fp1);
    fclose(fp2);
    return 0;
}


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-23 21:20
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
对了,我测试用的是txt格式,word文档格式的要在格式那里改一下~
不过,还有一个致命的bug,就是换行符影响重复率的问题有待解决~

[此贴子已经被作者于2016-11-23 21:26编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-23 21:21
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
那个查重算法明显过于简陋,导致了实用性很低~有待改进……

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-23 21:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471475-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.335653 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved