版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
英汉电子词典一、需求分析二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并迅速和人们的平常生活结合在一起。计算机技术的发展和进步也使电子语言词典的诞生成为也许。我们平常的学习生活中,常会碰到这样的问题:在工作时或在网上冲浪,或者电子邮箱中收到一封外国朋友发的英文E-mail,碰到某些陌生的单词,可又疲于去翻查厚重的英文字典时,电脑中所安装的英汉电子词典便成为了最为方便、快捷的选择。电子词典是一种多功能的词典类工具软件,它可以即时翻译,快速、准确、具体地查阅英文单词,或将中文单词进行英文翻译,使自己的知识面拓展得更宽、更广。尽管电子词典只有十来年的历史,但它却已经发展壮大,成为词典家族中具有旺盛生命力的一员。虽然目前它尚局限性以取代传统词典,但在英语学习和教学中,由于它实用、快捷、准确、经济等特点,已经成为传统英汉词典的有力竞争者,并对传统的词典提出了挑战。本系统是一个采用MicrosoftAccess作为数据库,用JAVA作为开发工具的英汉电子词典,内有英汉词典、汉英词典和备份词库。它不仅可实现英译汉、汉译英的基本翻译功能,还可以让用户根据自己的需要添加、修改、删除词库,形成自己的词库。其功能结构图如图1.1所示:英语小词典文献英语小词典文献编辑英汉词典汉英词典退出备份词库添加词汇删除词汇修改词汇图1.1功能结构图功能模块说明:1、英译汉功能模块说明:可以实现对英文单词对中文单词的查询功能。用户文本框中输入要查询的英语单词。若该单词存在于词库中,则会在文献对话框中显示其词性及中文翻译;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。2、汉译英功能模块说明:可以实现对中文单词对英文单词的查询功能。用户可在文本框中输入要查询的中文单词。若该单词存在于词库中,则会在文献对话框中显示一个或多个相应的英文;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。3、备份词库功能模块说明:可以实现对现有词库的备份,可将当前词库存入用户所设立的任一位位置。4、添加词汇功能模块说明:可以实现对词库的添加。用户可自行输入所添加的单词及其解释,若添加的是词库中没有的单词,系统在添加成功后有提醒“添加成功”;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。5、修改词汇功能模块说明:可以实现对词库中已有单词的修改。用户可自行修改词库中的单词的解释,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。6、删除词汇功能模块说明:可以删除词库中已有的单词。用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。7、其它功能模块说明:在帮助中有“帮助”与“关于”两项,“帮助”中有关于词典的功能说明,“关于”可显示版本信息。二、概要设计1、英语词典设计规定分析词典的重要功能,设计实现如下功能:(1)实现程序GUI图形界面;(2)实现与词典数据库的访问;(3)实现文献的输入、输出;(4)实现鼠标或键盘事件响应模块。2、自定义类说明(1)publicclassDic{}自定义主体main函数的类,用来调用各种类(2)classDataWindowextendsJFrameimplementsActionListener{}自定义一个主窗体类,用来显示整个窗体。继承的父类:JFrame类实现的接口:ActionListener(3)classAddWinextendsJFrameimplementsActionListener{}自定义一个添加窗口类,用于添加新的单词及其解释(4)DelWinextendsJFrameimplementsActionListener{}自定义一个删除窗口类,用于删除词库中所存在的单词及其解释(5)ModifyWinextendsJFrameimplementsActionListener{}自定义一个修改窗口类,用于修改词库中所存在的单词及其解释(6)classHelpFrameextendsJFrame{}自定义一个帮助窗口类,用不可编辑的文本域的窗体对该词典的功能做简要的说明3、界面设计思想创建窗体,设计菜单。定义菜单条JMenumfile(文献)、medit(编辑)、mhelp(帮助),菜单子项JMenuItemedic(英汉词典)、cdic(汉英词典)、back_data(备份词库)、quit(退出)、addedit(添加词汇)、modedi(修改词汇)、deledit(删除词汇)、hhelp(帮助)、about(关于)。通过add()方法将菜单子项添加到菜单中,并注册监听者。定义一个文献对话框filedialog_save,并为之增长适配器。自定义一个面板,实现GUI元素的布局。4、方法定义说明(1)定义方法actionPerformed(),内用if语句实现按钮监听:publicvoidactionPerformed(ActionEvente)(2)定义方法Listwords(),实现查询功能publicvoidListwords()throwsSQLException(3)定义方法删除(),实现删除功能publicvoid删除()throwsSQLException(4)定义方法添加(),实现添加功能publicvoid添加()throwsSQLException(5)定义方法修改(),实现修改功能publicvoid修改()throwsSQLException5、数据库说明Java数据库连接(JDBC)由一组用Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,使他们可以用纯JavaAPI来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本系统采用的是Access数据库的连接方式,Access数据库使用ODBC直连方式如下:加载驱动程序:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");与数据库建立连接:Stringurl="jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");Connectionconn=DriverManager.getConnection(url,"","");创建JDBCStatement对象:StatementstmtNew=conn.createStatement();注意:一方面要配置数据源:控制面版->管理工具->数据源->系统DSN->添加->选择MicrosortAccessDrive(*.mdb)->完毕->写个数据源名(随意)->选择->找到你的access文献->拟定,接下来再进行你的操作。具体设计本系统是通过对类对象的引用,以及函数的调用实现类之间的连接的。创建窗体,GUI(标签,文本框,按钮),用add()方法加入容器,进而进行布局,用addActionListener()方法为按钮或者菜单条按钮注册事件监听者,通过监听者方法调用(事件源,解决代码)对按钮触发。1、添加功能的实现:publicvoid添加()throwsSQLException{ Stringcname,ename; try{class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){} Con=DriverManager.getConnection("jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=english\\english.mdb","",""); Stmt=Con.createStatement(); ResultSetrs=Stmt.executeQuery("SELECT*FROM表1"); booleanboo=false; while((boo=rs.next())==true) { ename=rs.getString("单词"); cname=rs.getString("解释"); if(ename.equals(添加英语单词_文本条.getText())) { JOptionPane.showMessageDialog(this,"此词汇已存在!","警告", JOptionPane.WARNING_MESSAGE); break; } } if(boo==false) { Strings1="'"+添加英语单词_文本条.getText().trim()+"'",s2="'"+添加汉语解释_文本条.getText().trim()+"'"; Stringtemp="INSERTINTO表1VALUES("+s1+","+s2+")"; Stmt.executeUpdate(temp); JOptionPane.showMessageDialog(this,"添加成功!","恭喜", JOptionPane.WARNING_MESSAGE); dispose(); } Con.close();}2、删除功能的实现:publicvoid删除()throwsSQLException{Stringcname,ename;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){} Con=DriverManager.getConnection("jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=english\\english.mdb","",""); Stmt=Con.createStatement(); ResultSetrs=Stmt.executeQuery("SELECT*FROM表1"); booleanboo=false; while((boo=rs.next())==true) { ename=rs.getString("单词"); cname=rs.getString("解释"); if(ename.equals(删除单词_文本条.getText())) {Strings1="'"+删除单词_文本条.getText().trim()+"'"Stringtemp="DELETEFROM表1WHERE单词="+s1;Stmt.executeUpdate(temp);JOptionPane.showMessageDialog(this,"成功删除记录!","恭喜",JOptionPane.WARNING_MESSAGE);dispose();break; } } Con.close();if(boo==false) { JOptionPane.showMessageDialog(this,"不存在此单词!","警告", JOptionPane.WARNING_MESSAGE); } }3、修改功能的实现: publicvoid修改()throwsSQLException{ Stringcname,ename; try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){} Con=DriverManager.getConnection("jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=english\\english.mdb","",""); Stmt=Con.createStatement(); ResultSetrs=Stmt.executeQuery("SELECT*FROM表1"); booleanboo=false; while((boo=rs.next())==true) { ename=rs.getString("单词"); cname=rs.getString("解释"); if(ename.equals(修改英语单词_文本条.getText())) { Strings1="'"+修改英语单词_文本条.getText().trim()+"'",s2="'"+修改汉语解释_文本条.getText().trim()+"'"; Stringtemp="UPDATE表1SET解释="+s2+"WHERE单词="+s1; Stmt.executeUpdate(temp); JOptionPane.showMessageDialog(this,"记录修改成功!","恭喜", JOptionPane.WARNING_MESSAGE); dispose(); break; } } Con.close(); if(boo==false) { JOptionPane.showMessageDialog(this,"不存在此单词!","警告", JOptionPane.WARNING_MESSAGE); }}4、实现按钮监听的实现: publicvoidactionPerformed(ActionEvente){ if(e.getSource()==b1||e.getSource()==englishtext) { chinesetext.setText(""); if(englishtext.getText().equals("")) { JOptionPane.showMessageDialog(this,"查询对象不能为空!","警告", JOptionPane.WARNING_MESSAGE); } else{ try{ Listwords(); } catch(SQLExceptionee){} } } elseif(e.getSource()==b2||e.getSource()==addedit) {AddWinadd=newAddWin();}//AddWin是添加窗口的类 elseif(e.getSource()==b3||e.getSource()==modedit) {ModifyWinmodi=newModifyWin();}//ModifyWin是修改窗口的类 elseif(e.getSource()==b4||e.getSource()==deledit) {DelWindel=newDelWin();}//DelWin是删除窗口的类 elseif(e.getSource()==edic)//英汉 { label.setText("输入要查询的英语单词:"); b1.setVisible(true); } elseif(e.getSource()==cdic)//汉英 { label.setText("输入要查询的汉语意思:"); b1.setVisible(true); } elseif(e.getSource()==back_data)//备份 { Filefromfile=newFile("english\\english.mdb"); FileInputStreamfis=null; filedialog_save.setVisible(true); try{ fis=newFileInputStream(fromfile); intbytesRead;//定义变量来存储输入流中读取出来的文献 byte[]buf=newbyte[4*1024];//4Kbuffer Filetofile=newFile(filedialog_save.getDirectory(),filedialog_save.getFile()); FileOutputStreamfos=newFileOutputStream(tofile); while((bytesRead=fis.read(buf))!=-1) {fos.write(buf,0,bytesRead);} fos.flush();fos.close();fis.close(); }catch(IOExceptione2){} } elseif(e.getSource()==quit)//退出 {System.exit(0); } elseif(e.getSource()==about)//关于 { finalStringAboutMsg="AElectricalDictionary\n\n" +"Anapplicationwrittentoshowoffthefunctionofdictionary.\n\n" +"JAVA课程设计杨汝洁\n\n" +"Copyright(c)2023byEdith.AllrightsReserved."; JOptionPane.showMessageDialog(topFrame,AboutMsg); } elseif(e.getSource()==hhelp)//帮助 { HelpFramehelp=newHelpFrame(); help.setVisible(true); } }5、实现查询功能的实现publicvoidListwords()throwsSQLException// { Stringcname,ename; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){} Stringurl="jdbc:odbc:English"; //建立桥接器 ConnectionEx1Con=DriverManager.getConnection ("jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=english\\english.mdb","",""); StatementEx1Stmt=Ex1Con.createStatement(); if(label.getText().equals("输入要查询的英语单词:")) { ResultSetrs=Ex1Stmt.executeQuery("SELECT*FROM表1"); while(rs.next()) { ename=rs.getString("单词"); cname=rs.getString("解释"); if(ename.equals(englishtext.getText())) { chinesetext.append(cname+'\n'); } } Ex1Con.close();//关闭数据库 if(chinesetext.getText().equals("")) { JOptionPane.showMessageDialog(this,"查无此单词!","警告", JOptionPane.WARNING_MESSAGE); } } elseif(label.getText().equals("输入要查询的汉语意思:")) { ResultSetrs=Ex1Stmt.executeQuery("SELECT*FROM表1WHERE解释LIKE'%"+englishtext.getText()+"%'"); while(rs.next()) { ename=rs.getString("单词"); cname=rs.getString("解释"); chinesetext.append(ename+'\n'); } Ex1Con.close();//关闭数据库 if(chinesetext.getText().equals("")) { JOptionPane.showMessageDialog(this,"查无此单词!","警告", JOptionPane.WARNING_MESSAGE); }}}四、软件测试通过编译、执行后可看到运营界面如图4.1所示图4.1此时有三全菜单选择:文献、编辑、帮助1、文献菜单:它包含四个子菜单:英汉词典、汉英词典、备份词库及退出。打开该词典时默认进入的是英汉词典。如图4.2所示:图4.2(1)英汉词典:在文本框中输入要查询的英文单词,单击“查询”,英文单词相应的中文解释及其词性便会出现在文献对话框中,如图4.3所示:图4.3假如所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”,如图4.4所示;假如是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,如图4.5所示:图4.4图4.5(2)汉英词典:在在文本框中输入要查询的汉语意思,单击“查询”,相应的英文单词便会出现在文献对话框中,如图4.6所示:图4.6假如所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”;假如是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,演示与英汉词典类似。(3)点击备份词库时,会弹出保存文献对话框,此时可将词库拷贝到机算机里的任一位置。2、编辑菜单:它包含三个子菜单:添加词汇、修改词汇和删除词汇。如图4.7所示图4.7(1)添加词汇:用户可自行输入所添加的单词及其解释,如图4.8所示图4.8图4.9假如添加的是词库中没有的单词,系统在添加成功后有提醒“添加成功”,如图4.9所示;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。(2)修改词汇:用户可自行修改词库中的单词的解释,如图4.10所示;假如输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。图4.10图4.11(3)删除词汇:用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,如图4.11所示。假如输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。3、帮助菜单:它包含二个子菜单:帮助和关于。(1)帮助:显示有关于词典的功能说明。(2)关于:显示版本信息。经测试,该系统各项功能均能使用,各个功能选项与设计所想相符。五、总结本次课程设计是由我一个人完毕的,在这个过程中,我碰到了很多问题,也更加了解JAVA。Java与C++语言非常相近,但Java比C++简朴,它抛弃了C++中的一些不是绝对必要的功能,如头文献、预解决文献、指针、结构、运算符重载、多重继承以及自动逼迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。这使程序设计更加简便,同时减少了犯错的也许。Java提供了简朴的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。除此之外,本次课程设计还让我对JAVA的独立性有了更多的结识。Java是一种网络语言,为使Java程序能在网络的任何地方运营,Java解释器生成与体系结构无关的字节码结构的文献格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常见修辞方法及其作用
- 护理不良事件预防工具与模型
- 护理带教中的学生自我管理指导
- 脚手架搭设落地式夜间安全专项方案
- 桩基施工协调组织进度方案
- 感谢大家护理课件学习进入尾声
- 预应力筋锚固质量控制方案
- 《基于SDN的校园网络流量控制与拥塞管理研究》教学研究课题报告
- 2026年清远市清城区网格员招聘笔试参考试题及答案解析
- 2026年苏州市金阊区街道办人员招聘笔试参考题库及答案解析
- 2026年湖北孝感市高三二模高考数学模拟试卷(含答案详解)
- 2026届广东省江门市高三一模英语试卷
- 2025年辅警面试考试试题库及答案
- 2025-2030工程机械行业市场发展分析及发展前景与投资机会研究报告
- TSG 08-2026 特种设备使用管理规则
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- GJB3243A-2021电子元器件表面安装要求
- 兽药GSP考试试卷及答案
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 那年那兔那些事儿
- 纪念卢沟桥事变七七事变弘扬抗战精神PPT模板
评论
0/150
提交评论