(完整word版)文本文件单词的检索与计数课程设计实验报告
文本文件单词的检索与计数

软件综合课程设计文本文件单词的检索与计数实时监控报警系统二〇一四年六月文本文件单词的检索与计数1.问题陈述要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。
(1).建立文本文件(2)给定单词的计数(3)检索单词出现在文本文件中的行号、次数及其位置(4)主控菜单程序的结构①头文件包含②菜单选项包含建立文件、单词定位、单词计数、退出程序③选择1-4执行相应的操作,其他字符为非法。
2.程序代码#include<stdio.h>#include<string.h>#include<iostream>#define MaxStrSize 256 //根据用户需要自己定义大小using namespace std;typedef struct {char ch[MaxStrSize]; //ch是一个可容纳256个字符的字符数组int length;} SString;//定义顺序串类型int PartPosition (SString s1,SString s2,int k){ int i,j;i=k-1;//扫描s1的下标,因为c中数组下标是从0开始,串中序号相差1 j=0;//扫描s2的开始下标while(i<s1.length && j<s2.length){if(s1.ch[i]==s2.ch[j]){ i++;j++; //继续使下标移向下一个字符位置}else{i=i-j+1; j=0;} }if (j>=s2.length)return i-s2.length;elsereturn -1;//表示s1中不存在s2,返回-1//表示s1中存在s2,返回其起始位置} //函数结束void CreatTextFile(){SString S;char fname[10],yn;FILE *fp;printf("输入要建立的文件名:");scanf("%s",fname);fp=fopen(fname,"w");yn='n';//输入结束标志初值while(yn=='n'||yn=='N'){printf("请输入一行文本:");gets(S.ch);gets(S.ch);S.length=strlen(S.ch);fwrite(&S,S.length,1,fp);fprintf(fp,"%c",10);//是输入换行printf("结束输入吗?y or n :");yn=getchar();}fclose(fp);//关闭文件printf("建立文件结束!");}void SubStrCount(){FILE *fp;SString S,T;//定义两个串变量char fname[10];int i=0,j,k;printf("输入文本文件名:");scanf("%s",fname);fp=fopen(fname,"r");printf("输入要统计计数的单词:");cin>>T.ch;T.length=strlen(T.ch);while(!feof(fp)){ //扫描整个文本文件// fread(&S.ch,1,sizeof(S),fp);//读入一行文本 memset(S.ch,'\0',256);fgets(S.ch,100,fp);S.length=strlen(S.ch);k=0; //初始化开始检索位置while(k<S.length-1) //检索整个主串S{j=PartPosition(S,T,k);//调用串匹配函数if(j<0 ) break;else {i++;//单词计数器加1k=j+T.length;//继续下一字串的检索 }}}printf("\n单词%s在文本文件%s中共出现%d次\n",T.ch,fname,i);}//统计单词出现的个数void SubStrInd(){ FILE *fp;SString S,T; //定义两个串变量char fname[10];int i,j,k,l,m;int wz[20]; //存放一行中字串匹配的多个位置printf("输入文本文件名:");scanf("%s",fname);fp=fopen(fname,"r");printf("输入要检索的单词:");scanf("%s",T.ch);T.length=strlen(T.ch);l=0; //行计数器置0while(!feof(fp)) { //扫描整个文本文件//fread(&S,sizeof(S),1,fp); //读入一行文本memset(S.ch,'\0',256);fgets(S.ch,256,fp);S.length=strlen(S.ch);l++; //行计数器自增1k=0;//初始化开始检索位置i=0; //初始化单词计数器while(k<S.length-1) //检索整个主串S{ j=PartPosition(S,T,k); //调用串匹配函数if(j<0) break;else {i++;//单词计数器加1wz[i]=j;//记录匹配单词位置k=j+T.length;//继续下一字串检索}}if(i>0){ printf("行号:%d,次数:%d,位置分别为:",l,i);for(m=1;m<=i;m++) printf("%4d",wz[m]+1);printf("\n");}}}//检索单词出现在文本文件中的行号、次数及其位置int main(){ void CreatTextFile(),SubStrCount(),SubStrInd();int xz;do {printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf("*文本文件的检索、字串的统计及定位*\n");printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf("* 1. 建立文本文件*\n");printf("* 2. 单词字串的计数*\n");printf("* 3. 单词字串的定位*\n");printf("* 4. 退出整个程序*\n");printf("* * * * * * * * * * * * * * * * * * * ** * * * *\n");printf(" 请选择(1--4) ");scanf("%d",&xz);switch(xz) {case 1 : CreatTextFile();break;case 2 : SubStrCount();break;case 3 : SubStrInd();break;case 4 : return 0;default:printf("选择错误,重新选\n");}}while(1);}3.运行结果4.设计体会与总结我的课程设计题目是文本文件单词的检索与计数。
英汉小词典课程设计报告

