电子词典_java课程设计.doc

上传人:牧羊曲112 文档编号:4267640 上传时间:2023-04-12 格式:DOC 页数:19 大小:171KB
返回 下载 相关 举报
电子词典_java课程设计.doc_第1页
第1页 / 共19页
电子词典_java课程设计.doc_第2页
第2页 / 共19页
电子词典_java课程设计.doc_第3页
第3页 / 共19页
电子词典_java课程设计.doc_第4页
第4页 / 共19页
电子词典_java课程设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《电子词典_java课程设计.doc》由会员分享,可在线阅读,更多相关《电子词典_java课程设计.doc(19页珍藏版)》请在三一办公上搜索。

1、英汉电子词典一、需求分析二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并迅速和人们的日常生活结合在一起。计算机技术的发展和进步也使电子语言词典的诞生成为可能。我们日常的学习生活中,常会遇到这样的问题:在工作时或在网上冲浪,或者电子邮箱中收到一封外国朋友发的英文-mil,遇到某些陌生的单词,可又疲于去翻查厚重的英文字典时,电脑中所安装的英汉电子词典便成为了最为方便、快捷的选择。电子词典是一种多功能的词典类工具软件,它可以即时翻译,快速、准确、详细地查阅英文单词,或将中文单词进行英文翻译,使自己的知识面拓展得更宽、更广。尽管电子词典只有十来年的历史,但它却已经发展壮大,成为词典家

2、族中具有旺盛生命力的一员。虽然目前它尚不足以取代传统词典,但在英语学习和教学中,由于它实用、快捷、准确、经济等特点,已经成为传统英汉词典的有力竞争者,并对传统的词典提出了挑战。本系统是一个采用Mcrosot Acces作为数据库,用JAVA作为开发工具的英汉电子词典,内有英汉词典、汉英词典和备份词库。它不仅可实现英译汉、汉译英的基本翻译功能,还可以让用户根据自己的需要添加、修改、删除词库,形成自己的词库。其功能结构图如图1所示:英语小词典文件编辑英汉词典汉英词典退出备份词库添加词汇删除词汇修改词汇 图1.1功能结构图功能模块说明:1、英译汉功能模块说明:可以实现对英文单词对中文单词的查询功能。

3、用户文本框中输入要查询的英语单词。若该单词存在于词库中,则会在文件对话框中显示其词性及中文翻译;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。2、汉译英功能模块说明:可以实现对中文单词对英文单词的查询功能。用户可在文本框中输入要查询的中文单词。若该单词存在于词库中,则会在文件对话框中显示一个或多个对应的英文;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。、备份词库功能模块说明:可以实现对现有词库的备份,可将当前词库存入用

4、户所设置的任一位位置。、添加词汇功能模块说明:可以实现对词库的添加。用户可自行输入所添加的单词及其解释,若添加的是词库中没有的单词,系统在添加成功后有提示“添加成功”;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。、修改词汇功能模块说明:可以实现对词库中已有单词的修改。用户可自行修改词库中的单词的解释,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。6、删除词汇功能模块说明:可以删除词库中已有的单词。用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。7、其它功

5、能模块说明:在帮助中有“帮助”与“关于”两项,“帮助”中有关于词典的功能说明,“关于”可显示版本信息。二、概要设计1、英语词典设计要求分析词典的主要功能,设计实现如下功能:(1)实现程序UI图形界面;(2)实现与词典数据库的访问;(3)实现文件的输入、输出;(4)实现鼠标或键盘事件响应模块。2、自定义类说明(1) publc clas ic 自定义主体mn函数的类,用来调用各种类() as DtaWndow xtend JFram impmes ActionLstener 自定义一个主窗体类,用来显示整个窗体。继承的父类: JFra类实现的接口: ctionLitnr (3) clss AdW

6、inextendJae meets Actionistn 自定义一个添加窗口类,用于添加新的单词及其解释 (4) DeWin exds JFae imlements ActionLsten 自定义一个删除窗口类,用于删除词库中所存在的单词及其解释 (5) ModiyWin extendrme imlntsAtionListeer 自定义一个修改窗口类,用于修改词库中所存在的单词及其解释 (6) clsHpameextnds JFrame 自定义一个帮助窗口类,用不可编辑的文本域的窗体对该词典的功能做简要的说明 、界面设计思想创建窗体,设计菜单。定义菜单条Jen mfle(文件)、mei(编辑)

