1、 课程设计报告 计算机科学与技术学院 课程名称 数据结构 设计题目 文学研究助手 班 级 计算机 1101 班 课程设计任务书课程设计任务书 题目题目: : 文学研究助手 初始条件:初始条件: 文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试 写一个实现这一目标的文字统计系统,称为“文学研究助手” 。 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统 计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出 现次数和出现位置所在行的行号,格式自行设计。 测试用例见题集 p116。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技
2、术要求,以及说明 书撰写等具体要求) 课程设计报告按学校规定格式用 A4 纸打印(书写) ,并应包含如下内容: 1、 问题描述 简述题目要解决的问题是什么。 2、 设计 存储结构设计、主要算法设计(用类 C 语言或用框图描述) 、测试用 例设计; 3、 调试报告 调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。 4、 经验和体会(包括对算法改进的设想) 5、 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数 据,则运行结果要包含这些测试数据和运行输出, 6、 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩 均为 0 分。 时间安排:时间安排: 1、第 17
3、 周(6 月 17 日至 6 月 21 日)完成。 2、6 月 21 日 14:00 到计算中心检查程序、交课程设计报告、源程序(CD 盘) 。 指导教师签名:指导教师签名: 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日 文学研究助手文学研究助手 一、问题描述:一、问题描述: 文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写 一个实现这一目标的文字统计系统,称为“文学研究助手” 。 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计 工作必须在程序的一次运行之后就全部完成。 程序的输出结果是每个词的出现次 数和出现位
4、置所在行的行号,格式自行设计。 二、需求分析:二、需求分析: 1、文本串非空且以文件形式存放,统计匹配的词集非空。文件名和词集均由用 户从键盘输入; 2、“单词”定义:由字母构成的字符序列,中间不含空格字符且区分大小写; 3、待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置若干 空格字符; 4、在计算机终端输出的结果是:单词,出现的次数,出现的位置所在行的行号, 同一行出现两次的只输出一个行号; 5、测试数据 以你的 C 源程序模拟英文小说,C 语言保留字集作为待统计的词汇集: if else for while return void int char typedef str
5、uct define sizeof delete include 三三概要设计概要设计 1、存储结构设计、存储结构设计 #define SIZE 20 typedef FILE *PFILE; typedef char StringSIZE; typedef struct /单词类型 String data; /单词串 int len; /单词的长度 WordType; typedef struct WordNode / /单词结点类型 WordType data; WordNode *next; WordNode,*PWordNode; typedef struct RowLink /表示文
6、本每一行的链表 WordNode *head,*tail; RowLink,*RLink; typedef struct RowNumNode /行号结点类型 int elem;/行号 RowNumNode *next; RowNumNode,*RowNumLink; typedef struct SearchWordNode /待搜索的单词结点类型 WordType data; /待搜索单词 int count; /待搜索单词出现的次数 RowNumLink RNhead,RNtail; /存放文本中出现待搜索单词行号的链表 SearchWordNode *next; SearchWordNode,*SWLin