2012-2013学年第二学期《高级语言程序设计》课程设计报告题目:英汉小词典专业:计算机科学与技术班级:计科2班姓名:XXXX指导教师:XXX成绩:计算机与信息工程系2013年06月28日目录1设计内容及要求 (3)1.1设计内容 (3)1.2设计任务及具体要求 (3)2概要设计 (4)2.1系统功能简介 (4)2.2总体设计框图 (4)3设计过程或程序代码 (5)3.1对关键代码加以分析说明 (5)3.2程序运行界面 (10)4 程序设计结果与分析 (12)5 心得 (13)致谢 (13)参考文献 (13)附录:源程序 (14)英汉小词典1 设计内容及要求1.1设计内容(1)、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查询、增词、删除、修改和维护工作。
(2)、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。
(3)、对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。
(4)、采用菜单工作方式。
在一个操作执行之后,程序询问是否继续执行该操作。
如输入A或a,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。
仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
1.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个英汉小词典,至少具有如下功能:查询、删除、增词、修改单词。
操作界面要符合用户的一般习惯,图形或文本界面都可以。
要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
单词的检索与计数教材

内江师范学院计算机科学学院数据结构课程设计报告课题名称:文本文件单词的检索与计数姓名:学号:专业班级:软件工程系(院):计算机科学学院设计时间:20XX 年X 月X日设计地点:成绩:1.课程设计目的(1).训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。
(2).初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(3).提高综合运用所学的理论知识和方法独立分析和解决问题的能力;(4).训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。
2.课程设计任务与要求:文本文件单词的检索与计数软件任务:编写一个文本文件单词的检索与计数软件, 程序设计要求:1)建立文本文件,文件名由用户键盘输入2)给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数要求:(1)、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。
前期准备工作完备与否直接影响到后序上机调试工作的效率。
在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。
(2)、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。
(3)、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;(4)、每位同学需提交可独立运行的程序;(5)、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于8页(代码不算);(6)、课程设计实践作为培养学生动手能力的一种手段,单独考核。
3.课程设计说明书一需求分析3.1 串模式匹配算法的设计要求在串的基本操作中,在主串中查找模式串的模式匹配算法——即求子串位置的函数Index(S,T),是文本处理中最常用、最重要的操作之一。
课程设计单词簿实验报告

