比较两个文件是否雷同C语言

上传人:飞*** 文档编号:43860496 上传时间:2018-06-07 格式:DOC 页数:12 大小:85.50KB
返回 下载 相关 举报
比较两个文件是否雷同C语言_第1页
第1页 / 共12页
比较两个文件是否雷同C语言_第2页
第2页 / 共12页
比较两个文件是否雷同C语言_第3页
第3页 / 共12页
比较两个文件是否雷同C语言_第4页
第4页 / 共12页
比较两个文件是否雷同C语言_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《比较两个文件是否雷同C语言》由会员分享,可在线阅读,更多相关《比较两个文件是否雷同C语言(12页珍藏版)》请在金锄头文库上搜索。

1、沈 阳 航 空 工 业 学 院课课 程程 设设 计计学学 号号 200604021093班班 级级 6402103 姓姓 名名 马马宇宇庆庆指指导导教教师师 刘刘 成成2007 年年 9 月月 18 日日沈沈阳阳航航空空工工业业学学院院课课程程设设计计任任务务书书电子工程系电子工程系 电子信息工程专业电子信息工程专业 6402103 班班 学号学号 200604021093200604021093一、一、课课程程设计题设计题目:目:比比较较两个文件是否雷同两个文件是否雷同 二、二、课课程程设计设计工作自工作自 2007 年年 9 月月 10 日起至日起至 2007 年年 9 月月 14 日止日

2、止 三、三、课课程程设计设计内容内容: 用 C 语言编写软件完成以下任务: 用程序创建 2 个文本文件并输入一些单词,然后判断它们文字内容的相似性(雷 同的程度) 。如果二者的所有单词中,相同的单词数量占总量的 80%,则认为二者是 雷同的(识别单词程序可参考谭浩强C 程序设计P150 例 7.8) 。 四、四、课课程程设计设计要求:要求: 程序程序质质量:量: 贯彻结构化程序设计思想。 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。 用户界面中的菜单至少应包括“创建文件 1” 、 “创建文件 2” 、 “判断相似性” 、 “退出”4 项。 代码应适当缩进,并给出必要的注释,以增强

3、程序的可读性。 课课程程设计说设计说明明书书: :课程结束后,上交课程设计说明书(打印稿和电子稿) ,其内容如下: 封面 课程设计任务书 目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料 源程序及适当的注释指指导导教教师师: :_学生学生签签名:名:_沈沈 阳阳 航航 院院 设设 计计 用用 纸纸I目录目录一、需求分析.1二、程序流程图.2三、核心技术的实现说明及相应程序段.3四、个人总结.5五、参考文献.5六、源程序.6沈沈 阳阳 航航 院院 设设 计计 用用 纸纸1一一、需求分析、需求分析通过对程序设计题目的

4、分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,它们的功能分别是:创建文件 1(Creat1_z),创建文件2(Creat2_z) 以及相似性判断(contrast)。1、创建文件、创建文件 1 主要功能:创建一个文件并向其中保存文件 1 中的数据;2、创建文件、创建文件 2 主要功能:创建一个文件并向其中保存文件 2 中的数据;3、相似性判断、相似性判断 按照题目的具体要求实现的是将创建的两个文件内的单词进行比较,计算相同单词数和相似度;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。将文件 1 和文件

5、 2 分别存到 D 盘的 text1.txt 和text2.txt 中,并保存。沈沈 阳阳 航航 院院 设设 计计 用用 纸纸2二二、程序流程图、程序流程图1、程序总体结构图、程序总体结构图当 t!=4t=1 真假t=2 真假t=3 真假 t=4 真 假创建文件 1创建文件 2判断两文 件相似性 退出错误图 1 程序总体结构图2、具体功能框图、具体功能框图(1)创建文件)创建文件当 t=1 或 t=2真打开文件假 输入内容 关闭文件无法打开 退出图 2 创建文件沈沈 阳阳 航航 院院 设设 计计 用用 纸纸3(2)相似性判断)相似性判断 contrast当 t=3 时 当 k=1 时 将 a

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

