下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 实验报告(实验四 文学研究助手)

实验报告(实验四 文学研究助手).doc

实验报告(实验四 文学研究助手)

杜永福
2018-02-19 0人阅读 举报 0 0 暂无简介

简介:本文档为《实验报告(实验四 文学研究助手)doc》,可适用于综合领域

实验报告(实验四文学研究助手)韶关学院学生实验报告册实验课程名称:数据结构与算法实验项目名称:实验四串及其应用文学研究助手实验类型(打):(基础、综合、设计)院系:信息工程学院计算机系专业:*****姓名:***学号:*****指导老师:陈正铭韶关学院教务处编制一、实验预习报告内容预习日期:年月日实验预习报告内容原则上应包括实验目的、实验所用的主要仪器药品、实验原理与公式、实验预习疑问等项目。【实验目的】熟悉串类型的实现方法和文本模式匹配的方法熟悉一般文字处理软件的设计方法以及较复杂问题的分解求精方法。【需要分析】文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。写一个实现这一目标的文字统计系统称为“文学研究助手”。【软件平台】WindowsVisualC或WINTC【概要设计】参看《数据结构题集》P【疑问】单链表中是否设头结点好,(这部分内容因人而异也可不写)实验预习评分:二、实验原始(数据)记录实验时间:年月日(星期三第节)实验同组人:如有实验实验数据表格学生在实验预习时应画好实验数据表格供实验填写数据。参看《数据结构题集》P用源程序测试把源程序重命名为“testcpp”存放于c盘根目录运行程序结果如下:请输入要搜索的文本(输入格式为:文本的存放路径文本名扩展名)c:testcpp请输入要搜索的单词(英文单词),如果是'#'则表示输入结束statusinttypedefifcout#搜索结果:status:出现的次数,,,,,,,,,,,,行int:出现的次数,,,,,,,,,,行typedef:出现的次数,,,,,,行if:出现的次数,,,,,,,,行cout:出现的次数,,,,,,,,,,,,,,,,行是否继续进行搜索(YN)经测试结果正确。指导教师批阅及签名三、实验报告内容年月日实验报告内容原则上应包括主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。【主程序模块】:参看《数据结构题集》P【功能模块调用关系图】参看《数据结构题集》P【详细设计】参看《数据结构题集》P~【调试分析】(这部分内容因人而异)参看《数据结构题集》P【用户手册】参看《数据结构题集》P实验报告评分:注:、如有个别实验的实验报告内容多实验报告册页面不够写或有识图画图要求的学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。、实验报告册属教学运行材料院系(中心)应按有关规定归档保管。【源程序】#include<iostreamh>returnOK}#include<stdioh>statusInsAfter(RowLinkL,ElemTypee)#include<stdlibh>用后插法把单词结点e插入链表L#include<conioh>{MakeRNobe(Ltail>next)#include<processh>Ltail>next>data=e#include<stringh>Ltail=Ltail>next#defineOKreturnOK}#defineFALSEstatusDestroyRLink(RowLinkL)销毁链表L#defineXIZE{while(Lhead)typedefintstatus{Ltail=Lhead>nexttypedefFILE*PFILEdelete(Lhead)typedefcharStringXIZELhead=Ltail}structElemType单词类型returnOK}{Stringdata单词串statusCreateRLink(RowLinkL,FILE*fp)intlen单词的长度}创建存放fp指向文本每中一行单词的链表statusCopyWord(ElemTypee,Stringch){Stringchcharc=getc(fp)ElemTypee把字符串ch复制到单词元素eInitRLink(L){intj=strlen(ch)while(c!='n'!feof(fp))for(inti=i<=ji){while(!(c>='A'c<='Z'||c>='a'c<='z')c!='edatai=chin'!feof(fp))滤去非法字符elen=strlen(ch)c=getc(fp)returnOK}for(inti=c>='A'c<='Z'||c>='a'c<='z'i)intMatWord(ElemTypeS,ElemTypeT)取单词单词的匹配,若相等则返回,否则返回非{chi=c{for(inti=i<Sleni<Tleni)c=getc(fp)}if(Sdatai!=Tdatai)chi=''returnSdataiTdataiCopyWord(e,ch)returnSlenTlen}InsAfter(L,e)}文本的每一行单词模块returnOK}typedefstructRNobe单词结点类型待搜索的单词集模块{ElemTypedatatypedefstructRowNumNobe行号结点类型RNobe*next{intelem行号}*PRNobeRowNumNobe*nexttypedefstructRowLink表示文本每一行的链表}*RMLink{RNobe*head,*tailtypedefstructSearchWordNobe待搜索的单词结点类型}*RLink{ElemTypedata待搜索单词statusMakeRNobe(PRNobePN)intcout待搜索单词出现的次数生成一个单词结点RMLinkRMhead,RMtail存放文本中出现待搜索单词行{if(!(PN=newRNobe))号的链表{cout<<"为新单词分配存储空间失败"<<endlSearchWordNobe*nextexit(FALSE)}}*SWLinkPN>next=structSWLinkList待搜索的单词集合的链表returnOK}{SWLinkhead,tail}statusInitRLink(RowLinkL)statusMakeRowNumNobe(RMLinkp)初始化链表L生成一个行结点{MakeRNobe(Lhead){if(!(p=newRowNumNobe))Ltail=Lhead{cout<<"分配行号结点失败"<<endlexit(FALSE)}ps>RMtail=ps>RMtail>next}p>next=leap=}}returnOK}pr=pr>next}statusMakeSWNobe(SWLinkp)ps=ps>next}生成一个待搜索的单词结点DestroyRLink(RL)}{if(!(p=newSearchWordNobe))returnOK}{cout<<"分配待搜索的单词结点失败"<<endlvoidOutputSWLinkList(SWLinkListS)exit(FALSE)输出待搜索的单词链表的在文本中出现的次数和行号}p>next=p>cout={SWLinkpRMLinkprp>RMhead=p>RMtail=cout<<"搜索结果:"<<endlreturnOK}p=Shead>nextstatusInitSWLinkList(SWLinkListS)while(p)初始化待搜索的单词链表{printf("s:",p>datadata){MakeSWNobe(Shead)cout<<"出现的次数"<<p>cout<<""Stail=Sheadif(p>cout){returnOK}pr=p>RMheadstatusCreateSWLinkList(SWLinkListS)while(pr){cout<<pr>elem<<","建立一个待搜索的单词链表pr=pr>next}{InitSWLinkList(S)Stringst="#"ElemTypee,leapcout<<"b行"<<endl}CopyWord(leap,st)p=p>next}cout<<"请输入要搜索的单词(英文单词),如果是'#'则表}示输入结束"<<endlstatusOpenFile(PFILEfp,Stringch)cin>>stCopyWord(e,st)打开文件while(MatWord(e,leap)){if(!(fp=fopen(ch,"r"))){MakeSWNobe(Stail>next){cout<<"文件打开失败"<<endlStail>next>data=ecout<<"Pressanykeytoexit"<<endlStail=Stail>nextgetch()cin>>stCopyWord(e,st)}returnFALSE}returnOK}returnOK}statusSeekSWLinkList(SWLinkListS,FILE*fp)voidmain(){PFILEfpStringchcharc='Y'查找文本中出现待搜索的单词的次数和行号SWLinkListS{RowLinkRLPRNobepr=SWLinkps=inti=system("cls")while(!(feof(fp)))读取文本的每一行单词do{i{cout<<"请输入要搜索的文本(输入格式为:文本的存CreateRLink(RL,fp)创建文本的一行单词链表放路径文本名扩展名)"<<endlps=Shead>nextcin>>chwhile(ps)遍历待搜索的单词链表的每个结点}while(!OpenFile(fp,ch)){pr=RLhead>nextintleap=dowhile(pr)遍历本文中一行单词链表的每个结点{CreateSWLinkList(S){if(!MatWord(pr>data,ps>data))SeekSWLinkList(S,fp){ps>coutOutputSWLinkList(S)if(leap==)判断待搜索单词是否第一次出现cout<<"是否继续进行搜索(YN)"<<endl{if(ps>RMhead==)判断是否是第一个结点cin>>crewind(fp){MakeRowNumNobe(ps>RMhead)}while(c=='Y'||c=='y')ps>RMhead>elem=ifclose(fp)ps>RMtail=ps>RMhead}cout<<"Pressanykeytoexit"<<endlelsegetch(){MakeRowNumNobe(ps>RMtail>next)}ps>RMtail>next>elem=i

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

实验报告(实验四 文学研究助手)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利