课程设计单词簿实验报告一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握单词簿的基本概念和实验原理,了解实验步骤和数据分析方法。
技能目标要求学生能够独立进行单词簿实验,掌握实验操作技能,并能够分析实验结果。
情感态度价值观目标要求学生培养对科学的兴趣和好奇心,提高实验操作的规范性和准确性,培养团队合作和交流表达能力。
通过分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容根据课程目标,选择和教学内容,确保内容的科学性和系统性。
制定详细的教学大纲,明确教学内容的安排和进度。
本课程的教学内容主要包括单词簿的基本概念、实验原理、实验步骤和数据分析方法。
教学大纲如下:1.单词簿的基本概念和实验原理2.实验步骤和实验操作技能3.实验结果的数据分析方法三、教学方法选择合适的教学方法,如讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
结合课本内容,采用多种教学方法,丰富学生的学习体验。
1.讲授法:通过教师的讲解,介绍单词簿的基本概念和实验原理,为学生提供理论知识的基础。
2.讨论法:学生进行小组讨论,引导学生思考和探索实验原理和数据分析方法,培养学生的思维能力和团队合作精神。
3.案例分析法:通过分析典型实验案例,让学生理解和应用实验原理和数据分析方法,提高学生的分析和解决问题的能力。
4.实验法:学生进行单词簿实验,培养学生的实验操作技能和实验观察能力,提高学生的实践能力。
四、教学资源选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
教学资源应该能够支持教学内容和教学方法的实施,丰富学生的学习体验。
1.教材:选择一本适合学生年级的单词簿实验教材,提供实验原理、实验步骤和数据分析方法的学习内容。
2.参考书:提供相关的参考书籍,供学生深入学习和拓展知识。
3.多媒体资料:制作多媒体课件和教学视频,帮助学生形象地理解实验原理和数据分析方法。
文件检索实验报告