7、词依次存入是 str1 和 str2 中进行比较,使用 while()循环嵌套实现整个比较过程。再使用 for()循环计算 a,b 两数组中的总单词数,进行相似度的计算。具体的程序段如下:contrast()() char str115,str215;int i=0,j=0,t=0,s,k=1,f=1;while(k=1)for(s=0;(ai!=32)s+,i+)/*将将 a 数组中的单词存入数组中的单词存入 str1 中中*/str1s=ai;str1s=0;if(str1=“) continue;/*空格不进行比较空格不进行比较*/f=1;j=0;while(f=1)for(s=0;(b

8、j!=32)j+,s+)/*将将 b 组中的单词存入组中的单词存入 str2*/str2s=bj;str2s=0;if(str2=“) continue; /*空格不进行比较空格不进行比较*/if(strcmp(str1,str2)=0)/*比较比较 str1 与与 str2 中储存的单词是否相同中储存的单词是否相同*/t+;f=0;continue;沈沈 阳阳 航航 院院 设设 计计 用用 纸纸5j+;if(bj=0) f=0;i+;if(ai=0) k=0;printf(“相同单词数相同单词数:%dn“,t);for(i=0,j=0,s=0;ai!=0;i+)/*计算计算 a 数组中的单词

9、数数组中的单词数*/if(ai=32) s=0;else if(s=0) s=1;j+;for(i=0,s=0;bi!=0;i+)/*计算计算 b 组中的单词数组中的单词数*/if(bi=32) s=0;else if(s=0) s=1;j+;printf(“相似度相似度:%5.2f%n“,N(t,j);/*相似度的计算相似度的计算*/if(N(t,j)=80) printf(“相同相同!n“);else printf(“不同不同!n“); 四四、个人总结、个人总结这是我自学习以来,使我 C 语言和 WARD 有了很大的进步,并对 C 语言和 WARD 有了更加深刻的了解。使我懂得 C 语言

10、WARD 的实际重要性,这次实践也使我有了融入实践的机会。这次课设实践使我学习到了很多新的知识,同时也使我懂得做事要认真。我在这次实践中,体会到了由不懂到懵懂,由懵懂到彻底领会的痛苦与欢乐。并且,通过实践我更加深了与同学之间的友谊,也更加丰富了我沈沈 阳阳 航航 院院 设设 计计 用用 纸纸6的专业知识。前几天的课设过程中,我对所要设计的课题完全摸不到头脑,更不知如何下手。但是通过查阅资料和咨询老师是我每一次我都能有新的进展,并找到了一些解决方法。工夫不负苦心人,我渐渐成功的着手做起。可是,仍旧有一些细小的问题困扰我。但是通过同学和老师的帮助我不断完善了自己的设计,最终做出了令我自己比较满意的

11、程序。课程设计让我受益匪浅,锻炼了我的时间能力,提高了我对 C 语言的兴趣,同时也加深了我对 C 语言的理解。五五、参考文献、参考文献1 谭浩强C 程序设计北京:清华大学出版社,20052 刘成等C 语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序六、源程序#include“stdio.h“沈沈 阳阳 航航 院院 设设 计计 用用 纸纸7#include“string.h“ #define N(a,b) 2.0*a/b*100 FILE *pa,*pb; int t,m; char a100,b100; /*创建文件创建文件 1*/ void Creat1_Z() if(p

12、a=fopen(“d:file1.txt“,“w+“)=NULL)printf(“tCannot open this file!n“);else printf(“tEnter a string to File1:n“); getchar();gets(a);fputs(a,pa);printf(“tSuccess!n“);fclose(pa); /*创建文件创建文件 2*/ void Creat2_Z() if(pb=fopen(“d:file2.txt“,“w+“)=NULL)printf(“tCannot open this file!n“);else printf(“tEnter a s

13、tring to File2:n“);getchar(); gets(b);fputs(b,pb);printf(“tSuccess!n“);fclose(pb); /*相似性比较相似性比较*/ void contrast( ) 沈沈 阳阳 航航 院院 设设 计计 用用 纸纸8char str115,str215;int i=0,j=0,t=0,s,k=1,f=1;while(k=1)for(s=0;(ai!=32)s+,i+)str1s=ai;str1s=0;if(str1=“) continue;f=1;j=0;while(f=1)for(s=0;(bj!=32)j+,s+)str2s=b

14、j;str2s=0;if(str2=“) continue;if(strcmp(str1,str2)=0)t+;f=0;continue;j+;if(bj=0) f=0;i+;if(ai=0) k=0;printf(“相同单词数相同单词数:%dn“,t);for(i=0,j=0,s=0;ai!=0;i+)if(ai=32) s=0;else if(s=0) s=1;j+;for(i=0,s=0;bi!=0;i+)if(bi=32) s=0;else if(s=0) s=1;j+;printf(“相似度相似度:%5.2f%n“,N(t,j);if(N(t,j)=80) printf(“相同相同!n“);沈沈 阳阳 航航 院院 设设 计计 用用 纸纸9else printf(“不同不同!n“); /*/ void mune() printf(“*判断两个文件是否相同判断两个文件是否相同 *n“); printf(“tt 1:创建文件创建文件 1n“);printf(“tt

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号