实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
(实验四 文学研究助手)
韶 关 学 院
学 生 实 验 报 告 册
实验课程名称:数据结构与算法
实验项目名称:实验四 串及其应用
文学研究助手
实验类型(打? ):(基础 、综合 、
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
? )
院 系:信息
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
学院计算机系 专 业:*****
姓 名:*** 学 号:*****
指导老师:陈正铭
韶关学院教务处编制
一、实验预习报告内容
预习日期:2007年 5 月 8日
实验预习报告内容原则上应包括实验目的、实验所用的主要仪器药品、实验原理与公式、 实验预习疑问等项目。
【实验目的】熟悉串类型的实现方法和文本模式匹配的方法,熟悉一般文字处理软件的设计方法以及较复杂问题的分解求精方法。
【需要分析】文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。写一个实现这一目标的文字统计系统,称为“文学研究助手”。
【软件平台】
Windows 2000,Visual C,, 6.0或WINTC
【概要设计】
参看《数据结构题集》P123
【疑问】
单链表中是否设头结点好,
(这部分内容因人而异,也可不写)
实验预习评分:
二、实验原始(数据)记录 实 验 时 间: 2007 年 5 月 16 日(星期 三 第 7,8 节) 实验同组人 :
如有实验实验数据
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
,学生在实验预习时应画好实验数据表格,供实验填写数据。
参看《数据结构题集》P134
用源程序测试,把源程序重命名为“test.cpp”,存放于c盘根目录,运行程序,结果如下:
请输入要搜索的文本(输入格式为:文本的存放路径\文本名.扩展名)
c:\test.cpp
请输入要搜索的单词(英文单词),如果是'#'则表示输入结束
status
int
typedef
if
cout
#
搜索结果:
status:出现的次数13;10,17,40,49,55,62,71,103,112,121,127,140,196行
int :出现的次数11;10,15,19,20,25,27,79,91,96,143,149行
typedef:出现的次数7;10,11,12,33,37,90,94行
if :出现的次数9;28,42,105,114,151,153,154,184,198行
cout :出现的次数18;43,96,106,115,118,130,152,179,183,184,188,191,199,200,211,21
8,222行
是否继续进行搜索(Y/N)
经测试,结果正确。
指导教师
批阅及签名
三、实验报告内容
2007年 5 月 16 日
实验报告内容原则上应包括主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。
【主程序模块】:
参看《数据结构题集》P125
【功能模块调用关系图】
参看《数据结构题集》P133
【详细设计】
参看《数据结构题集》P125~133
【调试分析】(这部分内容因人而异)
参看《数据结构题集》P133
【用户手册】
参看《数据结构题集》P134
实验报告评分:
注:1、如有个别实验的实验报告内容多,实验报告册页面不够写,或有识图,画图要求的,学生应根据实
验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。
2、实验报告册属教学运行
材料
关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料
,院系(中心)应按有关规定归档保管。
【源程序】
#include
return OK;}
#include status InsAfter(RowLink &L,ElemType e)
#include //用后插法把单词结点e插入链表L #include {MakeRNobe(L.tail->next); #include L.tail->next->data=e; #include L.tail=L.tail->next; #define OK 1 return OK;}
#define FALSE 0 status DestroyRLink(RowLink &L)//销毁链表L #define XIZE 20 {while(L.head)
typedef int status; {L.tail=L.head->next; typedef FILE *PFILE; delete(L.head); typedef char String[XIZE]; L.head=L.tail; } struct ElemType//单词类型 return OK;}
{String data;//单词串 status CreateRLink(RowLink &L,FILE *fp)
int len;//单词的长度}; //创建存放fp指向文本每中一行单词的链表 status CopyWord(ElemType &e,String ch) {String ch;char c=getc(fp);ElemType e;
//把字符串ch复制到单词元素e InitRLink(L);
{int j=strlen(ch); while(c!='\n'&&!feof(fp))
for(int i=0;i<=j;i++) {while(!(c>='A'&&c<='Z'||c>='a'&&c<='z')&&c!='
e.data[i]=ch[i]; \n'&&!feof(fp))//滤去非法字符
e.len=strlen(ch); c=getc(fp);
return OK;} for(inti=0;c>='A'&&c<='Z'||c>='a'&&c<='z';i++)
int MatWord(ElemType S,ElemType T) //取单词
//单词的匹配,若相等则返回0,否则返回非0 {ch[i]=c;
{for(int i=0;inext=NULL; struct SWLinkList//待搜索的单词集合的链表
return OK;} {SWLink head,tail;}; status InitRLink(RowLink &L) status MakeRowNumNobe(RMLink &p) //初始化链表L //生成一个行结点
{MakeRNobe(L.head); {if(!(p=new RowNumNobe))
L.tail=L.head; {cout<<"分配行号结点失败"<RMtail=ps->RMtail->next; }
p->next=NULL; leap=0; } }
return OK;} pr=pr->next; } status MakeSWNobe(SWLink &p) ps=ps->next; } //生成一个待搜索的单词结点 DestroyRLink(RL); } {if(!(p=new SearchWordNobe)) return OK;}
{cout<<"分配待搜索的单词结点失败"<next=NULL;p->cout=0; {SWLink p;RMLink pr; p->RMhead=NULL;p->RMtail=NULL; cout<<"搜索结果:"<next;
status InitSWLinkList(SWLinkList &S) while(p)
//初始化待搜索的单词链表 {printf("%-6s:",p->data.data); {MakeSWNobe(S.head); cout<<"出现的次数"<cout<<";";
S.tail=S.head; if(p->cout) {
return OK;} pr=p->RMhead;
status CreateSWLinkList(SWLinkList &S) while(pr){cout<elem<<","; //建立一个待搜索的单词链表 pr=pr->next; } {InitSWLinkList(S);String st="#";ElemType e,leap; cout<<"\b行"<next; }
cout<<"请输入要搜索的单词(英文单词),如果是'#'则表}
示输入结束"<>st;CopyWord(e,st); //打开文件
while(MatWord(e,leap)) {if(!(fp=fopen(ch,"r")))
{MakeSWNobe(S.tail->next); {cout<<"文件打开失败"<next->data=e; cout<<"Press any key to exit"<next; getch();
cin>>st;CopyWord(e,st); } return FALSE; }
return OK;} return OK;}
status SeekSWLinkList(SWLinkList &S,FILE *fp) void main()
//{PFILE fp;String ch;char c='Y'; 查找文本中出现待搜索的单词的次数和行号
SWLinkList S; {RowLink RL; PRNobe pr=NULL;SWLink ps=NULL;
int i=0; system("cls");
while(!(feof(fp)))//读取文本的每一行单词 do
{i++; {cout<<"请输入要搜索的文本(输入格式为:文本的存
CreateRLink(RL,fp);//创建文本的一行单词链表 放路径\\文本名.扩展名)"<next; cin>>ch;
while(ps)//遍历待搜索的单词链表的每个结点 }while(!OpenFile(fp,ch));
{pr=RL.head->next;int leap=1; do
while(pr)//遍历本文中一行单词链表的每个结点 {CreateSWLinkList(S);
{if(!MatWord(pr->data,ps->data)) SeekSWLinkList(S,fp);
{ps->cout++; OutputSWLinkList(S);
if(leap==1)//判断待搜索单词是否第一次出现 cout<<"是否继续进行搜索(Y/N)"<RMhead==NULL)//判断是否是第一个结点 cin>>c;rewind(fp); {MakeRowNumNobe(ps->RMhead); }while(c=='Y'||c=='y'); ps->RMhead->elem=i; fclose(fp);
ps->RMtail=ps->RMhead; } cout<<"Press any key to exit"<RMtail->next); }
ps->RMtail->next->elem=i;