电子词典_java课设_含可运行程序_第1页
电子词典_java课设_含可运行程序_第2页
电子词典_java课设_含可运行程序_第3页
电子词典_java课设_含可运行程序_第4页
电子词典_java课设_含可运行程序_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书 NO.21电子词典1.课程设计的目的本课程设计利用Java编程开发语言,设计一个电子词典,该词典主要支持用户查询需求,实现英汉互译功能,支持用户自定义词库,能够使用户对词库进行操作,以便用户获得更多资料。通过设计这个小词典,将课堂所学应用于实际生活中,学会运用面向对象开发语言进行简单程序的设计,与此同时也加强了对Java Swing和Java Awt 包的使用和对Java相关知识的巩固。本课程设计也使用了MS Access数据库做数据持久化,不仅丰富了电子词典的内容,同时也加深了对数据库的相关知识的深入了解,这种跨学科的综合设计,锻炼了自己的编程和综合运用知识的能力,为以后的发

2、展打下了良好基础。2.设计方案论证2.1项目开发背景 近几年来外语学习已经变为一种潮流,越来越多的中小学生拥有自己的电子词典。现在的数字电子词典容量不断增大,已发展到可以自由扩充词库,或者从网上下载词库,对词典进行自动更新。电子词典的功能的需求也越来越强大,作为一个计算机专业的学生,希望根据英语学习者的需求来设计一个实用电子词典,以帮助英语学习者们更方便快捷的查询单词、记忆单词、有效自由的对词库进行管理和操作。与此同时也提高一下自己对Java语言的运用和对程序的开发设计能力。2.2系统需求分析用户在使用电子词典的时候,有可能会使用到电子词典的查询功能,也有可能使用到对词库的更新功能。通过对用户

3、的需求分析,初步确定该系统的基本需求情况。(1)用户在打开软件的时候,应该呈现一个友好的查询界面,便于用户操作。(2)当用户需要查询的时候,软件将提供这个单词的所有信息。(3)可以自定义单词,使用户可以自动扩充单词库,方便以后使用,并具有针对性。2.2.1模块功能说明(1)汉译英功能模块说明:可以实现英文单词对中文词汇的查询功能。当用户输入一个单词,用户可以单击查询按钮,显示这个单词的中文解释,解释出现在文本区。(2)英译汉功能模块说明:实现将中文词汇翻译成英语。在查询栏中输入中文,点击查询,便出现它的英文解释。(3)词库的备份模块:此模块可将已有模块备份,保证数据的安全性。(4)词库的更新模

4、块:此模块有增、删、改等功能。可以根据自己需要,为词库添加相应的英文单词和汉语解释,或者对已有单词的词义进行补充、修改或删除。(5)帮助功能模块:此模块添加了一些使用该软件的方法,当用户在使用时遇到不清楚的问题时,可以点帮助文档,根据提示进行操作。2.2.2系统总体结构设计菜单栏文件编辑帮助汉英词典备份词库退出添加词汇修改词汇删除词汇关于文档英汉词典调用filedialog窗口调用word文档调用word文档调用类AddWin调用类ModifyWin调用类DelWin调用方法AboutP 图1系统功能框图2.2.3系统功能流程图开始加载驱动建立桥接器调用状态函数定义记录进行修改数据库操作下一条

5、记录是否存在取单词取解释执行修改操作关闭数据库boo=false发出警告结束NYYN图2修改功能函数流程图是否按取消按钮Y开始是否按添加按钮输入内容是否空调用添加( )方法捕获数据库异常发出警告退出操作结束YNNYN 图3添加功能流程图2.2.4详细设计(1) 系统中有6个类系统运行主类:Dic.java窗口主界面类:DataWindow添加单词类:AddWin.java修改单词类:ModifyWin.java删除单词类:DelWin.java使用帮助类:HelpFrame.java(2) 系统运行主类Dic的方法Main( ):程序入口,建立窗体类DataWindow的对象。(3) 窗口主界

6、面类DataWindow的方法 DataWindow( ):构造函数,安排界面布局,设置菜单项和工具按钮。 actionPerformed( ):执行按钮动作事件。 Listwords( );实现数据查询功能。(4) 添加单词类AddWin的方法 AddWin( ):构造函数,安排界面布局,设置监听按钮。 actionPerformed( ):执行按钮动作事件,调用添加( )方法。 添加( ):实现添加数据功能。(5) 修改单词类ModifyWin的方法ModifyWin( ):构造函数,安排界面布局,设置监听按钮。actionPerformed( ):执行按钮动作事件,调用修改( )方法。修

