ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:107.97KB ,
资源ID:5372999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5372999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(文本信息处理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

文本信息处理.docx

1、文本信息处理课程设计班 级 学 号姓 名指导教师 年 月 日 课程设计任务书一、课程设计题目:文本信息处理二、课程设计工作自2007年7月9日起至2007年7月14日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:(1) 对存储在chapter.dat文件中的英文文章进行下面的处理操作,文章的具体内容自己输入。(2) 统计各个单词的数量,并将单词排序,排序结果输出到out.dat中,格式如下:单词名 数量(3)输入某一单词,判断该单词是否存在于该文章中,若存在,指出其在文章中出现的次数。四、课程设计要求:1、采用模块化程序设计方法;在程序界面,以菜单的形式调用各功能函数

2、;程序可读性强,界面友好;输出形式尽量美观。2、用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。3、用户界面中的菜单至少应包括“排序显示”、“查询单词”、“退出”3项。4、代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容如下: 课程设计任务书 程序设计题目 需求分析(分析题目的要求) 程序框图(总体框图和各功能模块框图,使用传统流程图或框图) 核心技术的实现方法及程序源代码及注释 个人总结 参考资料指导教师:_学生签名:_目录一、程序设计题目 1二、需求分析 1三、程序流程图 2四、核心技术的实现方法、

3、程序段及注释 7五、个人总结 10六、参考文献 11七、源程序 11一、程序设计题目文本信息处理,具体要求如下:1、打开文档(chapter.dat)2、输入查找单词,并显示单词在文章中出现的次数3、显示文章的内容4、对chapter文档中的文章进行单词排序5、退出程序注:用户界面中的菜单至少应包括“排序显示”、“查询单词”、“退出”3项。将单词排序,排序结果输出到out.dat中。二、需求分析经过对程序设计题目的分析,整个程序大致分为四个模块,其中每一个模块对应一个函数,他们的功能分别是 菜单函数(menu),查找函数(find),显示全文函数(show),排序函数(paixu), 1、菜单

4、函数 主要实现程序的菜单功能,将程序所包含的各种功能作输出显示;2、查找函数 主要实现的功能是实现判断单词是否存在于chapter.dat的文章中,若存在,并统计其数量。3、显示全文函数 主要实现的功能是显示储存在chapter.dat的文章的全文。4、排序函数 实现的功能是对chapter.dat中的文章的单词进行排序,并统计单词的数量,格式如下:单词名 数量除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。三、程序流程图1、程序总体结构图 对a进行赋值真 a=1? 假打开 文 件真 a=2? 假find(fp)真 a=3? 假S

5、how (fp)真 a=4? 假paixu(fp)真 a=5? 假break error 图1程序总体结构图2、具体功能框图(1)查找函数: 图2查找函数(2)显示全文函数: 变量ch ch=fgetc(fp) ch!=EOF putchar(ch) ch=fgetc(fp) 全文结束 rewind(fp) 图3显示全文函数(3)排序函数图4排序函数四、核心技术的实现方法、程序段及注释本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,查找函数,显示全文函数,排序函数是程序中较为核心的部分,下面分别进行说明。1、查找函数 输入查找

6、单词,对于已储存在chapter.dat文档中的文章,输入一个单词查看其是否在文章中,若是存在输出其个数.其判断方法是以单词是否为空判断单词开头,并使其从文章的开头循环到末尾,在这过程中,比较输入的单词和文章中的单词是否相同,有一个相同的,其结果就加一, 具体的程序段如下:void find(FILE *fp) /*查找单词*/ 申明形态变量FILE *fp;int i,j,m=0,n,t=0;char want10,now40,b10;printf(Please enter the word you wantn);scanf(%s,want);if(fp=fopen(D:chapter.da

7、t, a)=NULL) printf(can not open this filen); exit(0); fread(now,sizeof(now),1,fp);for(i=0;nowi!=0;i+)if(nowi=want0) n=i; for(j=0;j=m;j+) bj=nown+; if(strcmp(want,b)!=0)t+;printf(the quatity of the words is%d,t);return;2、显示全文函数该函数的核心内容是显示储存在chapter.dat文档中的英文文章,ch=fgetc(fp)调用文档内容,直到ch!=EOF结束,最后输出文章的内容

8、,具体程序段如下:void show(FILE *fp) char ch;printf(全文内容如下 :); ch=fgetc(fp); /*调用文档内容*/ while(ch!=EOF) putchar(ch); /*输出文章内容*/ ch=fgetc(fp); printf( 全文结束!); printf(n); rewind(fp); 3、排序函数该函数是把储存在chapter.dat文档中的文章的单词,按首字母的大小进行排序,并通过比较法比较每个单词,看是否有相同的,若存在,在数量上加1,最后统计总数量,然后以只写的方式打开文档out.dat,把结果输入到该文档中,具体的程序段如下:v

9、oid paixu(FILE *fp)FILE *fp1;(定义文件类型指针)int i,j,k,l,ge;char a5010,c10,bb;char *p,*p1;fp1=fopen(D:out.dat,w);bb=fgetc(fp);j=0;rewind(fp);i=1;for(j=0;j=9;j+) aij=fgetc(fp); if(aijz) aij=0;i=i+1;j=-1; if(feof(fp)!=0) break;rewind(fp1);for(l=0;l=2;k-) p=ak-1; p1=ak; if(strcmp(ak-1,ak)0) strcpy(c,ak-1); s

10、trcpy(ak-1,ak); strcpy(ak,c); ge=0;fprintf(fp1,按首个字母大小排列);fprintf(fp1,单词名(个数): );for(k=1;k=i-2;k+) ge=0; for(l=1;l=i-1;l+) if(strcmp(ak,al)=0) ge+; fprintf(fp1,%s(%d),&ak0,ge);fclose(fp1);五、个人总结通过这几天的C语言程序设计,使我对C语言编程有了更深刻的了解,也认识了自己在C语言方面的不足,而且通过这次C语言学习也给了我很大的帮助。虽然时间只有一周,但我知道了很多以前不知道的编程知识,加深了对C语言编程的了

11、解。虽然大一时学了C语言,但只是学了些程序的片段,并没有完完整整地编写一段应用程序,通过这次C语言课设,让我们能够自己写出一段完整的程序,是很大程度上的进步,这对今后的学习都有很大的帮助。六、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006七、源程序 #include #include #include void menu () /*功能菜单*/ printf(n*WELCOME*nn); printf(1-打开文档(chapter.dat).nn); printf(2-查询.nn); printf(3-显示全文.

12、nn); printf(4-排序.nn);printf(5-退出.nn); printf(*END*n); void find(FILE *fp) /*查询函数*/FILE *fp;int i,j,m=0,n,t=0;char want10,now40,b10;printf(Please enter the word you wantn);scanf(%s,want);if(fp=fopen(D:chapter.dat, a)=NULL) printf(can not open this filen); exit(0); fread(now,sizeof(now),1,fp);for(i=0;

13、nowi!=0;i+)if(nowi=want0) n=i; for(j=0;j=m;j+) bj=nown+; if(strcmp(want,b)!=0)t+;printf(the quatity of the words is%d,t);return;void paixu(FILE *fp) /*排序函数*/FILE *fp1; int i,j,k,l,ge;char a5010,c10,bb;char *p,*p1;fp1=fopen(D:out.dat,w);bb=fgetc(fp);j=0;rewind(fp);i=1;for(j=0;j=9;j+) aij=fgetc(fp); i

