《java课程设计英汉电子词典系统.doc》由会员分享,可在线阅读,更多相关《java课程设计英汉电子词典系统.doc(25页珍藏版)》请在三一办公上搜索。
1、课程设计说明书 NO.1英汉电子词典系统1.课程设计的目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点,它贴近自然的语义,而且有利于软件的维护和继承。此次课程设计的目的在于巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2.设计方案论证2.1 概要设计2.1.1 系统功能描述该系统主要用于实现英汉互译的功
2、能,系统拥有己的数据库,我们可以先选择让系统进行英译汉,还是汉译英,然后在查询框中输入想要查询的英文单词或汉语意思,系统自动在数据库中查找匹配记录并给出对应的汉语意思或英文单词,若在数据库中没有查找到匹配的记录,则系统会弹出出错提示。同时,系统还提供了添加、修改、删除等功能,允许用户自主的对系统数据库进行添加、修改、删除等操作,便于用户建立自己的词汇库,简便实用。2.1.2 系统开发环境(1)硬件环境CPU:Intel(R)Core(TM)2 Duo CPU P7450 2.13GHz 内存:2G 硬盘空间:250G(2)软件环境 32位XP操作系统。JDK和Jcreator软件环境。 沈 阳
3、 大 学课程设计说明书 NO.22.2详细设计2.2.1 程序流程图英汉词典汉英词典备份词库退出删除词汇修改词汇英汉电子词典库存采购操作添加词汇图1 英汉电子词典系统功能模块图功能模块说明:(1)英译汉功能模块说明:可以实现对英文单词对中文单词的查询功能。用户文本框中输入要查询的英语单词。若该单词存在于词库中,则会在文件对话框中显示其词性及中文翻译;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。(2)汉译英功能模块说明:可以实现对中文单词对英文单词的查询功能。用户可在文本框中输入要查询的中文单词。若该单词存
4、在于词库中,则会在文件对话框中显示一个或多个对应的英文;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。(3)备份词库功能模块说明:可以实现对现有词库的备份,可将当前词库存入用户所设置的任一位位置。(4)添加词汇功能模块说明:可以实现对词库的添加。用户可自行输入所添加的 沈 阳 大 学课程设计说明书 NO.3单词及其解释,若添加的是词库中没有的单词,系统在添加成功后有提示“添加成功”;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。(5)修改词汇功能模块说明:可以实现对词库中已有单词的修
5、改。用户可自行修改词库中的单词的解释,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。(6)删除词汇功能模块说明:可以删除词库中已有的单词。用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。(7)其它功能模块说明:在帮助中有“帮助”与“关于”两项,“帮助”中有关于词典的功能说明,“关于”可显示版本信息。2.2.2 程序中自定义类说明表1 动画中涉及的元件表类名作用父类子类Dic自定义主体main函数的类,用来调用各种类DataWindow,AddWin,DelWin,ModifyWi
6、nDataWindow自定义一个主窗体类,用来显示整个窗体JFrameAddWin自定义一个添加窗口类,用于添加新的单词及其解释JFrameDelWin自定义一个删除窗口类,用于删除词库中所存在的单词及其解释JFrameModifyWin自定义一个修改窗口类,用于修改词库中所存在的单词及其解释JFrame 沈 阳 大 学课程设计说明书 NO.42.2.3程序中主要方法说明(1)定义方法actionPerformed(),内用if语句实现按钮监听:public void actionPerformed(ActionEvent e)(2)定义方法删除(),实现删除功能public void 删除(
7、) throws SQLException(3)定义方法添加(),实现添加功能public void 添加() throws SQLException(4)定义方法查询(),实现查询功能public void 查询() throws SQLException3.设计结果与分析3.1程序运行结果经过编译、执行后可看到运行界面如图2所示图2 运行结果图此时有两个菜单选择:库存和采购操作。 沈 阳 大 学课程设计说明书 NO.53.1.1库存菜单它包含四个子菜单:英汉词典、汉英词典、备份词库及退出。打开该词典时默认进入的是英汉词典。如图3所示:图3 库存菜单示意图(1)英汉词典:在文本框中输入要查询
8、的英文单词,单击“查询”,英文单词对应的中文解释及其词性便会出现在文件对话框中,如图4所示:图4 英汉词典查询示意图 沈 阳 大 学课程设计说明书 NO.6如果所查单词不存在于词库中,则会弹出“警告”,说明“查无此词”,如图5所示;如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,如图6所示:图5 查询错误示意图图6 空输入查询错误(2)汉英词典:在在文本框中输入要查询的汉语意思,单击“查询”,对应的英文单词便会出现在文件对话框中,如图7所示: 沈 阳 大 学课程设计说明书 NO.7图7 汉英词典查询示意图如果所查词不存在于词库中,则会弹出“警告”,说明“查无此词”;
9、如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”,演示与英汉词典类似。(3)点击备份词库时,会弹出保存文件对话框,此时可将词库拷贝到机算机里的任一位置。如图8所示。图8 备份词汇库功能演示 沈 阳 大 学课程设计说明书 NO.83.1.2采购操作菜单:它包含三个子菜单:添加词汇、修改词汇和删除词汇。如图9所示:图9 采购操作菜单示意图(1)添加词汇:用户可自行输入所添加的单词及其解释,如果添加的是词库中没有的单词,系统在添加成功后有提示“添加成功”,如图10所示。若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。如图11所示。图10 添加词汇成功示
10、意图 沈 阳 大 学课程设计说明书 NO.9图11 添加词汇出错示意图(2)修改词汇:用户可自行修改词库中的单词的解释,如图12所示;如果输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”,如图13所示。图12 修改词汇成功示意图 沈 阳 大 学课程设计说明书 NO.10图13 修改词汇出错示意图(3)删除词汇:用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,如图14所示。如果输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”,如图15所示。图14 删除词汇成功示意图 沈 阳 大 学课程设计说明书 NO.11图15 删除词汇出错示意图经测试
11、,该系统各项功能均能使用,各个功能选项与设计所想相符。3.2尚需解决的问题(1)本系统虽然允许用户根据自己的需求增减词汇,保存自己的词汇库,但是却无法做到批量导入。(2)发音问题,本系统还缺少比较重要的一项功能,词汇的发音功能。(3)查询单词时无法做到自动匹配,比如说输入a时,无法自动寻找所有以a开头的词汇。4.设计体会此次课程设计过程中,我遇到了很多问题,也更加了解JAVA。Java是一种网络语言,使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java为了做到结构中立,除生成机器无关的字节码外,还制定了完全统一的语言文本,如Java的基本数据类
12、型不会随目标机的变化而变化,一个整型总是32位,一个长整型总是64位。 沈 阳 大 学课程设计说明书 NO.12为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。通过对JAVA数据库编程的更多的了解,我也获得了一些调试的经验:通过层层的捕获异常来得知错误的发生。在课程设计中出现的问题对我而言是学习与复习的好机会,是它们使我学会了如何自学、如何查阅资料等,让我学习了很多,也让我对旧的知识点有了更深的理解。在这不断的调试、改动的过程中也让我明白了养成良好编程习惯的益处。由于编写
13、程序时容易出错,因此我采用了单个模块单个功能进行调试与测试的方法。在不断的出错与改错的过程中,我学到了很多关于编程和调试程序的知识,使自己的知识体系得到了一定的完善,也使我对平时所学有了很多的了解与更深的理解。面对一系列的问题,失败了尝试,再失败再尝试通过这次的实践,我发现了自己在编程及对软件开发相关知识的不足,在以后的学习实践中,我要取长补短,敢想善问,不断加强自身在专业知识方面的能力,为以后的学习与工作打下坚实的基础。5.参考文献1 叶核亚JAVA2程序设计实用教程M(第2版)北京:电子工业出版社;2008.42陈国君、陈磊、陈锡祯、刘洋.Java2程序设计基础M,第一版.北京:清华大学出
14、版社,2006:324-3373丘仲潘. Java游戏编程M.北京:科学出版社,2004.6:1251324张大治. Java程序设计实用教程M.北京:清华大学出版社,2008.4:728156.附录核心代码import java.awt.*;import .*; 沈 阳 大 学课程设计说明书 NO.13import java.sql.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import sun.audio.*;import javax.swing.JOptionPane;class DataWindow
15、extends JFrame implements ActionListenerJFrame topFrame;JDesktopPane desktop;FileDialog filedialog_save; /声明文件对话框JTextField englishtext;JTextArea chinesetext;JButton b1,b2,b3,b4;JLabel label;JMenuBar mbar;JMenu mfile,medit;JMenuItem edic,cdic,back_data,quit,addedit,modedit,deledit,about;DataWindow()
16、super(英汉小词典);this.setBounds(250,250,600,400);this.setVisible(true);getContentPane().add(new JScrollPane(chinesetext);mbar = new JMenuBar();setJMenuBar(mbar); 沈 阳 大 学课程设计说明书 NO.14mbar.setOpaque(true);mfile = new JMenu(库存);medit = new JMenu(采购操作);mbar.add(mfile);mbar.add(medit);edic = new JMenuItem(英汉
17、词典);cdic = new JMenuItem(汉英词典);back_data = new JMenuItem(备份词库);quit = new JMenuItem( 退出);/文件菜单addedit = new JMenuItem(添加);modedit = new JMenuItem(修改);deledit = new JMenuItem(删除);/编辑菜单about = new JMenuItem(关于.);/帮助菜单mfile.add(edic);mfile.add(cdic);mfile.add(back_data);mfile.addSeparator();mfile.add(q
18、uit); /mfilemedit.add(addedit);medit.add(modedit);medit.add(deledit); /meditedic.addActionListener(this);cdic.addActionListener(this);quit.addActionListener(this);addedit.addActionListener(this);modedit.addActionListener(this);deledit.addActionListener(this); 沈 阳 大 学课程设计说明书 NO.15about.addActionListe
19、ner(this);englishtext = new JTextField(16);englishtext.setFont(new Font(,15,15);chinesetext = new JTextArea(8,15);chinesetext.setEditable(false);chinesetext.setFont(new Font(,25,25);b1 = new JButton(查询);b2 = new JButton(添加);b3 = new JButton(修改);b4 = new JButton(刪除);JPanel p1 = new JPanel(),p2 = new
20、JPanel();/添加面板label = new JLabel(输入要查询的英语单词:);label.setFont(new Font(隶书,20,20);p1.add(label);p1.add(englishtext);p1.add(b1);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.ad
21、dActionListener(this);b4.addActionListener(this);englishtext.addActionListener(this);back_data.addActionListener(this);filedialog_save = new FileDialog(this,保存文件对话框,FileDialog.SAVE); 沈 阳 大 学课程设计说明书 NO.16filedialog_save.addWindowListener(new WindowAdapter() /对话框增加适配器public void windowClosing(WindowEv
22、ent e)filedialog_save.setVisible(false););addWindowListener(new WindowAdapter()public void 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.s
23、howMessageDialog(this,查询对象不能为空!,警告,JOptionPane.WARNING_MESSAGE);elsetryListwords();catch(SQLException ee) 沈 阳 大 学课程设计说明书 NO.17 else if(e.getSource()=b2|e.getSource()=addedit) AddWin add = new AddWin(); /AddWin是添加窗口的类else if(e.getSource()=b3|e.getSource()=modedit) ModifyWin modi = new ModifyWin(); /M
24、odifyWin是修改窗口的类else if(e.getSource()=b4|e.getSource()=deledit) DelWin del = new DelWin(); /DelWin是删除窗口的类else if(e.getSource()=edic) /英汉label.setText(输入要查询的英语单词:);b1.setVisible(true);else if(e.getSource()=cdic) /汉英label.setText(输入要查询的汉语意思:);b1.setVisible(true);else if(e.getSource()=back_data) /备份File
25、 fromfile = new File(englishenglish.mdb); 沈 阳 大 学课程设计说明书 NO.18FileInputStream fis = null;filedialog_save.setVisible(true);tryfis = new FileInputStream(fromfile);int bytesRead; /定义变量来存储输入流中读取出来的文件byte buf = new byte4*1024; /4K bufferFile tofile = new File(filedialog_save.getDirectory(),filedialog_sav
26、e.getFile();FileOutputStream fos = new FileOutputStream(tofile);while(bytesRead = fis.read(buf)!=-1)fos.write(buf,0,bytesRead);fos.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
27、Dictionary 1.0 n n 沈 阳 大 学课程设计说明书 NO.19+An application written to show off the function of dictionary.n n+Written By Edith.n n+Copyright (c) 2005 by Edith.All rights Reserved.;JOptionPane.showMessageDialog(topFrame,AboutMsg);public void Listwords() throws SQLException /实现查询功能String cname,ename;tryCl
28、ass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)/建立桥接器 Connection Ex1Con = DriverManager.getConnection(jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=englishenglish.mdb,);Statement Ex1Stmt = Ex1Con.createStatement();if(label.getText().equals(输入要查询的英语单词:)ResultSet rs =
29、Ex1Stmt.executeQuery(SELECT * FROM 表1);while( rs.next()ename = rs.getString(单词);cname = rs.getString(解释);if(ename.equals(englishtext.getText() 沈 阳 大 学课程设计说明书 NO.20chinesetext.append(cname+n);Ex1Con.close(); /关闭数据库if(chinesetext.getText().equals()JOptionPane.showMessageDialog(this,查无此单词!,警告,JOptionPa
30、ne.WARNING_MESSAGE); else if(label.getText().equals(输入要查询的汉语意思:)ResultSet rs=Ex1Stmt.executeQuery(SELECT * FROM 表1 WHERE 解释 LIKE %+englishtext.getText()+%);while(rs.next()ename = rs.getString(单词);cname = rs.getString(解释);chinesetext.append(ename+n);Ex1Con.close(); /关闭数据库if(chinesetext.getText().equa
31、ls()JOptionPane.showMessageDialog(this,查无此单词!,警告,JOptionPane.WARNING_MESSAGE); 沈 阳 大 学课程设计说明书 NO.21 / end of Liststudent() public class Dicpublic static void main(String args) JFrame.setDefaultLookAndFeelDecorated(true);DataWindow window = new DataWindow();window.validate(); /AddWin add = new AddWin(); public void add() 沈 阳 大 学课程设计说明书 NO.22 沈 阳 大 学课程设计说明书 NO.23 沈 阳 大 学课程设计说明书 NO.24 沈 阳 大 学课程设计说明书 NO.25 沈 阳 大 学