




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要两周的课程设计实训我做的是用Java基本程序编写一个简单的电子词典,该程序是一个图形界面连接数据库的英汉字典,其界面主要采用了awt包, 程序实现了电子词典的基本功能有:查询、修改,添加词汇并保存修改,添加后的词汇,通过自己的实际动手操作,进一步加深了对Java的理解,电子词典的完成我还了解了市场的需求,培养了自己的学习兴趣。 关键字:Java图形界面,Access数据库,actionPerformed()接口方法, ActionEvent事件目录1需求分析42. 概要设计42.1设计思路42.1.1 系统总体功能模块图43. 详细设计53.1 主界面功能53.2 英译汉功能53.3 汉译英功能63.4数据库创建与连接64. 主要程序源代码75.调试程序136.结论137.参考文献141需求分析我们的课题是电子词典功能的实现,电子词典作为一种学习工具,有着不可估量的市场前景。作为一名学生,我们在学习英语的时候会经常碰到很多的生词,有时,为了读懂一篇文章,经常是读文章用一小时,但是其中却有半个小时都在翻阅英语字典。所以我们小组为了解决这一问题,才将选材方向定位于电子词典的功能实现,主要的目的就是为同学们解决这一问题。在做电子词典功能实现的时候,我们主要从以下几个方面入手,即:查询,添加,修改,在这几个功能模块上,我们首先提供了一个查询界面,即使用者需要输入要查询的关键字,点击确定按钮,屏幕上就会出现其对应的答案。在做这个模块的时候,我们主要解决了JAVA与数据库的链接问题,进而实现其功能。解决了同学们在学习英语过程中遇到的困难,满足了市场的需求。2. 概要设计2.1设计思路本系统在单词查阅方面主要完成了英译汉功能;在系统性能方面主要完成了单词库的添加、修改、删除,退出功能等。2.1.1 系统总体功能模块图本系统总体功能模块图如下所示:英汉词典 文件汉英词典备份词库退出电子词典添加词汇修改词汇编辑 删除词汇 图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea,TextField,Button作为主要的部件,文本框上使用ActionEvent事件,文本区上实现TextEvent事件,实现接口方法用到了actionPerformeredf方法在设计类的时候,要实现三个系统性能功能,就用了三个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。数据库的创建,用Access创建数据库,库的名称叫做english,表的名称也叫做english,.为了将图形界面与数据库建立连接首先要创建一个ODBC数据源。数据库连接的建立包括两个步骤:首先要加载相应数据库的JDBC驱动程序;然后建立连接。3. 详细设计3.1 主界面功能该模块的主要功能为:使用户可以在一个界面下调用各功能模块。即放便用户使用又方便用户的学习,而且不但可以通过菜单栏调用各功能模块,还可以通过按钮调用,主界面主要由两个面版,四个按钮,一个文本框,一个文本区,一个标签和一个菜单栏组成。在文本框中输入要查询的数据。文本区中显示查询的结果。主要方法包括:DataWindow()为构造方法,创建用户添加词汇界面;与actionPerformed()为接口方法,处理ActionEvent事件。设计好的主界面去如图所示3.2 英译汉功能该模块的主要功能为:当用记遇到陌生的单词或记不清解释的单词时,用户可以通过本功能查找,还通过本模块完成单词的再一次记忆。此功能模块主要是针对已经存在于单词库中的单词,通过编辑菜单中的英汉词典功能,在主界面的文本框中输入要查询的单词,单击查询按钮进行查询。结果显示在主界面的文本区中。3.3 汉译英功能该模块的主要功能为:当用户进行汉译英翻译时难难免遇到不会的词或记不请的记。这时用记就可以通过本功能实现词汇的查找。它不但可以查到想要查的词还可以找到和该词相关的单词。3.4数据库创建与连接数据库表设计字段名字段类型长度单词文本50解释文本50打开控制面板选择:“管理工具”“数据源(ODBC)”“用户DNS”“添加”选择相应的数据库驱动Microsoft Access Driver (*.mdb),数据源的名称为english,然后选择数据库,确定。建立JDBCODBC桥接器:Class.forName()方法的执行,将创建数据库驱动的实例并注册到驱动管理器。在某种数据库的驱动程序加载后,就可以建立与该DBMS的连接了。定义如下: Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”); 创建数据库连接这个步骤中要使数据库驱动连接到相应的DBMS。连接的建立通过使用DriverManager类中的static方法getConnection(),该方法的定义如下 Con=DriverManager.getConnection(“jdbc:odbc:english”,”,”); 4. 主要程序源代码class DataWindow extends JFrame implements ActionListener/子类继承父类事件监听器作为接口JFrame topFrame;/声明窗口JDesktopPane desktop;FileDialog filedialog_save; /声明文件对话框JTextField englishtext;/声明一个文本框JTextArea chinesetext;/ 声明一个文本区JButton b1,b2,b3,b4;/定义按钮JLabel label;/定义标签JMenuBar mbar;JMenu mfile,medit,mhelp;/菜单项JMenuItem edic,cdic,back_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 JMenu(帮助);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(删除词汇);/编辑菜单mfile.add(edic);/将菜单项添加到菜单mfile.add(cdic);mfile.add(back_data);mfile.addSeparator();mfile.add(quit); /mfilemedit.add(addedit);medit.add(modedit);medit.add(deledit); /meditmhelp.add(hhelp);mhelp.add(about); /mhelpedic.addActionListener(this);/将edic作为事件监听器添加到当前窗口cdic.addActionListener(this);quit.addActionListener(this);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);/文本区内不能编辑chinesetext.setFont(new Font(,25,25);b1 = new JButton(查询);/创建查询按钮对象b2 = new JButton(添加);b3 = new JButton(修改);b4 = new JButton(刪除);JPanel p1 = new JPanel(),p2 = new JPanel();/添加面板label = new JLabel(输入要查询的英语单词:);/声明新标签label.setFont(new Font(隶书,20,20);p1.add(label);/将标签添加到面板中p1.add(englishtext);p1.add(b1);p1.add(b5);p2.add(b2);p2.add(b3);p2.add(b4);this.add(p1,North);/面板布局1的位置this.add(p2,South);/面板布局2的位置this.add(new JScrollPane(chinesetext),Center);/文本区在中心b1.addActionListener(this);/b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);englishtext.addActionListener(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 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);/警告信息elsetryListwords();catch(SQLException ee) 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(); /ModifyWin是修改窗口的类else if(e.getSource()=b4|e.getSource()=deledit) DelWin del = new DelWin(); /DelWin是删除窗口的类else if(e.getSource()=edic) /英汉label.setText(输入要查询的英语单词:);b1.setVisible(true);b5.setVisible(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);tryfis = new FileInputStream(fromfile);int bytesRead; /定义变量来存储输入流中读取出来的文件byte buf = new byte4*1024; /4K bufferFile 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.flush();fos.close();fis.close();catch(IOException e2) else if(e.getSource()=quit) /退出System.exit(0);public void Listwords() throws SQLException /实现查询功能String cname,ename;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)/建立桥接器Connection Ex1Con = DriverManager.getConnection(jdbc:odbc:english,);/(jdbc:odbc Driver=MicroSoft Access Driver (*.mdb);DBQ=englishenglish.mdb,);/连接数据源Statement Ex1Stmt = Ex1Con.createStatement();/对象调用方法if(label.getText().equals(输入要查询的英语单词:)ResultSet rs = 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);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().equals()JOptionPane.showMessageDialog(this,查无此单词!,警告,JOptionPane.WARNING_MESSAGE); / 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() 5.调试程序在程序调试中最大的问题就是数据库连接着一部分,由于对数据库的知识比较陌生,所以调试起
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年矿产资源勘探工程师职业资格考试试题及答案解析
- 2025年教师资格认定考试试卷及答案解析
- 2025年健身教练员执业能力水平考核试题及答案解析
- 2025年建筑装潢工程师资格考试试题及答案解析
- 2025年机器人操作员职业技术水准测验试卷及答案解析
- 课件中强调重点的声音
- 2025年化妆品品质监督员资格考试试题及答案解析
- 课件中位数众数
- 2025年广播节目策划师资格认定考试试题及答案解析
- 2025年互联网营销师面试问题集
- 合作利润分成合同协议书
- 压实法的压实参数确定
- 证据保全公证协议书
- 拍摄临时用工协议书
- 《教育向美而生》读书分享
- 2025年法制副校长演讲稿(7篇)
- 无肝素透析考试题及答案
- 智能生鲜机器人项目商业计划书
- 生物质颗粒购销合同
- 临床教学经验总结
- 高中化学拔尖创新人才早期培养路径
评论
0/150
提交评论