14、f(aijz) aij=0;i=i+1;j=-1; if(feof(fp)!=0) break;rewind(fp1);for(l=0;l=2;k-) p=ak-1; p1=ak; if(strcmp(ak-1,ak)0) strcpy(c,ak-1); strcpy(ak-1,ak); strcpy(ak,c); ge=0;fprintf(fp1,按首个字母大小排列);fprintf(fp1,单词名(个数): );for(k=1;k=i-2;k+) ge=0; for(l=1;l=i-1;l+) if(strcmp(ak,al)=0) ge+; fprintf(fp1,%s(%d),&ak0

15、,ge);fclose(fp1);void main() /*主函数*/ FILE *fp; int a,word=0,num,i; char ch; printf( n请先建立D:chapter.dat文档.n 然后按回车,进入后按提示进行操作. n); scanf(%c,&ch); menu(); /*调用提示函数*/ for(i=0;i2;) /*单词判断*/ printf(请输入命令:); scanf(%d,&a); /*输入选项*/ switch(a) /*判断选项*/ case 1:if(fp=fopen(D:chapter.dat,r)=NULL) printf(error!请检查chapter.dat是否存在!n); else printf(OPENn); break; case 2:find(fp); break; /*查找单词*/ case 3:show(fp); break; /*显示全文*/ case 4:paixu(fp);break;case 5:exit(0);break; default:printf(error:); if(a=5) break; fclose(fp);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1