C语言课程设计_第1页
C语言课程设计_第2页
C语言课程设计_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、«C语言课程设计课程设计报告题目字符文件处理学号姓名竺I年级专业2014级白动化指导教师王元航完成日期2014年6月22日安徽师范大学物理与电子彳一CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity目录课程设计与分析1.1课题背景及意义1.2目的要求1.3课题要求1.4设计目标设计概要2.1问题解决的思路概主程序设计流程图3.1主程序的简要流程图详细函数体模块算法介绍4.1文件生成的算法4.2文本单词计数算法4.3特定单词计数算法一. 用户使用说明与简单调试二. 整体程序三. 总结与心得一.课程设计与分析1、课

2、题背景及意义伴随着信息化与白动化时代的到来,人类逐渐的将白己从体力,脑力等各方面得以解放,而人类则愈来愈追求智能化,因而利用程序实现智能成为一个人们必将面对的话题。而白动计数也是实现智能化的必经之路,利用大一刚学习的C语言进行编程实现白动计数恰恰是在我们的能力范围之内,所以进行这一课程设计的学习与研究,正能检验我们学习这门课程的质量与对所学知识的创新与拓展。2、目的要求:在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成I可题分析、模块设计、代码编写、程序调试和运行等训练任务。通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编

3、程风格,培养在软件开发中相互合作的团队意识。1) 3、课题要求?统计英文文本文件中单词的个数;?2) ?统计某一个特定单词出现的频度。4、设计目标用数组接收文件的所有字符或直接从文件读取,然后通过循环计数与比较分析。1.设计概耍1、问题解决的思路概述首先是确定结构化程序设计的流程图,并以此为依据编写结构函数体,由于文件知识方面的生疏,我不得不借助数组用来接收文件的所有字符。此函数通过把主函数构造出利用switch的多通道性开发出具有选择功能的入口,分别将文件生成函数,文本单词计数函数,特定单词计数函数作为它的三个分支,并且这三个函数均无返回值,这样便实现了程序的简洁,有序和周效。程序中加入了文

4、件生成函数则便于程序的检测,并且使程序多出了创建文件的功能。文本单词计数函数则将文件的所有字符读入数组,然后利用循环实现计数。特定单词计数函数利用循环嵌套完成特定单词的匹配与白动计数。2、本程序下定义的相关函数1、voidcreat_text_file()/文件生成函数:生成文本文件方便检验程序;2、voidcount_word()/文本文件单词计数函数:统计所有单词的个数;3、voidwordcheck()/特定单词计数函数:对特定的单词在文本中进行核对并白动计数;4、intmain()/给予用户提示实现与用户的交互作用,并且声明各个函数并进行调用。.主程序的流程基函数调用说明1)、主程序的

