比较两个文件是否雷同

比较两个文件是否雷同

ID:15740982

大小:84.00 KB

页数:12页

时间:2018-08-05

比较两个文件是否雷同_第1页
比较两个文件是否雷同_第2页
比较两个文件是否雷同_第3页
比较两个文件是否雷同_第4页
比较两个文件是否雷同_第5页
资源描述:

《比较两个文件是否雷同》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、沈阳航空工业学院课程设计学号班级姓名指导教师年月日沈阳航空工业学院课程设计任务书一课程设计题目:比较两个文件是否雷同二课程设计工作自三课程设计内容:用C语言编写软件完成以下任务:用程序创建2个文本文件并输入一些单词,然后判断它们文字内容的相似性(雷同的程度)。如果二者的所有单词中,相同的单词数量占总量的80%,则认为二者是雷同的(识别单词程序可参考谭浩强《C程序设计》P150例7.8)。四课程设计要求:程序质量:l贯彻结构化程序设计思想。l用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l用户界面中的菜单至少应包括“创建文件1

2、”、“创建文件2”、“判断相似性”、“退出”4项。l代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l封面l课程设计任务书l目录l需求分析(分析题目的要求)l程序流程图(总体流程图和主要功能模块流程图)l核心技术的实现说明及相应程序段l个人总结l参考资料l源程序及适当的注释指导教师:____________________学生签名:____________________沈阳航院设计用纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段

3、3四、个人总结5五、参考文献5六、源程序69沈阳航院设计用纸一、需求分析通过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,它们的功能分别是:创建文件1(Creat1_z),创建文件2(Creat2_z)以及相似性判断(contrast)。1、创建文件1主要功能:创建一个文件并向其中保存文件1中的数据;2、创建文件2主要功能:创建一个文件并向其中保存文件2中的数据;3、相似性判断按照题目的具体要求实现的是将创建的两个文件内的单词进行比较,计算相同单词数和相似度;除上面介绍的功能之外,程序还具有退

4、出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。将文件1和文件2分别存到D盘的text1.txt和text2.txt中,并保存。9沈阳航院设计用纸二、程序流程图1、程序总体结构图当t!=4t=1真假创建文件1t=2真假创建文件2t=3真假判断两文件相似性t=4真假退出错误图1程序总体结构图2、具体功能框图(1)创建文件当t=1或t=2真打开文件假输入内容无法打开退出关闭文件图2创建文件9沈阳航院设计用纸(2)相似性判断contrast当t=3时当k==1时将a数组中的单词依次存入str1中当f==1时将b数

5、组中的第j个单词存入str2中sr1=str2真假t++j++当a[i]==’’

6、

7、b[i]==’’时s++输出相似度为2.0*t/s*100%图3相似性判断三、核心技术的实现说明及相应程序段本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,相似性判断是程序中较为核心的部分,下面分别进行说明。相似性判断9沈阳航院设计用纸使用strcmp函数比较两个单词是否相同,通过调用for循环将数组a,b中的单词依次存入是str1和str2中进行比较,使用while()循环嵌套实现整个

8、比较过程。再使用for()循环计算a,b两数组中的总单词数,进行相似度的计算。具体的程序段如下:contrast(){charstr1[15],str2[15];inti=0,j=0,t=0,s,k=1,f=1;while(k==1){for(s=0;(a[i]!=32)&&(a[i]!=0)==1;s++,i++)/*将a数组中的单词存入str1中*/str1[s]=a[i];str1[s]='';if(str1=="")continue;/*空格不进行比较*/f=1;j=0;while(f==1){for(s=0;(b[j]!=

9、32)&&(b[j]!=0)==1;j++,s++)/*将b组中的单词存入str2*/str2[s]=b[j];str2[s]='';if(str2=="")continue;/*空格不进行比较*/if(strcmp(str1,str2)==0)/*比较str1与str2中储存的单词是否相同*/{t++;f=0;continue;}j++;if(b[j]==0)f=0;}i++;if(a[i]==0)k=0;9沈阳航院设计用纸}printf("相同单词数:%d",t);for(i=0,j=0,s=0;a[i]!=0;i++)/*

10、计算a数组中的单词数*/if(a[i]==32)s=0;elseif(s==0){s=1;j++;}for(i=0,s=0;b[i]!=0;i++)/*计算b组中的单词数*/if(b[i]==32)s=0;

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

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

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