数据结构实习报告模板

上传人:cl****1 文档编号:509912364 上传时间:2023-03-28 格式:DOC 页数:15 大小:162.50KB
返回 下载 相关 举报
数据结构实习报告模板_第1页
第1页 / 共15页
数据结构实习报告模板_第2页
第2页 / 共15页
数据结构实习报告模板_第3页
第3页 / 共15页
数据结构实习报告模板_第4页
第4页 / 共15页
数据结构实习报告模板_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构实习报告模板》由会员分享,可在线阅读,更多相关《数据结构实习报告模板(15页珍藏版)》请在金锄头文库上搜索。

1、数 据 结 构 实习报告题 目: 班 级: 姓 名: 完成日期: 目 录一、问题描述:文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统,称为“文学研究助手”。英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。二、需求分析:1、 文本串非空且以文件形式存放,统计匹配的词集非空。文件名和词集均用户从键盘输入;2、 “单词”定义:由字母构成的字符序列,中间不含空格字符且区分大小写;3、 待统计的“单词”在文本串中不跨行出现,它或

2、者从行首开始,或者前置若干空格字符;4、 在计算机终端输出的结果是:单词,出现的次数,出现的位置所在行的行号,同一行出现两次的只输出一个行号;5、 测试数据:将实验的源程序作为测试文件,从中任意选取“单词”作为测试的词集。三、概要设计:采用截取字符串、比较字符串的模式来完成“单词匹配比较”,从而统计出其出现的位置和次数。1、数据结构定义:程序将涉及到如下两个线性表结构的数据类型,用类C语言描述如下:(1) 定义从文本读取的“单词串”类型:ADT 数据对象:D=Si | Si 标准c+ 字符串集合,i = 1,2,3,.,n,n 0;数据关系:R1= | Si-1,Si D,i = 1,2,3,

3、.,n基本操作:create (FSList & FSL);初始条件:已知一个空的“文本单词串表头”;操作结果:生成一个空的“文本单词串序列”;insert (FSList & FSL,string str,int row);初始条件:FSL为文本字符串序列的表头str为一个标准的c+字符串,row代表了字符串出现的行数;操作结果:将str插入到文本字符串序列中,不需要排序;若FSL为空表头,则创建一个字符串序列;否则插在字符串序列尾部;getFSLength (FSList FSL);初始条件:FSL为文本字符串序列的表头;操作结果:获取以FSL为表头的文本字符串的长度print (FSLi

4、st FSL);初始条件:FSL为文本字符串序列的表头;操作结果:打印以FSL为表头的文本字符串中的所有字符串;readFile (FSList & FSL);初始条件:FSL为文本字符串序列的表头;操作结果:从文件中读取字符串序列,并将其保留在以FSL为表头的字符串序列中;clear (FSList & FSL);初始条件:FSL为文本字符串序列的表头;操作结果:以FSL为表头的文本字符串序列被清空;ADT (2) 定义从键盘读取的“单词串”类型:ADT KeyString数据对象:D=Si | Si 标准c+ 字符串集合,i = 1,2,3,.,n,n 0;数据关系:R1= | Si-1,

5、Si D,i = 1,2,3,.,n基本操作:createKeyString (KSList & KSL);初始条件:已知一个空的“键盘单词串表头”;操作结果:生成一个空的“键盘单词串序列”;insertKeyString (KSList & KSL,string str,int row);初始条件:KSL为键盘字符串序列的表头str为一个标准的c+字符串,row代表了字符串出现的行数;操作结果:将str插入到键盘字符串序列中,不需要排序;若KSL为空表头,则创建一个字符串序列;否则插在字符串序列尾部;getKSLength (KSList KSL);初始条件:KSL为键盘字符串序列的表头;操

