1、电子词典java课程设计英汉电子词典一、需求分析二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并迅速和人们的日常生活结合在一起。计算机技术的发展和进步也使电子语言词典的诞生成为可能。我们日常的学习生活中,常会遇到这样的问题:在工作时或在网上冲浪,或者电子邮箱中收到一封外国朋友发的英文-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 AdWinextendJae meets Actio
6、nistn 自定义一个添加窗口类,用于添加新的单词及其解释 (4) DeWin exds JFae imlements ActionLsten 自定义一个删除窗口类,用于删除词库中所存在的单词及其解释 (5) ModiyWin extendrme imlntsAtionListeer 自定义一个修改窗口类,用于修改词库中所存在的单词及其解释 (6) clsHpameextnds JFrame 自定义一个帮助窗口类,用不可编辑的文本域的窗体对该词典的功能做简要的说明 、界面设计思想创建窗体,设计菜单。定义菜单条Jen mfle(文件)、mei(编辑)、hlp(帮助),菜单子项JeuIte ed(
7、英汉词典)、cdc(汉英词典)、bakdt(备份词库)、quit(退出)、ddit(添加词汇)、di(修改词汇)、deedi(删除词汇)、help(帮助)、bu(关于)。通过add( )方法将菜单子项添加到菜单中,并注册监听者。定义一个文件对话框,并为之增加适配器。自定义一个面板,实现UI元素的布局。4、方法定义说明 ()定义方法tinPrormed(),内用i语句实现按钮监听:publicvoidactoPerfmed(Atinven e) (2)定义方法Litrd(),实现查询功能public voidListwrd()thrw SQxeptio (3)定义方法删除(),实现删除功能ubl
8、 void 删除() hros SQLEcption (4)定义方法添加(),实现添加功能publvod 添加() throws SQLExcetin(5)定义方法修改(),实现修改功能public oid修改()tws Sceptio 5、数据库说明Ja数据库连接(D)由一组用Jva 编程语言编写的类和接口组成。JDBC为工具数据库开发人员提供了一个标准的 AI,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本系统采用的是ccess数据库的连接方式,Acce数据库使用ODBC直连 方式如下:加载驱动程序:ass
9、.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)-完成写个数据源名(随意)-选择-找到你的cces文件-确定,接
10、下来再进行你的操作。三、详细设计 本系统是通过对类对象的引用,以及函数的调用实现类之间的连接的。创建窗体,GUI(标签,文本框,按钮),用ad( )方法加入容器,进而进行布局,用addActioListeer()方法为按钮或者菜单条按钮注册事件监听者,通过监听者方法调用(事件源,处理代码)对按钮触发。1、添加功能的实现: pblic vd 添加() thros Lcptio Stri cme,enae; try cas.forNme(sun.jdbc.odbc.JdbOdDier); catc(ClassotFondEepti e) Cn DreManger.getConnetin(jb:od
11、bc: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,此词汇已存在!,警告, JOpinPne.WANNG_MESSAGE); brea;
12、 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.rName(sun.jb.odbc.Jdbc
13、Odbrer); 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=+删除单词_文本条.eext().trm()+St
14、rin 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 SQLExcetion Strigcne,am; r ass.orName(sunjbc.odb.JdbOdbcDriver); at(ClassN
15、otFoundEcepioe) 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=+修改英语单词_文本条.ge
16、Txt().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(Acton
17、Evn) 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(nglishngis
19、hdb); fis = nll; (rue); r f =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) /关于 finalS
20、ringAouMsg= A Electrical Dictinary n n +n appiato writen to how of h funcio of dctionarn n+JAVA课程设计 杨汝洁nn opright (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 SLxcept
21、on / Strig cam,ename; tr 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(S
22、ELECT * FOM表); wile( .next()) me = 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(S
23、ELECT FROM表1WHERE 解释 LIKE %+eshtext.etTe()+%); 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()英汉词典:在文本框中输入要查询的英文单词,单击“查询”,英文单词对应的中文解释及其词性便会出现在文件对话框中,如图4所示:图.3如果所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”,如图4.4所示;如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,如图4.所示: 图4.4 图4()汉英词典:在在文本框中输入要查询的汉语意思,单击“查询”,对应的英文单词便会出现在文件对话框中,如图4.6所示:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1