数据结构试验报告-文学研究助手
更新时间:2023-04-28 00:41:01 阅读量: 实用文档 文档下载
- 文学研究助手数据结构推荐度:
- 相关推荐
实验报告:文学研究助手
题目:编写一个统计特定单词在文本中出现的次数和位置的程序
一、需求分析
1.文本串非空并以文件的形式存放在根目录中,统计匹配的词非空。
文件名和需要匹配的词集均有用户从键盘输入;
2.单词都是由某种类型字符的序列组成,如字母字符序列(区分大
小写)、数值常数(整数或小数型实数)字符序列, 界符(分隔符(‘(’,‘)’,‘,’等)、运算符等(‘+’,‘-’,‘*’,‘/’等)可独立构成单词,中间不含空格并且区分大小写;
3.待统计的“单词”在文本串中不跨行出现,它或者从行首开始,
或者前置若干空格字符;
4.在计算机终端输出的结果是:单词,出现的次数,出现的位置所
在行的行号,若一个单词在同一行出现多次只输出一个行号;5.测试数据:本次实验中的文本文件是LiteratureAssitant.cpp;
待统计的词集为:
If char int else for return void
二、概要设计:
1. 定义“单词”类型:
ADT Aword{
数据对象:D={Si | Si ∈标准c字符串集合,i = 1,2,3,…….,n,n
1 / 1文档可自由编辑
≥ 0}
数据关系:R1={
NewWord(WordType *nw,Sequence cha)
初始条件:cha为字符序列;
操作结果:生成一个其值为给定字符序列的单词;
WordCmp(WordType wd1,WordType wd2)
初始条件:单词wd1和单词wd2已存在;
操作结果:若wd1
回1;
PrintWord(WordType wd)
初始条件:单词wd已存在;
操作结果:在计算机终端上显示单词wd;
}ADT AWord
2. 定义有序表类型:
ADT OrderList{
数据对象:D={Si | Si ∈AWord,i = 1,2,3,…….,n,n ≥ 0}
数据关系:R1={ 基本操作: InitList(OrderList *L) 1 / 1文档可自由编辑 操作结果:构造一个空的有序表; DestroyList(OrderList *L) 初始条件:有序表L已存在; 操作结果:销毁L的结构,并释放所占空间; LocateElem(OrderList L,ElemType e,LinkType *q) 初始条件:有序表L已存在; 操作结果:若有序表L中存在元素e,则q指示L中第一个值为e的元素的位置, 并返回函数值FRUE;否则q指示第一个大于e的元素的前驱的位置, 并返回函数值FALSE; InsertAfter(OrderList *L,LinkType q,LinkType s) 初始条件:有序表L已存在,q指示L中一个元素; 操作结果:在有序表L中q指示的元素之后插入元素s; ListCompare(OrderList La,OrderList Lb,EqelemList *s) 初始条件:有序表La和Lb已存在; 操作结果:以s返回其中相同元素; }ADT OrderList 3. 定义单词文本串文件类型如下: ADT TextString{ 数据对象:D={Si | Si ∈标准c字符集,i = 1,2,3,…….,n,n ≥0}; 1 / 1文档可自由编辑 数据关系:D中字符被“换行符”分割成若干行,每一行的字符间满足下列关系: R1={ Initialization(FILE **fr) 初始条件:文件fr已存在; 操作结果:打开文件fr,设定文件指针指向文件中第一行第一个字符; GetAWord(FILE *f,Sequence *st) 初始条件:文件f已打开; 操作结果:从文件指针所指字符起提取一个“单词st”;ExtractWord(FILE *f,OrderList *ta) 初始条件:文件f已打开,文件指针指向文件f中某一行的第一个字符; 操作结果:提取该行中所有单词,并构成单词的有序表ta,本操作结束时,文件指针 指向文件f中下一行的第一个字符; match(FILE *f,OrderList pat,ResultType rs) 初始条件:文件f已打开,文件指针指向文件f中第一个字符;pat为包含所有待查 询单词的有序表; 操作结果:rs为查询结果; 1 / 1文档可自由编辑 }ADT TextString 4. 本程序包含四个模块: 1)主程序模块:主函数设计如下 int main ( ) { 输入信息和文件初始化; 生成测试目标词汇表; 统计文件中每个待测单词出现的次数和位置; 输出测试结果; }; 2)单词单元模块-------实现单词类型; 3)有序表单元模块--------实现有序表类型; 4)单词文本串文件单元模块------实现文本串文件类型; 5、存储结构及存储映像为: 6、函数的调用关系为: main 1 / 1文档可自由编辑 1 / 1文档可自由编辑 Initialization InputWord ListEmpty OutResult match DestroyList InitList MakeNode NewWord WordCmp MakeNode CopyWord ExtractWord ListCompare NewLength Felon GetAWord MakeNode InsertAfter 三、 详细设计: // LiteratureAssitant.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdafx.h" // LiteratureAssitant.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include "stdio.h" #include "string.h" #include #include
正在阅读:
数据结构试验报告-文学研究助手04-28
毛概06-04
我心目中的毛泽东论文12-10
通联支付LOGO矢量图02-09
作文是表情达意的交际工具07-28
图形学c语言sdf08-27
毕业设计 - 图文04-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数据结构
- 助手
- 试验
- 报告
- 研究
- 文学
- 2017年广东技术师范学院J220概率论与数理统计(同等学力加试)复试实战预测五套卷
- 新版湖南师范大学生物与医药专硕考研经验考研参考书考研真题
- (励志名言)毛泽东经典励志名言60句
- 河北科力特电缆有限公司新型铝合金导体材料及铝合金电缆、特种电缆生产项目可行性研究报
- 传染病的预防主题班会会议记录
- 2017年山西师范大学教育科学研究院333教育综合之中国教育史考研导师圈点必考题汇编
- 一个比较全的屋面瓦施工组织设计
- 生猪养殖项场管理制度
- 2017年天津师范大学电子与通信工程学院C语言程序设计复试实战预测五套卷
- Sybase复制服务器配置指南windows
- 植物生理学第七版潘瑞炽编课后习题答案之欧阳音创编
- 2018年华南师范大学政治与行政学院333教育综合之中国教育史考研冲刺狂背五套题
- 2021马拉松口号征集有哪些
- 山东大学科研项目间接费用管理办法
- 2017年安徽大学文学院615语言文学基础之古代汉语考研仿真模拟题
- SM-3监控平台技术说明书
- 语文版五年级语文下册半期试卷突破训练
- 四川省遂宁市高一上期期末考试历史(含答案)
- 对高中英语语法教学的思考
- 七年级英语上册《Topic 3 We want to go to the zoo》同步练习 仁爱版