JAVA电子英汉词典课程设计报告

上传人:仙*** 文档编号:105365989 上传时间:2022-06-11 格式:DOC 页数:30 大小:153.50KB
收藏 版权申诉 举报 下载
JAVA电子英汉词典课程设计报告_第1页
第1页 / 共30页
JAVA电子英汉词典课程设计报告_第2页
第2页 / 共30页
JAVA电子英汉词典课程设计报告_第3页
第3页 / 共30页
资源描述:

《JAVA电子英汉词典课程设计报告》由会员分享,可在线阅读,更多相关《JAVA电子英汉词典课程设计报告(30页珍藏版)》请在装配图网上搜索。

1、-课 程 设 计 报 告 课程设计名称 Java程序设计 专 业 班 级 学 号 姓 名 指导教师 成 绩 年月日. z.-目录一、设计任务与要求11.1 设计任务与要求11.2 选题目的与意义1二、需求分析22.1 用户需求分析22.2 开发环境分析3三、系统设计43.1 系统总体设计43.2 功能模块设计43.3 类的设计53.4 数据库设计7四、程序实现94.1 程序流程图94.2 关键算法与技术实现114.3 类与数据构造实现20五、测试运行205.1 系统测试方案205.2 运行结果分析21六、设计体会25. z.-一、设计任务与要求1.1 设计任务与要求通过本课程设计实践,到达以下

2、目的:(1)培养学生严谨务实的工作态度,并在教师的指导下,提高分析问题和解决问题的能力,促进理论联系实际学风养成。(2)稳固和加深对面向对象程序设计的根本概念、根本理论和实现技术的理解。(3)掌握Java开发的主要环境与工具,掌握面向对象的常用控件的使用方法。(4)初步掌握面向对象系统分析与设计的根本方法和步骤,并能针对简单的实际应用问题进展初步地分析和设计。(5)掌握Java编程语言,并针对具体应用问题进展编程实现。(6)通过撰写课程设计论文,锻炼学生科技论文写作能力。电子英汉词典功能要求:能够编辑词典库中的信息,能够实现英译汉,汉译英要考虑一词多义。该系统主要用于实现英汉互译的功能,先选择

3、是英译汉还是汉译英然后再查询框中查询,该系统会自动弹出匹配信息1.2 选题目的与意义我选择电子英汉互译词典这一课题的目的在于稳固所学JAVA语言编辑根本功,掌握Jdk,Editplus,Eclipse,Jcreator等开发工具的运用,拓宽常用类库的应用。Java语言是当今流行的网络编程语言,它具有面向对象,跨平台,分布应用等特点,它贴近自然的语言,而且有利于软件的维护和继承。我们通过该教学环节与手段,把所学课程及相关知识加以融会贯穿,全面掌握JAVA语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的根底。二、需求分析2.1 用户需求分析用户需求分析:英汉词典作为一个常用的学

4、习工具,是我们经常要使用的。该系统能完成一个简单的电子词的功能。该系统主要用于实现英汉互译的功能,系统拥有自己的数据库。英译汉功能:我们可以先选择让系统进展英译汉功能,然后在查找框中输入想要查询的英文单词,系统将自动在数据库中查找匹配记录并给出相对应的汉语意思。汉译英功能:我们可以在系统中选择汉译英功能,然后在查找框中输入想要查询的汉语意思,系统将自动在数据库中查找匹配记录并给出相对应的英文单词。备份词库功能:我们可以将现有的词库做一份备份文件存入另一空间,以备文件丧失时使用。词汇的添加功能:用户可以添加词库没有的单词及其解释。添加成功后该单词将在次库保存,以便下次查询。词汇的修改功能;用户可

5、以实现对词库中已有单词及其解释的修改。修改后的结果将保存在词库中。词汇的删除功能;用户可自行删除词库中已有的单词,同时次单词的解释也将被一同删除。其他功能:此外,系统还具有帮助和关于等功能,用来辅助用户更方便简洁的使用电子词典。电子英汉词典 文件编辑其他英汉词典汉英词典备份词库退出系统添加词汇修改词汇删除词汇 帮助 关于2.2 开发环境分析系统需求分析:本系统是一个采用Microsoft Access作为数据库,用JAVA作为开发工具的英汉电子词典,有英汉词典、汉英词典和备份词库。它不仅可实现英译汉、汉译英的根本翻译功能,还可以让用户根据自己的需要添加、修改、删除词库,形成自己的词库。1硬件环

