ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:391.66KB ,
资源ID:2374497      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2374497.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统课程设计 快译通词典.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统课程设计 快译通词典.docx

1、嵌入式系统课程设计 快译通词典软 件 学 院课程设计报告书课程名称 嵌入式系统课程设计 设计题目 快译通词典 专业班级 嵌入式软件09-2班 学 号 0920010201 姓 名 车文通 指导教师 王建立 年 月1 设计时间2012年6月11日-2012年6月15日2 设计目的通过本次课程设计,全面掌握、熟悉C语言的程序设计与技巧,进一步提高编写程序,分析程序及上机操作,调试程序的能力,提高动手操作能力及分析问题和解决问题的能力3设计任务一 单词查询给定文本文件“dict.txt”,该文件用于存储词库。词库为“英-汉”,“汉-英”双语词典,每个单词和其解释的格式固定,如下所示:#单词Trans

2、:解释1解释2解释n每个新单词由“#”开头,解释之间使用“”隔开。一个词可能有多个解释,解释均存储在一行里,行首固定以“Trans:”开头。下面是一个典型的例子:#abyssinianTrans:a. 阿比西尼亚的n. 阿比西尼亚人;依索比亚人该词有两个解释,一个是“a. 阿比西尼亚的”;另一个是“n. 阿比西尼亚人;依索比亚人”。要求编写程序将词库文件读取到内存中,接受用户输入的单词,在字典中查找单词,并且将解释输出到屏幕上。用户可以反复输入,直到用户输入“exit”字典程序退出。程序执行格式如下所示:./app text-text表示使用文本词库进行单词查找。二、建立索引,并且使用索引进行

3、单词查询要求建立二进制索引,索引格式如下图所示。将文本文件“dict.txt”文件转换为上图所示索引文件“dict.dat”,使用索引文件实现单词查找。程序执行格式如下:./app index-index表示使用文本词库dict.txt建立二进制索引词库dict.dat./app bin-bin表示使用二进制索引词库进行单词查找。三、支持用户自添加新词用户添加的新词存放在指定文件中。如果待查单词在词库中找不到,则使用用户提供的词库。用户的词库使用文本形式保存,便于用户修改。程序执行格式图1-1所示。./app 词库选择选项 -f 用户词库文件名词库选项为-test1,或者-test2,表示使用

4、文本词库或者二进制索引词库。-f为固定参数,用来指定用户词库文件名。4设计内容4.1需求分析4.1.1功能需求实现用户输入要查询的单词,在字典中查找单词,并且将解释输出到屏幕上。1将英文单词翻译为中文意思。 2用户利用索引进行单词查询。 3用户可以自行添加新词。4.1.2性能需求(1)用户输入的单词中仅含有英文文字的分隔符空格、逗号、句号和换行符,除些之外再不含其它文字。(2)用户输入单词时,必须以以下格式有效:“#单词”。解释中需遵循以下原则:解释之间使用“”隔开。一个词可能有多个解释,解释均存储在一行里,行首固定以“Trans:”开头。并且表明词性。例:#单词 Trans:a.解释1n.解

5、释2.解释n(3)用户输入时,判断单词是否相同时不区分大小写。例如ABC、Abc、Abc、aBC、abc都是同一个单词。(4)若单词库中,无所查询的单词时,进行提示“查无此词”。(5)尽量考虑缩短程序的运行时间,提高程序运行速度。4.2总体设计概要设计(1)单词查询(2)建立索引文件(3)在索引文件中查询(4)添加新词具体系统流程图如图 4.2.11-1图4.2.1 系统流程图1-1模块功能需求:要求编写程序将词库文件读取到内存中,接受用户输入的单词,在字典中查找单词,并且将解释输出到屏幕上。用户可以反复输入,直到用户输入“exit”字典程序退出。4.2.1抽象数据类型typedef stru

6、ct word char wd20; char trans300; struct word *next;word,*wordp;功能流程图:如图4.2.2所示图4.2.2 单词查询模块流程图描述:开始,将文本加载到链表中,输入所查单词,判断是否输入exit,若是则结束,若否则判断输入单词格式是否正确,若格式不正确,则返回等待继续输入,若格式正确在链表中查询,查询之后判断在链表中否找到所输入的单词,若没找到,输出无此词,并返回等待输入,若找到,则输出单词意思,然后结束。4.3详细设计4.3.1抽象数据类型char wd20char trans3004.3.2主要函数模块4.3.2.1:查找单词模