7、改( ):实现修改数据功能。(6) 删除单词类DelWin的方法 DelWin:构造函数,安排界面布局,设置监听按钮。 actionPerformed( ):执行按钮动作事件,调用删除( )方法。 删除( ):实现删除数据功能。2.3设计方法2.3.1开发环境 Java开发工具(Java development kit,JDK)是Sun公司所开发的一套Java程序开发工具软件,它是Sun公司的网站免费取得。它与JDK的参考文件同样是编辑Java程序的必备工具。在编写、编译和运行应用程序时用到eclipse。2.3.2功能模块设计 图4程序主界面(1) 窗口功能说明窗口共有3个主要部分:菜单栏、

8、工具条、显示栏。菜单栏:包括文件、编辑、帮助菜单。工具条:包括输入栏和查询、添加、修改、删除、发生按钮。显示栏:显示查询单词在词典中的所有解释。(2) 菜单说明 文件菜单:包括英汉词典、汉语词典、备份词库、退出功能。编辑菜单:包括添加词汇、修改词汇、删除词汇功能。帮助菜单:关于该软件的一些信息。(3) 工具栏说明在向输入栏中输入英/中文单词,单击查询按钮,在显示栏中将会显示查找所对应词典中的所有解释。发音按钮:发音纯正标准。方便用户更好的记忆朗读单词。添加、修改、删除按钮:可由用户自行添加、修改和删除词库中的词汇。(4)显示栏说明显示用户所查询的词义。右击将出现复制、粘贴等命令。方便用复制到其

9、它地方进行其它如打印、学习等操作。2.4数据库设计在开始设计电子词典之前,要做一些准备工作,在Microsoft Access 2003中,建立一个数据库,数据库的名字为english数据库,其中包括一张表。图5 建立Accesss数据库图6 表的属性图 此英语单词表有两个属性值,分别是单词和解释。其中单词字段为主键,保证输入不可以为空。其类型都是文本类型。其中,单词表示英文单词信息;解释代表汉语解释信息。 表1 英语单词解释表 2.4.1使用JDBC连接数据库JDBC是Java程序连接数据库的应用程序接口(API)。JDBC是由一群类和接口组成,通过调用这些类和接口所提供的成员方法,我们可以

10、连接各种不同的数据库,进而使用SQL命令对数据库进行查询、插入、删除、更新等操作。Java程序包括Java小程序和应用程序,主要是根据JDBC方法实现对数据库的访问和操作。完成的主要任务有请求与数据库建立连接;向数据库发送SQL请求;为结果集定义存储应用和数据类型;查询结果;错误处理;控制传输;提交关闭连接等操作。2.4.2JDBC编程要点(1) 引用java.sql包:import java.sql.*;(2) 使用Class.forName()方法加载相应数据库的JDBC驱动程序。Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“);(3) 定义JDB

11、C的URL对象。(4) 连接数据库。 Connection s=DriverManager.getConnection(con URL);(5) 使用SQL语句对数据库进行操作。(6) 解除Java与数据库的连接并关闭数据库。(7) 常用的JDBC类有,DriverManage类,Connection类,Statement类,PreparedStatement类,ResultSet类。3.程序运行结果图7文件菜单界面文件菜单:包括英汉词典、汉语词典、备份词库、退出功能。当单击英汉词典时,主界面出现输入查询英语单词;单击汉语词典,显示输入要查询的汉语意思;单击退出,将退出操作;单击备份数据库,将

12、对已有的数据进行备份,以便保证数据的安全。图8 英汉词典英译汉英汉词典,可以实现英文单词对中文词汇的查询功能。当用户输入一个单词,用户可以单击查询按钮,显示这个单词的中文解释,解释出现在文本区,但是输入不可以为空。图9英汉词典汉译英实现将中文词汇翻译成英语。在查询栏中输入中文,点击查询,便出现它的英文解释。图10编辑菜单界面编辑菜单:包括添加词汇、修改词汇、删除词汇功能。可以扩充词库,按照自己的需要,完善词库,也可对原有的信息进行修改、补充等操作。图11删除界面 单击主界面的删除按钮,出现删除界面,在输入单词栏中填上要删除的单词,然后单击提交按钮。如果要退出,也可以点击取消,退出删除界面,回到