6、作结果:获取以KSL为表头的键盘字符串的长度printKeyString (KSList KSL);初始条件:KSL为键盘字符串序列的表头;操作结果:打印以KSL为表头的键盘字符串中的所有字符串;readKey (KSList & KSL);初始条件:KSL为文本字符串序列的表头;操作结果:从键盘中读取字符串序列,并将其保留在以KSL为表头的字符串序列中;clearKeyString (KSList & KSL);初始条件:KSL为文本字符串序列的表头;操作结果:以KSL为表头的文本字符串序列被清空;ADT KeyString2、模块设计:1) 主程序模块:主函数设计如下int main (

7、) 登陆界面和使用提示;构建文本字符串序列;构建键盘字符串序列;构建模式匹配排除符集合;字符串模式匹配,统计单词;结束一轮工作,提示是否继续操作;2) 文本字符串模块-构建文本字符串序列;3) 键盘字符串模块-实现键盘字符串数据类型;4) 模式匹配模块-实现文本字符串和键盘字符串的匹配统计;5) 登陆界面模块-提示用户程序使用方法3、各模块间的调用关系: 四、详细设计1、主程序用到的宏定义:#define MAX_WORD_LENGTH 1000/最大字符串长度#define MAX_MODELEXCEPTION_LENGTH 50#define 100/文件名长度2、存储结构设/*从文件读取

8、的字符串集合*/typedef struct string name;/字符串名称int row;/字符串所在的行 * next;/邻接字符串,*FSList;/*从键盘读取的字符串集合*/typedef struct KeyStringstring name;/字符串名称int * rows;/字符串所在行向量int count;/字符串出现的次数KeyString * next;/邻接字符串KeyString,*KSList;/*匹配文本字符串和键盘字符串的模式匹配排除符集合*/typedef char * Model;3、主要算法设计:/*在文件字符串集合中插入新的字符串*/int in

9、sert(FSList & FSL,string str,int row)if(!FSL)/如果是空表,则创建集合create(FSL);FSList sp ,tp;sp = tp = FSL;while(sp = sp -next)tp = sp;FSList s = new ;/插在既有的集合中if(!s)coutname = str;s-row = row;s-next = NULL;tp-next = s;/顺序插入return 1;/*从文件中读取串*/int read & FSL)char url;/指向文件路径的const指针coutEnter the read:;gets(ur

10、l);while(url0 = 0)/保证文件名不为空coutThe files name can not be null!endl;gets(url);ifstream fs = ifstream(url);/打开文件读取字符串if(!fs)cout wrong!n;return 0;int rowLine = 1;string s;while(fs.peek()!=EOF)/遇到文件尾符,结束读取getline(fs,s,n);/依行读取sinsert(FSL,s,rowLine+);/将获取的字符串插入文件字符串集合return 1;/*统计模式匹配排除字符*/int getModelE

11、xception(Model & model)model = new charMAX_MODELEXCEPTION_LENGTH;/集合model能统计除了默认匹配字符外的所有客户指定的排除字符char match;coutmatch;cin.ignore();/避免其他方法的流操作带来负面影响int i = 0;while(match = y)if(!i)coutBegin to receive:;if(cin.peek()=n)if(!i)coutNo character receivedendl;coutEnd receivingendl;break;cin.get(modeli+);/

12、默认的模式匹配排除符modeli = ;modeli+1 = ,;modeli+2 = .;modeli+3 = ;modeli+4 = ;modeli+5 = ;modeli+6 = *;modeli+7 = #;modeli+8 = !;modeli+9 = $;modeli+10 = %;modeli+11 = ;modeli+12 = &;modeli+13 = (;modeli+14 = );modeli+15 = -;modeli+16 = +;modeli+17 = _;modeli+18 = |;modeli+19 = ;modeli+20 = ;modeli+21 = ;modeli+22 = ;modeli+23 = ;modeli+24 = :;modeli+25 = ;modeli+26 = ;modeli+28 = ?;modeli+29 = /;modeli+30 = ;modeli+31 = t;modeli+32 = 0;/串尾标志return 1;/*模式匹配方法*/bool modelMatch(string s,Model model,int pos)fo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号