7、、hlp(帮助),菜单子项JeuIte ed(英汉词典)、cdc(汉英词典)、bakdt(备份词库)、quit(退出)、ddit(添加词汇)、di(修改词汇)、deedi(删除词汇)、help(帮助)、bu(关于)。通过add( )方法将菜单子项添加到菜单中,并注册监听者。定义一个文件对话框,并为之增加适配器。自定义一个面板,实现UI元素的布局。4、方法定义说明 ()定义方法tinPrormed(),内用i语句实现按钮监听:publicvoidactoPerfmed(Atinven e) (2)定义方法Litrd(),实现查询功能public voidListwrd()thrw SQxepti

8、o (3)定义方法删除(),实现删除功能ubl void 删除() hros SQLEcption (4)定义方法添加(),实现添加功能publvod 添加() throws SQLExcetin(5)定义方法修改(),实现修改功能public oid修改()tws Sceptio 5、数据库说明Ja数据库连接(D)由一组用Jva 编程语言编写的类和接口组成。JDBC为工具数据库开发人员提供了一个标准的 AI,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本系统采用的是ccess数据库的连接方式,Acce数据库使

9、用ODBC直连 方式如下:加载驱动程序:ass.forNam(un.jodbcdcOdbcriver) ; 与数据库建立连接:Stin r=dc:odbc:iver=MicoSoftces Drver(.mb);DB=+ppicatin.getRalPat(Dat/eptDmb);Conecto conn = DrveMag.etConnecion(rl,,);创建JDBCStateent对象:StatemestmNew=cnncreateStaeent() ;注意:首先要配置数据源: 控制面版管理工具-数据源-系统DSN-添加-选择irsotAcce Drive(*.mb)-完成写个数据源名

10、(随意)-选择-找到你的cces文件-确定,接下来再进行你的操作。三、 详细设计 本系统是通过对类对象的引用,以及函数的调用实现类之间的连接的。创建窗体,GUI(标签,文本框,按钮),用ad( )方法加入容器,进而进行布局,用addActioListeer()方法为按钮或者菜单条按钮注册事件监听者,通过监听者方法调用(事件源,处理代码)对按钮触发。1、添加功能的实现: pblic vd 添加() thros Lcptio Stri cme,enae; try cas.forNme(sun.jdbc.odbc.JdbOdDier); catc(ClassotFondEepti e) Cn Dre

