1、 课程设计课程设计报告书报告书 课程名称课程名称 嵌入式系统课程设计嵌入式系统课程设计 设计题目设计题目 快译通词典快译通词典 年年 月月 1 1 设计时间设计时间 20122012 年年 6 6 月月 1111 日日- -20122012 年年 6 6 月月 1515 日日 2 2 设计目的设计目的 通过本次课程设计,全面掌握、熟悉 C 语言的程序设计与技巧,进一步提高编写程序,分 析程序及上机操作,调试程序的能力,提高动手操作能力及分析问题和解决问题的能力 3 3 设计任务设计任务 一一 单词查询 给定文本文件“dict.txt” ,该文件用于存储词库。词库为“英-汉” , “汉-英”双语
2、 词典,每个单词和其解释的格式固定,如下所示: #单词 Trans:解释 1解释 2解释 n 每个新单词由“#”开头,解释之间使用“”隔开。一个词可能有多个解释,解释均 存储在一行里,行首固定以“Trans: ”开头。下面是一个典型的例子: #abyssinian Trans:a. 阿比西尼亚的n. 阿比西尼亚人;依索比亚人 该词有两个解释,一个是“a. 阿比西尼亚的” ;另一个是“n. 阿比西尼亚人;依索比 亚人” 。 要求编写程序将词库文件读取到内存中,接受用户输入的单词,在字典中查找单词, 并且将解释输出到屏幕上。用户可以反复输入,直到用户输入“exit”字典程序退出。 程序执行格式如下
3、所示: ./app text -text 表示使用文本词库进行单词查找。 二、二、建立索引,并且使用索引进行单词查询建立索引,并且使用索引进行单词查询 要求建立二进制索引,索引格式如下图所示。将文本文件“dict.txt”文件转换为上图所示 索引文件“dict.dat” ,使用索引文件实现单词查找。程序执行格式如下: ./app index -index表示使用文本词库 dict.txt 建立二进制索引词库 dict.dat ./app bin -bin表示使用二进制索引词库进行单词查找。 三、支持用户自添加新词三、支持用户自添加新词 用户添加的新词存放在指定文件中。如果待查单词在词库中找不到
4、,则使用用户提供的词 库。用户的词库使用文本形式保存,便于用户修改。程序执行格式图 1-1 所示。 ./app 词库选择选项 -f 用户词库文件名 词库选项为-test1,或者-test2,表示使用文本词库或者二进制索引词库。-f 为固定参数, 用来指定用户词库文件名。 4 4 设计内容设计内容 4.1 需求分析 4.1.1 功能需求 实现用户输入要查询的单词,在字典中查找单词,并且将解释输出到屏幕上。 1将英文单词翻译为中文意思。 2用户利用索引进行单词查询。 3用户可以自行添加新词。 4.1.2 性能需求 (1)用户输入的单词中仅含有英文文字的分隔符空格、逗号、句号和换行符,除些 之外再不
5、含其它文字。 (2)用户输入单词时,必须以以下格式有效: “#单词” 。解释中需遵循以下原则:解 释之间使用 “” 隔开。 一个词可能有多个解释, 解释均存储在一行里, 行首固定以 “Trans: ” 开头。并且表明词性。例:#单词 Trans:a.解释 1n.解释 2解释 n (3)用户输入时,判断单词是否相同时不区分大小写。例如 ABC、Abc、Abc、aBC、 abc都是同一个单词。 (4)若单词库中,无所查询的单词时,进行提示“查无此词” 。 (5)尽量考虑缩短程序的运行时间,提高程序运行速度。 4.2 总体设计 概要设计 (1)单词查询 (2)建立索引文件 (3)在索引文件中查询 (
6、4)添加新词 具体系统流程图如图 4.2.1 图 4.2.1 系统流程图 1-1 模块 功能需求:要求编写程序将词库文件读取到内存中,接受用户输入的单词,在字典中查找 单词,并且将解释输出到屏幕上。用户可以反复输入,直到用户输入“exit”字典程序退 出。 4.2.1 抽象数据类型 typedef struct word char wd20; char trans300; struct word *next; word,*wordp; 快译通词典 单词查询 添加新词 在索引文 件中查询 建立索引 文件 1-2 1-3 1-4 1-1 功能流程图:如图 4.2.2 所示 图 4.2.2 单词查询模块流程图 描述:开始,将文本加载到链表中,输入所查单词,判断是否输入 exit,若是则结束, 若否则判断输入单词格式是否正确,若格式不正确,则返回等待继续输入,若格式正确在 链表中查询,查询之后判断在链表中否找到所输入的单词,若没找到,输出无此