C语言数据结构文本文件的检索,文本文件单词的检索与计数课程设计实验报告.doc...

41528d3028836879cd698677c3999917.gif文本文件单词的检索与计数课程设计实验报告.doc

文件检索1需求分析1.1建立文本文件建立文本文件的实现思路(1)定义一个串变量(2)定义文本文件(3)输入文件名,打开该文件(4)循环读入文本行,写入文本文件,其过程如下WHILE(不是文件输入结束){读入一文本行至串变量;串变量写入文件;输入是否结束输入标志;}(5)关闭文件12给定单词的计数该功能需要用到前一节中设计的模式匹配算法,逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。13检索单词出现在文本文件中的行号、次数及其位置14主控菜单程序的结构(1)头文件包含(2)菜单选择包括1、建立文件2、单词计数3、单词定位4、退出程序(3)选择14执行相应的操作,其他字符为非法2.概要设计2流程图2.1建立文本文件定义一个串变量,定义文本文件,输入文件名,打开该文件,循环读入文本行,写入文本文件,关闭文件。定义一个串变量定义文本文件输入文件名,打开该文件循环读入文本行,写入文本文件关闭文件WHILE是文本文件读入一文本行至串变量串变量写入文件文件输入结束YN建立文本文件的思路过程2.2给定单词的计数逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。给定一个单词定义N1,S0一共给了M个单词扫描第N个单词IFNINCLUDEDEFINEMAXSTRSIZE256//根据用户需要自己定义大小TYPEDEFSTRUCT{CHARCHMAXSTRSIZE//CH是一个可容纳256个字符的字符数组INTLENGTH}SSTRING//定义顺序串类型INTPARTPOSITIONSSTRINGS1,SSTRINGS2,INTK{INTI,JIK1//扫描S1的下标,因为C中数组下标是从0开始,串中序号相差1J0//扫描S2的开始下标WHILEIS2LENGTHRETURNIS2LENGTHELSERETURN1//表示S1中不存在S2,返回1//表示S1中不存在S2,返回其起始位置}//函数结束VOIDCREATTEXTFILE{SSTRINGSCHARFNAME10,YNFILEFPPRINTF“输入要建立的文件名“SCANF“S“,FNAMEFPFNAME,“W“YN N //输入结束标志初值WHILEYN N ||YN N {PRINTF“请输入一行文本“GETSSCHGETSSCHSLENGTHSTRLENSCHFWRITEFPRINTFFP,“C“,10//是输入换行PRINTF“结束输入吗YORN“YNGETCHAR}FCLOSEFP//关闭文件PRINTF“建立文件结束“}VOIDSUBSTRCOUNT{FILEFPSSTRINGS,T//定义两个串变量CHARFNAME10INTI0,J,KPRINTF“输入文本文件名“SCANF“S“,FNAMEFPFNAME,“R“PRINTF“输入要统计技术的单词“SCANF“S“,TCHTLENGTHSTRLENTCHWHILEFEOFFP{//扫描整个文件文本//FREAD//读入一行文本MEMSETSCH, \0 ,256FGETSSCH,100,FPSLENGTHSTRLENSCHK0//初始化开始检索位置WHILEK0{PRINTF“行号D,次数D,位置分别为“,L,I1MIMPRINTF“4D“,WZM1PRINTF“\N“}}}INTMAIN{VOIDCREATTEXTFLIE,SUBSTRINDINTXZDO{PRINTF“\N“PRINTF“文本文件的检索、字符串的统计及定位\N“PRINTF“\N“PRINTF“1建立文本文件\N“PRINTF“2单词字符串的计数\N“PRINTF“3单词字符串的定位\N“PRINTF“4退出程序\N“PRINTF“\N“PRINTF“请选择(14)\N“SCANF“D“,SWITCHXZ{CASE1CREATTEXTFILEBREAKCASE2SUBSTRCOUNTBREAKCASE3SUBSTRINDBREAKCASE4RETURN0DEFAULTPRINTF“选择错误,重新选\N“}}WHILE1}4调试分析41未输入文件前的页面42输入文本文件,计数单词出现的次数43检索某单词的行号,出现次数,以及位置5课程总结经过一周的奋斗,这次数据结构的课程设计终于做完了。通过这次设计我们也着实又感受了一次编程的乐趣,从中也学到了不少知识。感受最深的一点是以前用编程,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。现在编程感觉完全不同了。在编写一个程序之前,先对这个课程设计进行了一下分析,将每个要求都花了一下算法流程图,使得自己的思路更加的清晰了。然后进行编程,不断的在电脑上调试程序,终于完成了此次的课程设计。另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。通过这次课程设计逐渐提高了自己的程序设计和调试能力,我以前对算法一直很害怕,总是看不明白究竟这程序中间的过程是怎么进行的。在这次实验中我终于克服了这一障碍,一遍遍在心中自己默默的走,终于弄明白了,真的是功夫不负有心人啊这次试验也让我看到了自己的不足,还是不太用模板类。还有许多关于C语言的一些比较具体的东西还不太懂,需要进一步了解。这次试验还让我意识到只有不断的在电脑上调试程序,自己的水平才能得到提高。我会继续我们的兴趣编写程序的,相信在越来越多的尝试之后,自己会不断进步和提高。在此我要感谢尹四清老师和薛海丽老师在数据结构及课程设计中对我们的指引和帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值