6、境Cpu: Intel (R) Core(TM)2 Duo Cpu p74502.13GHz存:2G 硬盘空间:250G2软件环境32位*P操作系统。JDK和Jcreator软件环境。三、系统设计3.1 系统总体设计电子英汉词典系统包括三个大方面:文件,编辑,其他。文件菜单中包括英译汉,汉译英备份词库。这也是电子词典的最主要功能。编辑菜单中包括添加词汇,修改词汇,删除词汇功能。其他菜单中包括帮助和关于。系统总体设计图如下:英汉电子词典文件编辑英汉词典汉英词典退出备份词库添加词汇删除词汇修改词汇其它帮助关于程序共有五个子函数和一个主函数。1search是查找函数,用户通过系统提示输入要查找的单词

7、,只要单词库中含有此单词便能找到相应的中文或英文解释,这个查找函数使用的是从头到尾的线性查找法,虽然查找效率在数据很大时候是无法容忍的,但因为这里涉及的数据量很小,使用线性查找对系统性能上没有很大影响。2add是增加函数,用户可以通过此函数来增加单词库单词的数量3modify是修改函数,程序提示用户输入要修改的单词,使用线性查找的方法找到相应的单词。如果找到,则提示输入新的单词及其解释。4delete是删除函数,程序提示用户输入要删除的单词,使用线性查找的方法找到相应的单词,如果找到,提示用户确认删除,在得到确认后即删除这个单词的记录。5主程序通过无限循环来接收输入的命令,并且根据命令调用相应

8、的函数处理。3.2 功能模块设计1英译汉功能模块说明:可以实现对英文单词的查询功能。用户文本框中输入要查询的英文单词。假设该单词存在于词库中,则会在文件对话框中显示其词性及中文翻译;假设该单词没有存在于词库中,则会弹出警告,说明查无此词。2汉译英功能模块说明:可以实现对中文单词的查询功能。用户文本框中输入要查询的中文单词。假设该单词存在于词库中,则会在文件对话框中显示其一个或多个对应的英文单词;假设该单词没有存在于词库中,则会弹出警告,说明查无此词。3备份词库功能模块说明:可以实现对现有词库的备份,可将当前词库存入用户所设置的任意位置。4添加词汇功能模块说明:可以实现对词库的添加。用户可自行输

9、入所添加的单词及其解释,假设添加的是词库中没有的单词,系统在添加成功后提示添加成功。假设添加的是词库中已有的单词,系统会弹出警告,说明此词汇已存在。5修改词汇功能模块:可以实现对词库中已有单词的修改。用户可自行修改词库中的单词及其解释。假设输入的单词不存在于词库中,系统会弹出警告,说明不存在此单词。6删除词汇功能模块:可以删除词库中已有的单词。用户可自行删除词库中已有的单词,再删除此单词的同时,其解释也会随之被删除,如输入的单词不存在于词库中,系统用会弹出警告,说明不存在此单词。7其他功能模块:在其他中有帮助和关于两项。帮助中是有关于词典的功能说明,关于中可显示版本信息。3.3 类的设计主要类

10、设计:1. Loading类Loading类主要是要实现登陆界面和按钮监视器执行动作的事件,和数据库的连接。方法功能Loading()安排登陆界面布局LianJie()连接数据库Cha*un()执行登陆按钮的动作事件DengLiPan()判断文本框是否为空2. Register类Register类主要是实现注册界面和按钮监视器执行动作的事件,和数据库的连接。方法功能Register()安排注册界面布局LianJie()连接数据库Cha*un()执行确定按钮的动作事件DengLiPan()判断文本框是否为空3. Kellu类Kellu类为窗口主界面类,包括菜单栏,工具栏,显示栏,添加监视器执行动

11、作的事件。方法功能Kehu()安排界面布局,设置菜单项和工具按钮action Performed执行按钮的动作事件valueChanged()下拉列表的监听事件4. Cha*un类Cha*un类细腻那两个构造方法,分别是实现英汉,汉英查询功能。方法功能JingQunEnglishCha()英译汉的查询JingQunChineseCha()汉译英的查询5Add类 Add类实现单词的添加功能方法功能Add()设置“添加窗口界面AddCha()实现和数据库的连接6. Update类Update类,功能通过单击主窗口界面的更新按钮弹出更新小窗口,输入更新的单词,对相应的解释进展更新。方法功能Add()