7、块函数原型:int cmpWord(char *, char * )函数返回值类型:int函数参数了类型:cha*函数功能:到链表中查找单词 判断找到的单词与用户输入单词是否一致4.3.2.2得到单词模块函数原型:char * getWord(wordp wp,char word)函数参数:struct word,char word函数返回值类型:char* 单词的地址函数作用:返回找到的单词的地址4.3.2.3输出模块函数原型:int putInfo(struct word *)函数参数:struct word *函数返回值类型:int函数作用:输出单词所对应的 单词解释1.详细模块设计(1

8、)具体在链表中查询模块功能需求:在链表中查找要查询的单词。功能流程图:如图4.3.1图4.3.1 在链表中查找单词(2)将文件加载到内存模块功能需求:从文件“dict.txt”读取单词到内存,内存存储结构采用链表结构。图4.3.2将文件加载到内存模块初始化装载内存模块函数原型:struct word * Initdic(void);函数参数:空函数返回值类型:结构体 word 指针类型函数功能:将文件dict.txt以链表的形式存入内存 每个链表是个结构体存放单词和解释4.4测试与分析4.4.1测试图1和2为模块测试图3.4.5为整体测试模块测试图如图1和图2所示图1图2图3正确测试图4错误测

9、试图5退出测试4.4.2分析内容包括:系统实现了单词的查询功能但是初始化链表的时候没有分类存储,如果文件dict.txt的单词量很大的话 会导致系统耗时很久,如果能分类存储就更好了 时间会缩短很多。4.5 附录#include #include #include #include headfile.h#define LEN sizeof (word)wdp Initialize(void) FILE *fp; int n=0; int i=0; char ch,cl; wdp head; wdp p1,p2; word wrd; p1=p2=(wdp)malloc(LEN); if(fp=fo

10、pen(dict.txt,r)=NULL) printf(CANNOT OPEN THE FILE THAT YOU NEEDn); exit(1); for(i=0;i+) ch=fgetc(fp); cl=fgetc(fp); if(ch!=n) p1-wdi=cl; else break; for(i=1;i+) ch=fgetc(fp); if(ch!=n) p1-trans0=T; p1-transi=ch; else break; head=NULL; do n+; if (n=1)head=p1; else p2-next=p1; p2=p1; p1=(wdp)malloc(LE

11、N); for(i=0;i+) ch=fgetc(fp); if(ch!=n) p1-wdi=ch; else break; for(i=0;i+) ch=fgetc(fp); if(ch!=n) p1-transi=ch; else break; while(ch=fgetc(fp)!=EOF); p2-next=NULL; fclose(fp); return (head); char * getOut(wdp wp,char word) int i=0; char * q; for(i=0;iwdi; q=word; return (q);int cmpChar(char * dst,c

12、har * src) if(strcmp(src,dst)=0)return 1; else return 0;int outPut(wdp wp) int i=0; printf(your word: ); for(i=0;iwdi); printf(n); for(i=0;itransi); return 0;头文件代码typedef struct word char wd30; char trans300; struct word *next;word,*wdp;#ifndef HEADFILE_H_#define HEADFILE_H_struct word * Initialize(

13、void);char * getOut(struct word *,char );int cmpChar(char *, char * );int outPut(struct word *);#endifMain函数代码#include#include#include#include headfile.hint main(int argc,char* argv) word * wp1; word * wp2; char putin30; char getout30; int i=0; wp1=Initialize(); wp2=wp1; printf(*); printf(nENLISH-CH

14、INESE DICTIONARY); printf(n*n); printf( 二班一组作品);a: printf(nnplease input word :); scanf(%s,putin); if(putin0=e)&(putin1=x)&(putin2=i)&(putin3=t) exit(1); while(!cmpChar(getOut(wp1,getout),putin) if(wp1-next!=NULL) wp1=wp1-next; else break; if(wp1-next!=NULL) outPut(wp1); else printf(n CONNOT FOUND Y

15、OUR WORD); wp1=wp2; goto a; return 0;5 总结与展望通过这一周的课程设计,是我更加了解C语言linux的一些知识,增强了我分析问题的能力和综合知识的运用,分析问题和解决问题,锻炼实际解决问题的重要环节。在这一周的时间里让我学会并复习了很多知识,提高自己的动手的能力,而且在本次时间中让我深深体会到了团队的重要性,做嵌入式设计,个人是不肯能完成的,需要整个团队的共同努力,团队很好的合作是我们这次课程设计成功完成的最重要的基础。虽然在本次课程设计中遇到了许多问题,例如流程图的错误,代码的运行测试等等,但是在老师和同学们的帮助下都得到了解决.,最终完成整个设计。参考文献1浩强,C程序设计,第3版,出版社:清华大学出版社,20052赵苍明,穆煜,Linux开发教程,北京:人民邮电出版社,20093严蔚敏,吴伟民,数据结构(C语言)M,北京:北京清华大学出版社,2010成绩评定成绩 教师签字

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2