《文献检索》实验报告姓名:王贇贇学号:S1405007流水号:20140461专业:信息与通信工程成绩:____________实验目的:通过检索实验,加深对课堂所学检索知识的巩固,对图书馆订购的重要中外文数据库有形象而直观的认识,并熟练掌握有关中外文数据库的检索方法;练习百度、谷歌等搜索引擎的搜索语法规则,通过实验掌握各种搜索语法的使用;学会专利文献、标准文献等的网络检索,提高针对专业课题进行检索的实际操作能力,特别是计算机信息检索的能力。
实验要求:1、实验前要认真复习课堂所学知识,重点复习计算机检索技术、各种中外文数据库的使用方法、网络学术信息资源查询等内容;2、检索实验中应按照检索实验步骤,逐步进行实验,认真做好检索记录,完成各项检索实验,将老师在课堂上讲的内容在上机实验过程中深化。
实验后须整理检索实验记录,按要求写出实验报告;3、实验报告要求:所写报告步骤合理、内容正确、项目完整、格式规范,并按规定的时间和方式上交。
实验内容1、检索课题,利用指定数据库查找近10年文献要求:(1)写出自拟课题的中、英文名称(课题至少含有2个主题概念,;课题:无线网络安全与网络技术Wireless network security and Network technology(2)写出中、英文检索词并编制中、英文检索式;检索词:无线网络安全 Wireless Network Security网络技术Network technology(3)利用中国知网的专业检索方式在文摘字段检索期刊论文,用截图方式记录检索过程,并截取被引频次最高的2篇文献的文摘记录片段。
步骤一:打开中国知网首页,选择文献,如下图步骤二:点击高级检索进入如下界面步骤三:点击专业检索进入如下界面步骤四:输入检索表达式点击检索进入如下界面,然后点击被引即所查结果按引频数从高到低排列步骤五:由步骤四得到引频最高的两篇文献,分别点击文献名称进入,分别记录片段(4)利用万方数据知识服务平台数据库的一框式检索方式在关键词字段进行检索,用截图方式记录检索过程,并截取最新发表的2篇文献的文摘记录片段。
c文章中单词查找课程设计

c 文章中单词查找课程设计一、教学目标本课程旨在通过文章中单词查找的学习,让学生掌握单词查找的基本方法和技巧,提高阅读理解能力。
具体目标如下:知识目标:使学生了解单词查找的重要性,理解单词查找的基本方法,掌握字典的使用技巧。
技能目标:培养学生快速准确查找文章中单词的能力,提高学生的阅读理解速度和准确度。
情感态度价值观目标:培养学生对英语阅读的兴趣,增强学生通过单词查找提高阅读理解能力的自信心。
二、教学内容本课程的教学内容主要包括单词查找的方法和技巧,以及如何通过单词查找提高阅读理解能力。
具体包括以下几个方面:1.单词查找的方法:根据文章的上下文推测单词的意思,使用字典查找单词的准确含义,通过同义词和反义词查找单词的用法。
2.单词查找的技巧:快速定位单词的位置,根据单词的前缀和后缀判断单词的意思,通过词根词缀记忆单词的含义。
3.文章阅读理解:通过单词查找提高文章阅读的速度和准确度,理解文章的主旨和细节,分析文章的结构和逻辑。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:教师通过讲解单词查找的方法和技巧,使学生掌握基本的单词查找知识。
2.讨论法:学生分组讨论单词查找的案例,分享彼此的查找方法和经验,提高查找技巧。
3.案例分析法:分析文章中的单词查找实例,引导学生运用所学知识和技巧解决问题。
4.实验法:学生自主进行单词查找实验,验证所学方法和技巧的有效性,提高阅读理解能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威的英语阅读教材,提供丰富的单词查找实例和练习题。
2.参考书:推荐学生阅读英语阅读参考书籍,拓展学生的阅读视野。
3.多媒体资料:利用多媒体课件和视频资料,生动形象地展示单词查找的方法和技巧。
4.实验设备:为学生提供电脑、字典等实验设备,方便学生进行单词查找实验。
课设报告统计英文单词数

“程序设计基础”课程设计报告(一)需求和规格说明该系统的功能是给定一个英文段落(单词个数<100),利用哈希表(表长最大为20)统计单词出现的频度,并能根据要求显示出给定单词在段落中出现的位置。
执行程序时由用户在键盘上输入程序中规定的运算命令;相应的输入数据和运算结果显示在其后。
该系统的实现是通过哈希函数的建立和查找分析,用线性探测再散列来处理冲突,从而得到哈希表并实现哈希表的查找。
该文章对哈希函数的应用方法是使用除留余数法构造,使用链地址法进行冲突处理。
2.1技术可行性哈希查找是通过计算数据元素的存储地址进行查找的一种方法。
哈希查找的操作步骤:用给定的哈希函数构造哈希表;根据选择的冲突处理方法解决地址冲突;在哈希表的基础上执行哈希查找。
2.2需求可行性世界上的事物都是有发展的,企图跨越阶段或者停滞,一切生命就都没有存在的理由了。
频率就是一个既动态又静态的东西,我们能肯定的是很多古词和今词是不一样的,今日被淘汰了,也就是说,今天的频率的统计是一定有确定的结论的。
也有一些古词仍在今日用着,或者在淘汰之中,所以频率难以确定。
我们知道黑天和白天是有区别的,但它们的交界点,却不是那么容易分辨了,恐怕需要经过科学家的精密研究。
交界点不容易确定,并不意味着事物之间没有区别。
世界上的事物都是有区别又有联系的。
有些人读书读傻了,钻了牛角尖,他弄不清两个事物之间的区别应该划在哪里,后来就连两个事物之间有区别也不敢认定了。
频率的统计是为了区别常用词和非常用词,方法可能不准确,但不至于否定常用词和非常用词之间的区别吧。
我们应该使统计精密起来。
火车今天不用火了,但如果当初也不用,就没有今天的“火车”了。
事物的变化是不可能停止的,但总还有个静态的定位,否则人们就无法认识任何事物了。
频率虽然是个复杂的问题,但科学的研究是必要的。
3 需求分析给定一个英文段落(单词个数<100),利用哈希表(表长最大为20)统计单词出现的频度,并能根据要求显示出给定单词在段落中出现的位置。
文献检索实验报告(一)中文数据库信息检索实验

文献检索实验报告(一)实验名称中文数据库信息检索实验姓名实验日期学号专业班级实验地点指导老师评分一.实验目的:1.熟悉与专业有关的中文数据库信息检索系统的基本情况;2.熟悉相应中文数据库信息检索系统的浏览器使用;3.掌握常用中文数据库信息检索系统的检索方法以及检索结果的处理;4.掌握提高查全率和查准率的方法。
二.实验环境:连接到因特网的实验室局域网环境,并能通过学院图书馆入口访问以下数据库系统:1.万方数据资源系统2.维普信息资源系统3.中国知网数据库4.人大《复印报刊资料全文数据库》5.超星数字图书馆6.试用数据库三.实验要求:先选检索课题:1.分析课题主题,写出课题所属领域、背景、拟解决的技术问题、采用的技术方案等相关技术内容。
(限200字左右)2.给出中外文检索词(包括主题词、关键词、同义词、缩写及全称等,限15个以上)及检索式,按要求检索数据库,写出检索过程,并按题录形式选择给出相关文献2-3篇。
3.中文数据库4种类型8个库:任选两个馆藏目录、联合目录、中文期刊数据库、事实与数值数据库进行检索。
4.外文数据库2个:5.学位论文库2个:万方学位论文库、中国知网。
6.会议论文库2个:万方学术会议库、中国知网。
7.标准、专利、注:结果页面截图:(用键盘Pr Scrn SysRq键截图,要求显示检索条件窗口)四.实验内容:1.从图书馆网站上安装CNKI阅览器和PDF格式全文阅览器。
从CNKI(即中国期刊网)的“进入总库平台”中的“中国学术期刊网络出版总库”检索2005年出版、EI来源期刊、篇名中包含“信息管理”的文献,任意下载一篇检索出的论文,分别下载CAJ格式和PDF格式,体验两种阅览器的各自功能。
2.利用中国知网的“中国博士学位论文全文数据库”检索,文献题名中包含“机群”的华中科技大学的博士学位论文。
记录结果数,并记录其中一篇的论文题名、作者、导师姓名及学科专业名称。
3.利用读秀的“报纸全文数据库”检索今年内关于“亚太经合组织”的新闻报道,共有记录多少条,记录时间最新一篇的新闻标题、刊登报纸、报纸日期、版号、分类号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文件检索1需求分析1.1 建立文本文件建立文本文件的实现思路(1)定义一个串变量(2)定义文本文件(3)输入文件名,打开该文件(4)循环读入文本行,写入文本文件,其过程如下:While(不是文件输入结束){读入一文本行至串变量;串变量写入文件;输入是否结束输入标志;}(5)关闭文件1.2给定单词的计数该功能需要用到前一节中设计的模式匹配算法,逐行扫描文本文件。
匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。
1.3 检索单词出现在文本文件中的行号、次数及其位置1.4 主控菜单程序的结构(1)头文件包含(2)菜单选择包括:1、建立文件2、单词计数3、单词定位4、退出程序(3)选择1~4执行相应的操作,其他字符为非法2.概要设计2.流程图2.1建立文本文件定义一个串变量,定义文本文件,输入文件名,打开该文件,循环读入文本行,写入文本文件,关闭文件。
建立文本文件的思路过程2.2给定单词的计数逐行扫描文本文件。
匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。
给定单词计数的过程2.3检索单词出现在文本文件中的行号、次数及其位置逐行扫描文本文件。
扫描一个单词,单词数加1,匹配一个,计数器加1,输出该单词数,行数到底以此,行数加1,单词数清零,直到整个文件扫描结束;然后输出单词的次数,行号,第几个单词。
检索单词的出现在文本文件中的行号,次数以及位置3详细设计主代码#include<stdio.h>#include<string.h>#define MaxStrSize 256 //根据用户需要自己定义大小typedef struct{char ch[MaxStrSize]; //ch是一个可容纳256个字符的字符数组int length;}SString; //定义顺序串类型int PartPosition(SString s1, SString s2, int k){int i, j;i=k-1; //扫描s1的下标,因为c中数组下标是从0开始,串中序号相差1 j=0; //扫描s2的开始下标while (i<s1.length&&j<s2.length){if(s1.ch[i]==s2.ch[j]){i++;j++; //继续使下标移向下一个字符位置}else{i=i-j+1;j=0;}}if(j>=s2.length)return i-s2.length;elsereturn -1; //表示s1中不存在s2,返回-1//表示s1中不存在s2,返回其起始位置} //函数结束void CreatTextFile(){SString S;char fname[10], yn;FILE *fp;printf("输入要建立的文件名:");scanf("%s", fname);fp=fopen(fname,"w");yn='n'; //输入结束标志初值while(yn=='n'||yn=='N'){printf("请输入一行文本:");gets(S.ch);gets(S.ch);S.length=strlen(S.ch);fwrite(&S, S.length, 1, fp);fprintf(fp,"%c", 10); //是输入换行printf("结束输入吗?y or n: ");yn=getchar();}fclose(fp); //关闭文件printf("建立文件结束!");}void SubStrCount(){FILE *fp;SString S,T; //定义两个串变量char fname[10];int i=0,j,k;printf("输入文本文件名:");scanf("%s", fname);fp=fopen(fname ,"r");printf("输入要统计技术的单词:");scanf("%s", T.ch);T.length=strlen(T.ch);while(!feof(fp)){ //扫描整个文件文本//fread(&S.ch,1,sizeof(S),fp); //读入一行文本memset(S.ch,'\0', 256);fgets(S.ch,100,fp);S.length=strlen(S.ch);k=0; //初始化开始检索位置while(k<S.length-1) //检索整个主串S{j=PartPosition(S,T,k);if(j<0)break;else{i++; //单词计数器加1k=j+T.length; //继续下一字串的检索}}}printf("\n单词%s在文本文件%s中共出现%d次\n", T.ch, fname,i);} //统计单词出现个数void SubStrInd(){FILE *fp;SString S,T; //定义两个串变量char fname[10];int i,j,k,l,m;int wz[20];printf("输入文本文件名:");scanf("%s", fname);fp=fopen(fname,"r");printf("输入要检索的单词:");scanf("%s", T.ch);T.length=strlen(T.ch);l=0;while(!feof(fp)){//fread(&S, sizeof(S), 1, fp);//读入一行文本memset(S.ch,'\0', 256);fgets(S.ch,256,fp);S.length=strlen(S.ch);l++;k=0;i=0;while(k<S.length-1){j=PartPosition(S,T,k);if(j<0)break;else{i++;wz[i]=j;k=j+T.length;}}if(i>0){printf("行号:%d , 次数:%d, 位置分别为:",l, i);for(m=1;m<=i;m++)printf("%4d", wz[m]+1);printf("\n");}}}int main(){void CreatTextFlie(), SubStrInd();int xz;do{printf("****************************************\n");printf("*文本文件的检索、字符串的统计及定位*****\n");printf("****************************************\n");printf("* 1.建立文本文件*\n");printf("* 2.单词字符串的计数*\n");printf("* 3.单词字符串的定位*\n");printf("* 4.退出程序*\n");printf("****************************************\n");printf(" 请选择(1——4)\n");scanf("%d", &xz);switch(xz){case 1:CreatTextFile(); break;case 2:SubStrCount(); break;case 3:SubStrInd(); break;case 4:return 0;default: printf("选择错误,重新选\n");}}while(1);}4调试分析4.1未输入文件前的页面4.2输入文本文件,计数单词出现的次数4.3检索某单词的行号,出现次数,以及位置5课程总结经过一周的奋斗,这次数据结构的课程设计终于做完了。
通过这次设计我们也着实又感受了一次编程的乐趣,从中也学到了不少知识。
感受最深的一点是:以前用编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。
现在编程感觉完全不同了。
在编写一个程序之前,先对这个课程设计进行了一下分析,将每个要求都花了一下算法流程图,使得自己的思路更加的清晰了。
然后进行编程,不断的在电脑上调试程序,终于完成了此次的课程设计。
另外,我还体会到深刻理解数据结构的重要性。
只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。
了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。
通过这次课程设计逐渐提高了自己的程序设计和调试能力,我以前对算法一直很害怕,总是看不明白究竟这程序中间的过程是怎么进行的。
在这次实验中我终于克服了这一障碍,一遍遍在心中自己默默的走,终于弄明白了,真的是功夫不负有心人啊!这次试验也让我看到了自己的不足,还是不太用模板类。
还有许多关于C语言的一些比较具体的东西还不太懂,需要进一步了解。
这次试验还让我意识到只。