13、主界面。 图12 修改界面单击主界面的修改按钮,出现修改界面,在输入单词栏中填上要修改的单词,下面写上它的汉语解释,然后单击提交按钮。如果输入有误,也可以点击取消,退出修改界面。 图13添加单词界面单击主界面的添加按钮,出现添加单词界面,在输入单词栏中填上要添加的单词,下面写上它的汉语解释,然后单击提交按钮。如果输入有误或要退出,也可以点击取消,退出添加单词界面,回到主界面。图14 帮助菜单界面帮助菜单包括帮助和关于两个选项。此模块添加了一些使用该软件的方法,当用户在使用时遇到不清楚的问题时,可以点帮助文档,根据提示进行操作。图15 关于界面 此界面显示关于此软件的一些信息,供用户参阅。4.设

14、计体会通过本次设计,进一步深化了课堂上所学的知识,深刻理解了Java语言的重要概念及其面向对象的特点,熟练的应用面向对象的思想和设计方法解决实际问题。巩固所学java语言基本知识,增进Java语言编辑基本功,掌握JDK、eclipse等开发工具的运用,拓展常用类库的应用,把所学课程及相关知识加以融会贯通。除此之外,对于图形用户界面的设计,从课本的Awt包扩展到Swing包,利用Swing编程设计漂亮的图形用户界面,增加了一些新的的效果。在此次设计中,预先设计的所有功能均能实现,而且执行效果较好。但是,由于时间有限,此电子词典的功能还不够完善。例如可以增加背单词功能,英文单词游戏等功能,由于时间

15、和能力有限,其他功能待日后完善。在此次课程设计中,自己解决问题的能力得到了提高。由于课堂所学有限,不足以解决实际问题,所以在设计过程中遇到的问题,参阅了大量的书目和借助网络,再加上老师的指导,最终问题都得到了解决。这为以后进行复杂的程序设计奠定了很好的基础,同时也培养了自己获得信息、总结信息,以及综合运用所学知识的能力。5.参考文献1 胡宋军.Java2编程技术与实例M. 北京: 人民邮电出版社, 2004.5:95-1252 岩洪亮等.JAVA课程设计教程M.北京:北京电子工业出版社,2004.5: 26-423 刘志铭,孙明丽等.数据库系统开发案例精选M.北京:清华大学出版社,2005.6

16、:235-2634 王国辉, 吕海涛.数据库系统开发案例M. 北京:人民邮电出版社, 2007.3:106-1775 陈国君, 陈锡祯. Java2程序设计基础M. 北京:清华大学出版社, 2006.1:316-3386 袁海燕. Java实用程序设计100例M. 北京:人民邮电出版社, 2005.6:210-2246.附录主要代码:import java.awt.*;import .*;import java.sql.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import sun.audio.*;impor

17、t javax.swing.JOptionPane;class DataWindow extends JFrame implements ActionListener JFrame topFrame; JDesktopPane desktop; FileDialog filedialog_save; JTextField englishtext; JTextArea chinesetext; JButton b1,b2,b3,b4,b5; JLabel label; JMenuBar mbar; JMenu mfile,medit,mhelp; JMenuItem edic,cdic,back

