比较2个文本文件的内容

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书

院系:电子专业:电子信息工程班级:6402104

学号:200604021130 题目:比较2个文本文件的内容

一、课程设计时间

2007年9月10日至2007年9月14日,共计1周,20学时。

二、课程设计内容

用C语言编写软件完成以下任务:

自己创建2个文本文件,然后判断它们文字内容的相似性(雷同的程度)。如果二者的所有单词中,相同的单词数量占总量的80%,则认为二者是雷同的。

三、课程设计要求

1. 程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“创建文件1”、“创建文件2”、“判

断相似性”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2. 课程设计说明书:

课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:________ 学生签名:________

五、成绩:

六、教师评语:

目录

一.题目及要求-----------------------------------------------------------------1二.需求分析----------------------------------------------------------------1三.程序总流程图-------------------------------------------------------------2 四.关键技术分析--------------------------------------------------------------6 五.完整的源程序--------------------------------------------------------------6 六.个人总结-----------------------------------------------------------------11 七.参考文献------------------------------------------------------------------11

一.题目及要求

二.需求分析:

本程序需要判断文件相似性,因此在主菜单中需要建立两个文件,分别调用了函数Creat1-Z()和Creat2-Z(),再建立判断文件相似性的程序,调用函数Compare-Z()。在主菜单中由于用到goto循环,所以添加退出程序,在主菜单中还要应用if判断语句。本程序关键是判断两个文件是否相似,需应用while循环和if判断语句。

三.程序总流程图1流程图

2.各程序流程图

(1)创建文件1与文件2的流程图

(2)判断文件相似性compare-z()流程图

四.关键技术分析:

关键是goto,并且还用了while循环语句和if的判断语句,循环时注意退出命令,还有循环语句的起始命令。if语句判断时注意和的逻辑关系。

五.完整的源程序

#include

#include

#include

#include

#include

struct words

{

char w[20];

char w2[20];

}word[100];

char sep[]="! ,.\"?';:()\t\r\n";

/* 创建文件1*/

Creat1_Z()

{

FILE *fp;

char str[256];

int i;

if((fp=fopen("e:\\file1.txt","w+"))==NULL)

printf(" Cannot open this file!\n"); else

{ printf(" Enter a string to File1:\n");

scanf("%s");

gets(str);

/*puts(str);*/

fputs(str,fp); /*把字符串str输出到FP中*/

printf("\n Success!\n");

}

fclose(fp);

}

/*创建文件2*/

Creat2_Z()

{

FILE *fp;

char str[256];

int i;

if((fp=fopen("e:\\file2.txt","w+"))==NULL)

printf(" Cannot open this file!\n"); else

{ printf(" Enter a string to File2:\n"); scanf("%s");

gets(str);

/* puts(str);*/

fputs(str,fp);

printf("\n Success!\n");

}

fclose(fp);

}

/*判断文件相似性*/

Compare_Z()

{

FILE *fp;

char *p,*k;

char ss[256];

int j,i,n1,n2,sum,t,same;

float q;

if((fp=fopen("e:\\file1.txt","r"))==NULL)

printf(" Cannot find file1!\n" );

else

{

j=0;i=0; /*i行数,j单词个数*/

while(fgets(ss,256,fp))

{

i+=1;

printf(" The Row %d is: %s\n",i,ss);

p=strtok(ss,sep);

strcpy(word[j].w,p);

j+=1;

while(p=strtok(NULL,sep))

{

strcpy(word[j].w,p);

j++;

}

}

n1=j;

printf(" File1: %d Rows\n",i);

printf(" %d words\n",j);

}

printf(" --------------------------------------------\n");

相关文档
最新文档