11、Manger.getConnetin(jb:odbc:Drivr=MicroSoftAccss Driver (.mdb);BQ=eglhnglish.db,,); Stmt=oncreateSatt(); RsultSe Stmt.executeQury(SELE F 表1); olean bo=flse; while(bo=.ext())=tru) ename=r.ttring(单词); names.getString(解释); f(ename.quals(添加英语单词_文本条getext()) OptinPanehowMessaeDilog(this,此词汇已存在!,警告, JOpinP

12、ne.WANNG_MESSAGE); brea; if(boo=lse) rin s1+添加英语单词文本条.getext().trim()+,2=+添加汉语解释文本条.gtTt().trim()+; Stringtem=INSRT INTO 表1 LUS(+s1+,+s2+); Smt.xecuteUpate(emp);OptionP.shsgeDialog(his,添加成功!,恭喜, JionPaneWARNI_MESSAGE);ispoe(); Conclse();2、删除功能的实现: pubicvoi 删除() trws SQLExepti Stincame,eame; try Cls.

13、rName(sun.jb.odbc.JdbcOdbrer); t(ClasNotFundExceptione)Con = Divera.geonnction(jd:obc:Drve=MroSofAce Dve (*.d);DQeglishenglishdb,); StCo.atetatm(); Resultet rs=mteecuteue(ELECT * FROM表1);booan bo=false; while((oo=snext())=tue)ee=rsgeSti(单词);name=rsgetStri(解释);if(enm.equl(删除单词文本条.geext())Sti s=+删除单词_

14、文本条.eext().trm()+Strin tep=DELETE FROM表1 HER 单词s1;mt.ecuteUdte(te);OptonPane.showMeaeDiag(his,成功删除记录!,恭喜,OtionPanWNIG_MSAGE);dispo();brek; Conclose();f(bofals) Opionae.shoesaealo(hi,不存在此单词!,警告, OptionPneANING_MESAE); 3、修改功能的实现:pubic oi修改() thws SQLExcetionStrigcne,am;r ass.orName(sunjbc.odb.JdbOdbcD

15、river); at(ClassNotFoundEcepioe)Con rerang.getConetion(jdbc:obc:DrieiroSft Accessrve (*.mdb);DB=englishegish.mb,);Stmt=Con.createStatement();ResultSet rs=Stmt.xecutury(SELET* FROM 表1);boolean bo=false;wie(boo=()=tre)ename=rs.getStrn(单词);came=r.etString(解释);if(namquals(修改英语单词_文本条.getT() Strins1=+修改英语

16、单词_文本条.geTxt().trim()+,s2+修改汉语解释_文本条.gtext().trim()+; rg tempUA 表 SET 解释+s2+ WEE 单词 s1; Stmt.eectUdat(temp); JOtioPane.shoMesagealg(ths,记录修改成功!,恭喜, Optine.WRNNG_ESSAE); dipse(); reak; Co.cls();if(bo=alse)JOtionPe.hoMesaDilog(this,不存在此单词!,警告,JOptionan.WARNING_MESSAGE);、实现按钮监听的实现:publvdactionPerformed

17、(ActonEvn)if(e.getSoure()=1|.etSource()nlistext)cintt.setTx();if(enlihte.getTet().equals())OtionPane.howesageDialog(this,查询对象不能为空!,警告,JtionPane.WARNING_MESAGE); ls tyLstords(); catch(SQExcetin ) else if(.getSore()=b2|e.tource()=addedit) AdWin dd newAWin(); /AddWn是添加窗口的类els f(.getSource()=b3|e.gtorce

18、()=moddt)odiyWin odinew ModifWin();/ofyWin是修改窗口的类else i(getSoe()=b4|e.etSource()=dlet)DelWdel nw DelWin();/DeW是删除窗口的类se if(e.etource()=dic) /英汉abelseTex(输入要查询的英语单词:);1.tVs();ls f(e.getSource()=cdic) 汉英laeletText(输入要查询的汉语意思:);b1.setVisble(tre);elseif(egtoure()=back_dta) /备份= nw Fil(nglishngishdb);fis

19、 = nll;(rue);rf =ew (frmfile);it btesRead; /定义变量来存储输入流中读取出来的文件byte f = new yte41024; / buffr ew (),(); fos = new (tfle);whe(bytsRead = i.red(buf))!=-1) fo.rit(bu,0,yesRad); fs.lus();fs.lose();ilos();cac(IEeption e2) else f(.getSouce()=uit)/退出Sytem.eit(); le i(e.Source()=au) /关于finalSringAouMsg= A El

20、ectrical Dictinary n n+n appiato writen to how of h funcio of dctionarn n+JAVA课程设计 杨汝洁nnopright (c) 208 by dh.AlrightsRsrved.;JOpionn.howMesgeialog(opFrame,boutsg);ele f(e.gtSore()=hhl) /帮助Helrame hep =new HelpFrame();help.seisble(tr);、实现查询功能的实现puic void istords() hros SLxcepton / Strig cam,ename;tr

21、 Clssforae(ndbc.odbc.JdbOdbcDiver); cath(ClaNotoundEepton )Sring rljdc:odc:Englh;/建立桥接器onnion Ex1Cn = Diverager.etConectin (jdbc:obc:r=ioSoft Access Diver (.db);DBQ=glishnglish.mb,);Satemt Ex1Stm E1C.etSateen();if(label.tex().qals(输入要查询的英语单词:)RltSet r =E1Smt.exeuteQuer(SELECT * FOM表);wile( .next())m

22、e = rsgri(单词);cnae = s.etStrig(解释);if(ename.equas(englsht.getet()chesete.apd(cname+);Ex1on.cls(); /关闭数据库f(chnesext.etTex().equals()JptionPn.shwMessageDialog(hi,查无此单词!,警告,JOptonPane.WARNIG_MESSAGE);e (lael.getTxt().quals(输入要查询的汉语意思:)ResutSet rs=E1Stmt.eueQury(SELECT FROM表1WHERE 解释 LIKE %+eshtext.etTe

23、()+%);wie(rs.next()enme =rs.etStin(单词);nae=rgetSring(解释);chisetxt.append(enam+n);x1Con.cose(); /关闭数据库if(hnesete.getTxt().equals())Otionne.showMesageDialo(tis,查无此单词!,警告,pionPaneWARNN_MESSAG);四、软件测试经过编译、执行后可看到运行界面如图41所示图4.此时有三全菜单选择:文件、编辑、帮助1、文件菜单:它包含四个子菜单:英汉词典、汉英词典、备份词库及退出。打开该词典时默认进入的是英汉词典。如图.2所示:图4.2

24、()英汉词典:在文本框中输入要查询的英文单词,单击“查询”,英文单词对应的中文解释及其词性便会出现在文件对话框中,如图4所示:图.3如果所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”,如图4.4所示;如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,如图4.所示: 图4.4 图4()汉英词典:在在文本框中输入要查询的汉语意思,单击“查询”,对应的英文单词便会出现在文件对话框中,如图4.6所示:图.如果所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”;如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,演示与英汉词典类似。(

25、)点击备份词库时,会弹出保存文件对话框,此时可将词库拷贝到机算机里的任一位置。2、编辑菜单:它包含三个子菜单:添加词汇、修改词汇和删除词汇。如图4.7所示 图4.(1)添加词汇:用户可自行输入所添加的单词及其解释,如图4.8所示 图4.8 图.如果添加的是词库中没有的单词,系统在添加成功后有提示“添加成功”,如图4.9所示;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。(2)修改词汇:用户可自行修改词库中的单词的解释,如图4.10所示;如果输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。 图4. 图4.1(3)删除词汇:用户可自行删除词库中已有的单词,

26、在删除此单词的同时,其解释也会随之被删除,如图4.1所示。如果输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。、帮助菜单:它包含二个子菜单:帮助和关于。(1)帮助:显示有关于词典的功能说明。(2)关于:显示版本信息。 经测试,该系统各项功能均能使用,各个功能选项与设计所想相符。五、总结此次课程设计是由我一个人完成的,在这个过程中,我遇到了很多问题,也更加了解JV。Jav与+语言非常相近,但Java比C+简单,它抛弃了C+中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。 Ja实现了自动的垃圾收集,简化了内存管理的工作。这使程序

27、设计更加简便,同时减少了出错的可能。va提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。除此之外,此次课程设计还让我对J的独立性有了更多的认识。Java是一种网络语言,为使Java程序能在网络的任何地方运行,Jaa解释器生成与体系结构无关的字节码结构的文件格式。Java为了做到结构中立,除生成机器无关的字节码外,还制定了完全统一的语言文本,如Java的基本数据类型不会随目标机的变化而变化,一个整型总是

28、2位,一个长整型总是位。为了使ava的应用程序能不依赖于具体的系统,Jav语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Jva的平台上。jav.la:一般的语言包。其中包括用于字符串处理、多线程、异常处理和数字函数等的类,该包是实现Jva程序运行平台的基本包java.util: 实用工具包。其中包括哈希表、堆栈、时间和日期等jav.i:基于流模型的输入输出包。该包用统一的流模型实现了各种格式的输入/输出,包括文件系统、网络和设备的输入/输出等: 网络包。该包支持TCP/IP协议,其中提供了ock、UL和W的编程接口java.at: 抽象窗口

29、工具集。其中实现了可以跨平台的图形用户界面组件,包括窗口、菜单、滚动条和对话框等java.ppl: 支持applt程序设计的基本包在课程设计的最后,我的大部分时间花在了与数据库的连接上,也学到了更多的知识。JDB是执行QL语句的Jv A。JDC本身是一个产品的商标名,但它也可被看作为aa DtbaeConnecivit(Java数据库连接)。它由一组用Java语言编写的类与接口组成。JB已成为一种供工具/数据库开发者使用的标准API,用户可以用纯vPI来编写数据库应用。使用BC可以很容易地把SQ语句传送到任何关系型数据库中。换言之,用户不必为访问Sybe数据库写一个程序,又为访问Oracle数

30、据库写另一个程序。你可以用DBC API写出唯一的程序,它能够将SQL语句发送到相应的任何一种数据库。J与JBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。通过对JVA数据库编程的更多的了解,我也获得了一些调试的经验:通过层层的捕获异常来得知错误的发生。在课程设计中出现的问题对我而言是学习与复习的好机会,是它们使我学会了如何自学、如何查阅资料等,让我学习了很多,也让我对旧的知识点有了更深的理解。在这不断的调试、改动的过程中也让我明白了养成良好编程习惯的益处。由于编写程序时容易出错,因此我采用了单个模块单个功能进行调试与测试的方法。在不断的出错与改错的过程中,我学到了很多关于编程和调试程序的知识,使自己的知识体系得到了一定的完善,也使我对平时所学有了很多的了解与更深的理解。面对一系列的问题,失败了尝试,再失败再尝试通过这次的实践,我发现了自己在编程及对软件开发相关知识的不足,在以后的学习实践中,我要取长补短,敢想善问,不断加强自身在专业知识方面的能力,为以后的学习与工作打下坚实的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号