5、简要流程图:四. 详细函数模块算法介绍1、文件生成的算法在TurboC环境中先创建文件名,接着以“读入”的方式向文件中写入文本,最终以*为文本输入结束标志。程序如下:voidcreat_text_file()(FILE*fp;charc,file13;printf("Enterthefilenametobecreated:");scanf("%s”,file);if(fp=fopen(file,"w")=NULL)(printf("cannotopenthisfile");exit(0);printf("Enter

6、thecontentstobesavedinthefilen");while(c=getchar()!='*')fputc(c,fp);fclose(fp);2、文本单词计数算法先将文本的所有字符读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,用过isalpha函数判断从数组中读入的字符是否为字母,若读取过程中出现下面这种情况:读入一个字符为字母,并且上一个字符不是字母,则计数器自动加一。就这样一直进行循环,直到读到数组的结束再显示所有单词的个数。程序如下:voidcount_word()(inti,word,num=0;charc;FILE*q;char

7、filename20,s800;printf("thenameofthefile:");scanf("%s”,filename);if(q=fopen(filename,"r")=NULL)(printf("cannotopenthefile");exit(0);for(i=0;!feof(q);i+)fscanf(q,”%c”,&si);fclose(q);word=0;for(i=0;(c=si)!=0;i+)if(isalpha(c)=0)word=0;elseif(word=0)(word=1;num+;nu

8、m=num-1;printf("The%schuxianguo%dcin”,filename,num);3、特定单词计数算法先初a=1,始化令将要匹配的那个单词读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,设置的大循环条件是存储单词的文件读完为止,小循环的判断条件是当从文件中读入的字符与单词的数组的第一个元素相等的时候开始循环,并且数组与文件的地址均自动加一,一旦不相等,贝U立即跳出小循环,进而乂进入大循环。程序如下:voidwordcheck()(inta,b=0,i;charfilename20,word30;charch;FILE*p;printf("z

9、hegetedingdedancishi:n");scanf("%s”,word);printf("thenameofthefile:");scanf("%s",filename);if(p=fopen(filename,"r")=NULL)printf("cannotopenthefile");exit(0);while(!feof(p)ch=fgetc(p);a=1;for(i=0;wordi!='0'i+)if(wordi=ch)ch=fgetc(p);elsea=0;br

10、eak;if(a=0);elseif(a=1)b+;printf("Zhegedancichuxianle%dcin",b);用户使用说明与简单调试1、将程序导入VisualC+6.0;通过VC运行后你会看到以下情形:此时输入:1接着会要求用户输入要创建的文件名:Clxanzongxuan"iit.gcontents再输入检测文件F:MicrosoftVisualStudioCommonMSDev98BinDebugILexen此时需要用户自己进行选择是接着查询文本中单词的个数还是查询某个特定单词的个数;若选择查询文本中单词的个数则输入2运行结果如下:若此时接着想

11、查询某个特定单词的个数,则接着输入3并且这个特定单词是we,则运行结果如下若这个特定单词是students,则运行结果是:nanewenciciI:;t.ndent!:filejianzoogciqing3CUHTIqingxuanjianisuomwmmmmjiansuo*wenjlan所有运行结果都是正确的,并且到现在为止还未出现过什么五. 差错整体程序整体程序如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>voidcreat_text_file

12、()(FILE*fp;charc,file13;printf("Enterthefilenametobecreated:");scanf("%s”,file);if(fp=fopen(file,"w")=NULL)(printf("cannotopenthisfile");exit(0);printf("Enterthecontentstobesavedinthefilen");while(c=getchar()!='*')fputc(c,fp);fclose(fp);voidcount_

13、word()(inti,word,num=0;charc;FILE*q;charfilename20,s800;printf("thenameofthefile:");scanf("%s”,filename);if(q=fopen(filename,"r")=NULL)(printf("cannotopenthefile");exit(0);for(i=0;!feof(q);i+)fscanf(q,”%c”,&si);fclose(q);word=0;for(i=0;(c=si)!=0;i+)if(isalpha(c

14、)=0)word=0;elseif(word=0)word=1;num+;num=num-1;printf("The%schuxianguo%dcin”,filename,num);voidwordcheck()inta,b=0,i;charfilename20,word30;charch;FILE*p;printf("zhegetedingdedancishi:n");scanf("%s”,word);printf("thenameofthefile:");scanf("%s”,filename);if(p=fopen(f

15、ilename,"r")=NULL)printf("cannotopenthefile");exit(0);while(!feof(p)ch=fgetc(p);a=1;for(i=0;wordi!='0'i+)if(wordi=ch)ch=fgetc(p);a=0;break;if(a=0);elseif(a=1)b+;printf("Zhegedancichuxianle%dcin",b);intmain()voidcreat_text_file(),count_word(),wordcheck();intxz;wh

16、ile(1)printf("*5)printf("*wenbenwenjiandancidejishuyujiansuo*n");liwenbenwendang*n");printf("*2.wenbendancihuizong*n");printf("*3.tedingdancijishu*n");printf("*4.tuichu*n");printf("qingxuanzhe:");scanf("%d",&xz);switch(xz)case

17、1:creat_text_file();break;case2:count_word();break;case3:wordcheck();break;case4:return0;default:printf("xuanthecuo*n");printf("*1.jian六. wu,qingxhongxinxuann");总结与心得“文件管理”是计算机程序设计的重要理论技术基础,想学好这门课不仅仅只停留在课本上的理论知识,更需要长期的编程实践。在做本课程设计中,前前后后花了近三个星期的时间,算法越琢磨越明白,看问题也越来越透彻。期间,还做了好几次较大规模的修改,特别是调试程序的时候,反反复复做了许多的工作,如果没有前面C语言的基础,光是调试程序的工作量就是不可想象的。通过这次设计,让我更加熟悉C语言程序设计,以及更深刻地了解到程序设计与数据结构是密不可分的,即使是追求同一个结果,你也可以走不同的道路存储操作数,你可以用数组,用指针,用字符串等等。编程时,你会遇到各种困难需要你去解决。你要学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论