18、_data,quit,addedit,modedit,deledit,hhelp,about; DataWindow() super(英汉小词典); this.setBounds(250,250,600,400); this.setVisible(true); getContentPane().add(new JScrollPane(chinesetext); mbar=new JMenuBar(); setJMenuBar(mbar); mbar.setOpaque(true); mfile=new JMenu(文本); medit=new JMenu(编辑); mhelp=new JMen

19、u(帮助); mbar.add(mfile); mbar.add(medit); mbar.add(mhelp); edic=new JMenuItem(英汉词典); cdic=new JMenuItem(汉英词典); back_data=new JMenuItem(备份词典); quit=new JMenuItem(退出); /文件菜单 addedit=new JMenuItem(添加词汇); modedit=new JMenuItem(修改词汇); deledit=new JMenuItem(删除词汇);/编辑菜单 hhelp=new JMenuItem(帮助); about=new JM

20、enuItem(关于.); /帮助菜单 mfile.add(edic); mfile.add(cdic); mfile.add(back_data); mfile.addSeparator(); mfile.add(quit); medit.add(addedit); medit.add(modedit); medit.add(deledit); mhelp.add(hhelp); mhelp.add(about); edic.addActionListener(this); cdic.addActionListener(this); quit.addActionListener(this);

21、 addedit.addActionListener(this); modedit.addActionListener(this); deledit.addActionListener(this);hhelp.addActionListener(this); about.addActionListener(this); englishtext=new JTextField(16); englishtext.setFont(new Font(,15,15); chinesetext=new JTextArea(8,15); chinesetext.setEditable(false); chin

22、esetext.setFont(new Font(,25,25); b1=new JButton(查询); b2=new JButton(添加); b3=new JButton(修改); b4=new JButton(删除); b5=new JButton(); JPanel p1=new JPanel(); JPanel p2=new JPanel(); /添加面板 label=new JLabel(输入要查询的英语单词); label.setFont(new Font(隶书,20,20); p1.add(label); p1.add(englishtext); p1.add(b1); p1

23、.add(b5); p2.add(b2); p2.add(b3); p2.add(b4); this.add(p1,North); this.add(p2,South); this.add(new JScrollPane(chinesetext),Center); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); englishtext.addActionListen

24、er(this); back_data.addActionListener(this); filedialog_save=new FileDialog(this,保存文件对话框,FileDialog.SAVE);/定义保存文件对话框 filedialog_save.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) filedialog_save.setVisible(false); ); addWindowListener(new WindowAdapter() public void

25、windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) /实现按钮监听事件 if(e.getSource()=b1|e.getSource()=englishtext) /如果是查询 chinesetext.setText(); if(englishtext.getText().equals() JOptionPane.showMessageDialog(this,查询对象不能为空,警告,JOptionPane.WARNING_MESSAGE); else tryLis

26、twords(); catch(SQLException ee) else if(e.getSource()=b2|e.getSource()=addedit) /如果是添加 new AddWin(); /AddWin是添加窗口的类 else if(e.getSource()=b3|e.getSource()=modedit) /如果是修改 new ModifyWin(); /ModifyWin是修改窗口的类 else if(e.getSource()=b4|e.getSource()=deledit) new DelWin(); /DelWin是删除窗口的类 else if(e.getSou

27、rce()=b5) /如果是语音文件,则读出单词 if(englishtext.getText()!=null) try InputStream is=getClass().getResource(sound/+englishtext.getText().trim()+.wav).openStream(); /AudioPlayer.player.start(is); catch(IOException e1) else if(e.getSource()=edic)/英汉 label.setText(输入要查询的英语单词:); b1.setVisible(true); b5.setVisibl

28、e(true); else if(e.getSource()=cdic) /汉英 label.setText(输入要查询的汉语意思:); b1.setVisible(true); b5.setVisible(true); else if(e.getSource()=back_data) /备份 File fromfile=new File(englishenglish.mdb); FileInputStream fis=null; filedialog_save.setVisible(true); try fis=new FileInputStream(fromfile); /建立文件输入流

29、int bytesRead; /定义变量来存储输入流中读取的文件 byte buf=new byte4*1024; /定义4KB容量的buffer数组 File tofile=new File(filedialog_save.getDirectory(),filedialog_save.getFile();/建立新文件对象 FileOutputStream fos=new FileOutputStream(tofile);/建立文件输出流 while(bytesRead=fis.read(buf)!=-1)/写入文件(备份文件) fos.write(buf,0,bytesRead); fos.

30、flush(); fos.close(); fis.close(); catch(IOException e2) else if(e.getSource()=quit) /退出 System.exit(0); else if(e.getSource()=about) /关于 final String AboutMsg=A Electrical Dictionary 1.0nn+An application written to show off the function of dictionary.nn+nn+Copyright(c) 2005.; JOptionPane.showMessageDialog(topFrame,AboutMsg); else if(e.getSource()=hhelp) JInternalFrame help=new HelpFrame(); help.setVisible(true); public void Listwords() throws SQLException /实现查询功能 String cname,ename; try Class.forName(sun.jdbc,odbc,JdbcOdbcDriver); catch(ClassNotFoundException e) /建立桥接 Connection ExlCon=

温馨提示

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

评论

0/150

提交评论