12、设置“添加窗口界面AddCha()实现和数据库的连接7. delect类delect类,功能通过单击主窗口界面的删除按钮弹出删除小窗口,输入删除的单词进展删除。方法功能delect()设置“删除窗口界面delectcha()实现和数据库的连接8. help类hele类,功能通过单击主窗口界面的帮助菜单下的帮助选项又弹出帮助窗口,通过网页显示单词的想过说明,通过单击页面上的超来显示另一网页。方法 功能Help()设置帮助窗口界面Hyperlinkupdate()显示新的URL资源9. Guanyu类 Guanyu类功能通过单击主窗口界面的帮助菜单下的关于弹出关于窗口,显示词典的使用说明。 方法

13、功能Guanyu()设置关于窗口界面界面设计思想创立窗体,设计菜单。定义菜单条JMenu mfile文件、medit编辑、mhelp帮助,菜单子项JMenuItem edic英汉词典、cdic汉英词典、back_data备份词库、quit退出、addedit添加词汇、modedi修改词汇、deledit删除词汇、hhelp帮助、about关于。通过add( )方法将菜单子项添加到菜单中,并注册监听者。定义一个文件对话框filedialog_save,并为之增加适配器。自定义一个面板,实现GUI元素的布局。3.4 数据库设计Java数据库连接JDBC由一组用 Java 编程语言编写的类和接口组成

14、。JDBC为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全一样,所以开发环境的变化会带来一定的配置变化。本系统采用的是Access数据库的连接方式。英译汉词汇表字段名字段类型长度备注yingwudancichar30可为空yinbiaochar10可为空ci*ingchar10可为空jieshichar50可为空各功能模块E-R图如下:1文件模块子E-R图文件模块中主要目的就是要完成英汉互译功能。其中包括英译汉功能模块,汉译英模块功能,备份词库模块功能 文件英译汉汉译英备份词库退出2编辑模块子E-R图编辑模块的主

15、要目的就是要进展单词的添加修改与删除功能。 编辑添加词汇修改词汇删除词汇3其他模块子E-R图其它模块的主要目的就是在用户遇到问题时,在其它中有“帮助与“关于两项,“帮助中有关于词典的功能说明,“关于可显示版本信息。 其它帮助关于四、程序实现4.1 程序流程图分析电子词典的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;然后划分出几个主要的信息管理功能,本系统的主要数据的工作流包括以下几个方面:英汉词典,汉英词典,备份词库,添加词汇,修改词汇,帮助。明确各功能之间的联系,绘制出数据流程图,如下列图所示:开场显示菜单输入选项输入单词输入词性输入音标输入中文

16、输入显示信息输入删除的单词判断循环体查找判断显示无法找到显示删除成功显示查询选项输入英文单词输入中文意思判断判断循环体循环体计算判断显示无法找到显示查找信息判断显示无法找到显示查找信息完毕计算4.2 关键算法与技术实现菜单窗口class DataWindow e*tends JFrame implements ActionListenertryfis = new FileInputStream(fromfile);int bytesRead; /定义变量来存储输入流中读取出来的文件byte buf = newbyte4*1024; /4K bufferFile tofile = new Fil

