比较2个文本文件的内容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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");