1、.课题背景及意义.目的要求.课题要求.设计目标2.设计概要.问题解决的思路概3.主程序设计流程图.主程序的简要流程图4.详细函数体模块算法介绍.文件生成的算法.文本单词计数算法.特定单词计数算法5.用户使用说明与简单调试6.整体程序7.总结与心得 一课程设计与分析1、课题背景及意义 伴随着信息化与自动化时代的到来,人类逐渐的将自己从体力,脑力等各方面得以解放,而人类则愈来愈追求智能化,因而利用程序实现智能成为一个人们必将面对的话题。而自动计数也是实现智能化的必经之路,利用大一刚学习的C语言进行编程实现自动计数恰恰是在我们的能力围之,所以进行这一课程设计的学习与研究,正能检验我们学习这门课程的质
2、量与对所学知识的创新与拓展。2、目的要求:在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识。3、 课题要求1)统计英文文本文件中单词的个数;2)统计某一个特定单词出现的频度。4、设计目标 用数组接收文件的所有字符或直接从文件读取,然后通过循环计数与比较分析。 二设计概要1、 问题解决的思路概述 首先是确定结构化程序设计的流程图,并以此为依据编写结构函数体,由于文件知识方面的生疏,
3、我不得不借助数组用来接收文件的所有字符。此函数通过把主函数构造出利用switch的多通道性开发出具有选择功能的入口,分别将文件生成函数,文本单词计数函数,特定单词计数函数作为它的三个分支,并且这三个函数均无返回值,这样便实现了程序的简洁,有序和高效。程序中加入了文件生成函数则便于程序的检测,并且使程序多出了创建文件的功能。文本单词计数函数则将文件的所有字符读入数组,然后利用循环实现计数。特定单词计数函数利用循环嵌套完成特定单词的匹配与自动计数。2、本程序下定义的相关函数1、void creat_text_file() /文件生成函数:生成文本文件方便检验程序;2、void count_word
4、() /文本文件单词计数函数:统计所有单词的个数;3、void wordcheck() /特定单词计数函数:对特定的单词在文本中进行核对并自动计数; 4、int main() /给予用户提示实现与用户的交互作用,并且声明各个函数并进行调用。三主程序的流程基函数调用说明1)、主程序的简要流程图:相应函数输出运算结果四详细函数模块算法介绍1、文件生成的算法 在Turbo C环境中先创建文件名,接着以“读入”的方式向文件中写入文本,最终以*为文本输入结束标志。程序如下:void creat_text_file() FILE *fp; char c,file13; printf(Enter the f
5、ile name to be created:); scanf(%s,file); if(fp=fopen(file,w)=NULL) printf(cannot open this file exit(0); Enter the contents to be saved in the file n while(c=getchar()!=*) fputc(c,fp); fclose(fp);2、文本单词计数算法先将文本的所有字符读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,用过isalpha函数判断从数组中读入的字符是否为字母,若读取过程中出现下面这种情况:读入一个字符为字母,并
6、且上一个字符不是字母,则计数器自动加一。就这样一直进行循环,直到读到数组的结束再显示所有单词的个数。void count_word() int i,word,num=0; char c; FILE *q; char filename20,s800;the name of the file:,filename); if(q=fopen(filename,rcannot open the file for(i=0;!feof(q);i+) fscanf(q,%c,&si); fclose(q); word=0;(c=si)!=0; if(isalpha(c)=0) word=0; else if(
7、word=0) word=1; num+; num=num-1;The %s chu xian guo %d ci n,filename,num); 3、特定单词计数算法先初a=1,始化令将要匹配的那个单词读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,设置的大循环条件是存储单词的文件读完为止,小循环的判断条件是当从文件中读入的字符与单词的数组的第一个元素相等的时候开始循环,并且数组与文件的地址均自动加一,一旦不相等,则立即跳出小循环,进而又进入大循环。void wordcheck() int a,b=0,i; char filename20,word30; char ch; FI
8、LE *p;zhe ge te ding de dan ci shi :n,word); if(p=fopen(filename, while(!feof(p) ch=fgetc(p); a=1; for(i=0;wordi!0; if(wordi=ch) ch=fgetc(p); else a=0; break; if(a=0); else if(a=1) b+;Zhe ge dan ci chu xian le %d ci n,b);五用户使用说明与简单调试1、 将程序导入Visual C+ 6.0;通过VC运行后你会看到以下情形:此时输入:1接着会要求用户输入要创建的文件名:再输入检测文
9、件容:此时需要用户自己进行选择是接着查询文本中单词的个数还是查询某个特定单词的个数;若选择查询文本中单词的个数则输入2运行结果如下:若此时接着想查询某个特定单词的个数,则接着输入3并且这个特定单词是we,则运行结果如下若这个特定单词是students,则运行结果是:所有运行结果都是正确的,并且到现在为止还未出现过什么差错。六整体程序整体程序如下:#include stdlib.hstring.hctype.hint main() void creat_text_file(),count_word(),wordcheck(); int xz; while(1) printf(*n*wen ben
10、 wen jian dan ci de ji shu yu jian suo*n*1.jian li wen ben wen dang *n*2.wen ben dan ci hui zong *n*3.te ding dan ci ji shu *n*4.tui chu *n qing xuan zhe: scanf(%dxz); switch(xz) case 1: creat_text_file();break; case 2: count_word(); case 3: wordcheck(); case 4: return 0; default:printf(xuan the cuo
11、 wu,qing xhong xin xuan n 七总结与心得“文件管理”是计算机程序设计的重要理论技术基础,想学好这门课不仅仅只停留在课本上的理论知识,更需要长期的编程实践。在做本课程设计中,前前后后花了近三个星期的时间,算法越琢磨越明白,看问题也越来越透彻。期间,还做了好几次较大规模的修改,特别是调试程序的时候,反反复复做了许多的工作,如果没有前面C语言的基础,光是调试程序的工作量就是不可想象的。 通过这次设计,让我更加熟悉C语言程序设计,以及更深刻地了解到程序设计与数据结构是密不可分的,即使是追求同一个结果,你也可以走不同的道路存储操作数,你可以用数组,用指针,用字符串等等。编程时,你会遇到各种困难需要你去解决。你要学会观察,学会分析,学会思考,在各个方向寻求突破口,其中,就会涉及很多知识。包括C语言、数据结构、英语,甚至暗含生活知识。让我深感编程的奥妙:你无法全部掌握,你需要永远学习。参考文献:【1】谭浩强著.C程序设计(第三版).:清华大学,2005【2】著。标准C语言基础教程(第四版)。电子工业物理与电子信息学院课程设计评定意见指导教师评语主要容包括:设计报告容的完整性和完成情况、报告格式的规性、通过课程设计取得的收获等。成绩: 签名: 年 月 日注:本页与上一页用A3纸套印成封面和封底,课程设计报告正文用A4纸打印然后装订
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1