17、e(filedialog_save.getDirectory(),filedialog_save.getFile();FileOutputStream fos = new FileOutputStream(tofile);while(bytesRead = fis.read(buf)!=-1)fos.write(buf,0,bytesRead);fos.flush();fos.close();fis.close();catch(IOE*ception e2) publicvoid Listwords() throws SQLE*ception /实现查询功能Stringame,ename;tr

18、yClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundE*ception e)/建立桥接器Connection E*1Con = DriverManager.getConnection(jdbc:odbc:03,);Statement E*1Stmt = E*1Con.createStatement();if(label.getTe*t().equals(输入要查询的英语单词:)ResultSet rs = E*1Stmt.e*ecuteQuery(SELECT * FROM 表1);while( rs.ne*t()en

19、ame = rs.getString(单词);ame = rs.getString(解释);if(ename.equals(englishte*t.getTe*t()chinesete*t.append(ame+n);publicclass Dicpublicstaticvoid main(String args) JFrame.setDefaultLookAndFeelDecorated(true);DataWindow window = new DataWindow();window.validate();/AddWin add = new AddWin();publicvoid add(

20、)单词的添加publicclass AddWin e*tends JFrame implements ActionListener JTe*tField 添加汉语解释_文本条,添加英语单词_文本条; utton addbtn,cancelbtn; Connection Con=null; Statement Stmt=null;publicvoid actionPerformed(ActionEvent e) if(e.getSource()=addbtn) if(添加英语单词_文本条.getTe*t().equals()|添加汉语解释_文本条.getTe*t().equals() JOpti

21、onPane.showMessageDialog(this,添加的单词或解释不能为空!,警告, JOptionPane.WARNING_MESSAGE); / 判断输入框不能为空elsetry 添加(); catch(SQLE*ception ee) elseif(e.getSource()=cancelbtn) dispose(); while(boo=rs.ne*t()=true)ename=rs.getString(单词);ame=rs.getString(解释);if(ename.equals(添加英语单词_文本条.getTe*t()JOptionPane.showMessageDia

22、log(this,此词汇已存在!,警告,JOptionPane.WARNING_MESSAGE);break;if(boo=false)String s1=+添加英语单词_文本条.getTe*t().trim()+,s2=+添加汉语解释_文本条.getTe*t().trim()+; String temp=INSERT INTO 表1 VALUES (+s1+,+s2+);Stmt.e*ecuteUpdate(temp);JOptionPane.showMessageDialog(this,添加成功!,恭喜,JOptionPane.WARNING_MESSAGE);dispose();Con.

23、close(); 单词的删除class DelWin e*tends JFrame implements ActionListener JTe*tField 删除单词_文本条; utton delbtn,cancelbtn; Connection Con = null; Statement Stmt = null; public void actionPerformed(ActionEvent e) if(e.getSource()=delbtn) if(删除单词_文本条.getTe*t().equals() JOptionPane.showMessageDialog(this,删除的单词不能

24、为空!,警告, JOptionPane.WARNING_MESSAGE); / 判断输入框不能为空 else try 删除(); catch(SQLE*ception ee) else if(e.getSource()=cancelbtn) dispose(); while(boo=rs.ne*t()=true)ename=rs.getString(单词);ame=rs.getString(解释);if(ename.equals(删除单词_文本条.getTe*t()String s1=+删除单词_文本条.getTe*t().trim()+; String temp=DELETE FROM 表1

25、 WHERE 单词=+s1;Stmt.e*ecuteUpdate(temp);JOptionPane.showMessageDialog(this,成功删除记录!,恭喜,JOptionPane.WARNING_MESSAGE);dispose();break;单词的修改class ModifyWin e*tends JFrame implements ActionListenerJTe*tField 修改英语单词_文本条,修改汉语解释_文本条;utton modifybtn,cancelbtn;Connection Con=null;Statement Stmt=null;publicvoid

26、 actionPerformed(ActionEvent e)if(e.getSource()=modifybtn)if(修改英语单词_文本条.getTe*t().equals()|修改汉语解释_文本条.getTe*t().equals()JOptionPane.showMessageDialog(this,修改的单词或解释不能为空!,警告, JOptionPane.WARNING_MESSAGE);/ 判断输入框不能为空elsetry修改(); catch(SQLE*ception ee) elseif(e.getSource()=cancelbtn) dispose(); if(ename

27、.equals(修改英语单词_文本条.getTe*t()String s1=+修改英语单词_文本条.getTe*t().trim()+,s2=+修改汉语解释_文本条.getTe*t().trim()+;String temp=UPDATE 表1 SET 解释=+s2+ WHERE 单词 = +s1;Stmt.e*ecuteUpdate(temp);JOptionPane.showMessageDialog(this,记录修改成功!,恭喜,JOptionPane.WARNING_MESSAGE);dispose();break;帮助publicclass HelpFrame e*tends JF

28、rame public HelpFrame() super(Help);setBounds( 120, 50, 275, 260);HtmlPane html = new HtmlPane();setContentPane(html); publicstaticvoid main(String args) HelpFrame help=new HelpFrame();help.setVisible(true);System.out.println(Hello World!);class HtmlPane e*tends JScrollPane implements HyperlinkListe

29、ner JEditorPane html;publicvoid run() if (url = null) html.setCursor(cursor); Container parent = html.getParent(); parent.repaint(); else Document doc = html.getDocument();try html.setPage(url); catch (IOE*ception ioe) html.setDocument(doc); getToolkit().beep(); finally url = null; SwingUtilities.in

30、vokeLater(this); 4.3 类与数据构造实现本系统采用的是Access数据库的连接方式,Access数据库使用ODBC直连 方式如下:加载驱动程序:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) ; 与数据库建立连接:String url=jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=+application.getRealPath(/Data/ReportDemo.mdb);Connection conn = DriverManager.getConnection(url,);创

31、立JDBC Statement对象:Statement stmtNew=conn.createStatement() ;注意:首先要配置数据源: 控制面版-管理工具-数据源-系统DSN-添加-选择Microsort Access Drive(*.mdb)-完成-写个数据源名(随意)-选择-找到你的access文件-确定,接下来再进展你的操作。五、测试运行5.1 系统测试方案1,电子词典功能测试:运行程序,弹出电子词典运行窗口。假设没有显示出来,则程序错误。2,电子词典查询功能测试:运行程序后,在单词框输入要查询的单词,单击查询按钮,假设显示出所查单词的意思,则程序运行成功。假设点击无反响,则程

32、序错误。3,电子词典添加功能测试:运行程序后,点击添加按钮,弹出添加运行窗口,假设没有弹出,则程序错误。假设成功在单词框输入要添加的单词,点击完成按钮,假设弹出成功窗口,则程序正确,反之则程序错误。4,电子词典修改功能测试:运行程序后,点击修改按钮,弹出修改运行窗口,假设没有弹出,则程序错误。假设成功在单词框输入要修改的单词,点击完成按钮,假设弹出成功窗口,则程序正确,反之则程序错误。5,电子词典删除功能测试:运行程序后,点击删除按钮,弹出删除运行窗口,假设没有弹出,则程序错误。假设成功在单词框输入要删除的单词,点击完成按钮,假设弹出成功窗口,则程序正确,反之则程序错误。5.2 运行结果分析1

33、此窗口为菜单窗口,用户可在此窗口选择应用的容。其中文件目录中包括:英汉词典,汉英词典,备份文库。编辑目录中包括:单词的添加,修改删除。 如图5.2.1 图5.2.1菜单界面运行图图5.2.2单词查询图 图5.2.3单词查询运行图 图5.2.4 单词添加运行图 图5.2.5单词修改运行图 图5.2.6单词删除运行图 图5.2.7帮助菜单运行图六、设计体会此次课程设计是关于电子英汉词典系统设计,在这个过程中,我遇到了很多问题,也更加了解JAVA。Java与C+语言非常相近,但Java比C+简单,它抛弃了C+中的一些不是绝对必要的功能,如头文件、预处理文件、指针、构造、运算符重载、多重继承以及自动强

34、迫同型。 Java实现了自动的垃圾收集,简化了存管理的工作。这使程序设计更加简便,同时减少了出错的可能。Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。除此之外,此次课程设计还让我对JAVA的独立性有了更多的认识。Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系构造无关的字节码构造的文件格式。Java为了做到构造中立,除生成机器无关的字节码外,还制定了完

35、全统一的语言文本,如Java的根本数据类型不会随目标机的变化而变化,一个整型总是32位,一个长整型总是64位。为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。在课程设计的最后,我的大局部时间花在了与数据库的连接上,也学到了更多的知识。JDBC是执行SQL语句的Java API。JDBC本身是一个产品的商标名,但它也可被看作为Java Database Connecivity(Java数据库连接)。它由一组用Java语言编写的类与接口组成。JDBC已成为一种供工具/数据库开

36、发者使用的标准API,用户可以用纯Java API来编写数据库应用。使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。换言之,用户不必为访问Sybase数据库写一个程序,又为访问Oracle数据库写另一个程序。你可以用JDBC API写出唯一的程序,它能够将SQL语句发送到相应的任何一种数据库。Java与JDBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。通过对JAVA数据库编程的更多的了解,我也获得了一些调试的经历:通过层层的捕获异常来得知错误的发生。在课程设计中出现的问题对我而言是学习与复习的好时机,是它们使我学会了如何自学、如何查阅资料等,让我学习了很多,也让我对旧的知识点有了更深的理解。在这不断的调试、改动的过程中也让我明白了养成良好编程习惯的益处。由于编写程序时容易出错,因此我采用了单个模块单个功能进展调试与测试的方法。在不断的出错与改错的过程中,我学到了很多关于编程和调试程序的知识,使自己的知识体系得到了一定的完善,也使我对平时所学有了很多的了解与更深的理解。面对一系列的问题,失败了尝试,再失败再尝试通过这次的实践,我发现了自己在编程及对软件开发相关知识的缺乏,在以后的学习实践中,我要取长补短,敢想善问,不断加强自身在专业知识方面的能力,为以后的学习与工作打下坚实的根底。指导教师签字: 年 月 日. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!