java课程设计英汉电子词典编程.docx

上传人:b****7 文档编号:16573654 上传时间:2023-07-14 格式:DOCX 页数:68 大小:823.51KB
下载 相关 举报
java课程设计英汉电子词典编程.docx_第1页
第1页 / 共68页
java课程设计英汉电子词典编程.docx_第2页
第2页 / 共68页
java课程设计英汉电子词典编程.docx_第3页
第3页 / 共68页
java课程设计英汉电子词典编程.docx_第4页
第4页 / 共68页
java课程设计英汉电子词典编程.docx_第5页
第5页 / 共68页
java课程设计英汉电子词典编程.docx_第6页
第6页 / 共68页
java课程设计英汉电子词典编程.docx_第7页
第7页 / 共68页
java课程设计英汉电子词典编程.docx_第8页
第8页 / 共68页
java课程设计英汉电子词典编程.docx_第9页
第9页 / 共68页
java课程设计英汉电子词典编程.docx_第10页
第10页 / 共68页
java课程设计英汉电子词典编程.docx_第11页
第11页 / 共68页
java课程设计英汉电子词典编程.docx_第12页
第12页 / 共68页
java课程设计英汉电子词典编程.docx_第13页
第13页 / 共68页
java课程设计英汉电子词典编程.docx_第14页
第14页 / 共68页
java课程设计英汉电子词典编程.docx_第15页
第15页 / 共68页
java课程设计英汉电子词典编程.docx_第16页
第16页 / 共68页
java课程设计英汉电子词典编程.docx_第17页
第17页 / 共68页
java课程设计英汉电子词典编程.docx_第18页
第18页 / 共68页
java课程设计英汉电子词典编程.docx_第19页
第19页 / 共68页
java课程设计英汉电子词典编程.docx_第20页
第20页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java课程设计英汉电子词典编程.docx

《java课程设计英汉电子词典编程.docx》由会员分享,可在线阅读,更多相关《java课程设计英汉电子词典编程.docx(68页珍藏版)》请在冰点文库上搜索。

java课程设计英汉电子词典编程.docx

java课程设计英汉电子词典编程

贵州大学实习报告专用纸

 

Java 课程设计——英汉电子词典

 

一、需求分析

 

二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并

迅速和人们的日常生活结合在一起。

计算机技术的发展和进步也使电子语言词典

的诞生成为可能。

我们日常的学习生活中,常会遇到这样的问题:

在工作时或在网上冲浪,或

者电子邮箱中收到一封外国朋友发的英文 E-mail,遇到某些陌生的单词,可又

疲于去翻查厚重的英文字典时,电脑中所安装的英汉电子词典便成为了最为方

便、快捷的选择。

电子词典是一种多功能的词典类工具软件,它可以即时翻译,

快速、准确、详细地查阅英文单词,或将中文单词进行英文翻译,使自己的知识

面拓展得更宽、更广。

尽管电子词典只有十来年的历史,但它却已经发展壮大,成为词典家族中具

有旺盛生命力的一员。

虽然目前它尚不足以取代传统词典,但在英语学习和教学

中,由于它实用、快捷、准确、经济等特点,已经成为传统英汉词典的有力竞争

者,并对传统的词典提出了挑战。

本系统是一个采用 Microsoft Access 作为数据库,用 JAVA 作为开发工具的

英汉电子词典,内有英汉词典、汉英词典和备份词库。

它不仅可实现英译汉、汉

译英的基本翻译功能,还可以让用户根据自己的需要添加、修改、删除词库,形

成自己的词库。

其功能结构图如图 1.1 所示:

贵州大学实习报告专用纸

 

英语小词典

 

文件编辑

 

退

 

 

图 1.1 功能结构图

 

功能模块说明:

1、英译汉功能模块说明:

可以实现对英文单词对中文单词的查询功能。

户文本框中输入要查询的英语单词。

若该单词存在于词库中,则会在文件对话框

中显示其词性及中文翻译;若该单词没有存在于词库中,则会弹出“警告”,说

明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询

对象不能为空”。

2、汉译英功能模块说明:

可以实现对中文单词对英文单词的查询功能。

户可在文本框中输入要查询的中文单词。

若该单词存在于词库中,则会在文件对

话框中显示一个或多个对应的英文;若该单词没有存在于词库中,则会弹出“警

告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告” 说明

“查询对象不能为空”。

3、备份词库功能模块说明:

可以实现对现有词库的备份,可将当前词库存

入用户所设置的任一位位置。

4、添加词汇功能模块说明:

可以实现对词库的添加。

用户可自行输入所添

加的单词及其解释,若添加的是词库中没有的单词,系统在添加成功后有提示“添

加成功”;若添加的是词库中已有的单词,系统会弹出“警告” 说明“此词汇已

存在”。

5、修改词汇功能模块说明:

可以实现对词库中已有单词的修改。

用户可自

行修改词库中的单词的解释,若输入单词不存在于词库中,系统会弹出“警告”

 

2

贵州大学实习报告专用纸

 

说明“不存在此单词”。

6、删除词汇功能模块说明:

可以删除词库中已有的单词。

用户可自行删除

词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,若输入单词

不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。

7、其它功能模块说明:

在帮助中有“帮助”与“关于”两项, 帮助”中有

关于词典的功能说明,“关于”可显示版本信息。

 

二、概要设计

1、英语词典设计要求

分析词典的主要功能,设计实现如下功能:

(1)实现程序 GUI 图形界面;

(2)实现与词典数据库的访问;

(3)实现文件的输入、输出;

(4)实现鼠标或键盘事件响应模块。

2、自定义类说明

(1) public class Dic{}

自定义主体 main 函数的类,用来调用各种类

(2) class DataWindow extends JFrame implements ActionListener{}

自定义一个主窗体类,用来显示整个窗体。

继承的父类:

 JFrame 类

实现的接口:

 ActionListener

(3) class AddWin extends JFrame implements ActionListener{}

自定义一个添加窗口类,用于添加新的单词及其解释

(4) DelWin extends JFrame implements ActionListener{}

自定义一个删除窗口类,用于删除词库中所存在的单词及其解释

(5) ModifyWin extends JFrame implements ActionListener{}

 

3

贵州大学实习报告专用纸

 

自定义一个修改窗口类,用于修改词库中所存在的单词及其解释

(6) class HelpFrame extends JFrame {}

自定义一个帮助窗口类,用不可编辑的文本域的窗体对该词典的功能

做简要的说明

3、界面设计思想

创建窗体,设计菜单。

定义菜单条 JMenu mfile(文件)、medit(编辑)、

mhelp(帮助),菜单子项 JMenuItem edic(英汉词典)、cdic(汉英词典)、back_data

(备份词库)、quit(退出)、addedit(添加词汇)、modedi(修改词汇)、deledit

(删除词汇)、hhelp(帮助)、about(关于)。

通过 add( )方法将菜单子项添加

到菜单中,并注册监听者。

定义一个文件对话框 filedialog_save,并为之增加

适配器。

自定义一个面板,实现 GUI 元素的布局。

4、方法定义说明

(1)定义方法 actionPerformed(),内用 if 语句实现按钮监听:

public void actionPerformed(ActionEvent e)

(2)定义方法 Listwords(),实现查询功能

public void Listwords() throws SQLException

(3)定义方法删除(),实现删除功能

public void 删除() throws SQLException

(4)定义方法添加(),实现添加功能

public void 添加() throws SQLException

(5)定义方法修改(),实现修改功能

public void 修改() throws SQLException

5、数据库说明

Java 数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。

JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯 Java API

来编写数据库应用程序。

然而各个开发商的接口并不完全相同,所以开发环境的

变化会带来一定的配置变化。

本系统采用的是 Access 数据库的连接方式,Access

数据库使用 ODBC 直连 方式如下:

加载驱动程序:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;

与数据库建立连接:

Stringurl="jdbc:

odbc:

Driver={MicroSoft

 

4

Access     Driver

贵州大学实习报告专用纸

 

(*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");

Connection conn = DriverManager.getConnection(url,"","");

创建 JDBC Statement 对象:

Statement stmtNew=conn.createStatement() ;

注意:

首先要配置数据源:

控制面版->管理工具->数据源->系统 DSN->添加->选择 Microsort Access

Drive(*.mdb)->完成->写个数据源名(随意)->选择->找到你的 access 文件->确

定,接下来再进行你的操作。

 

三、详细设计

本系统是通过对类对象的引用,以及函数的调用实现类之间的连接的。

建窗体,GUI(标签,文本框,按钮),用 add( )方法加入容器,进而进行布局,

用 addActionListener( )方法为按钮或者菜单条按钮注册事件监听者,通过监

听者方法调用(事件源,处理代码)对按钮触发。

1、添加功能的实现:

public void 添加() throws SQLException{

String cname,ename;

try

{class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch(ClassNotFoundException e){}

Con = DriverManager.getConnection("jdbc:

odbc:

Driver=

{MicroSoft Access Driver (*.mdb)};

DBQ=english\\english.mdb","","");

Stmt=Con.createStatement();

ResultSet rs=Stmt.executeQuery("SELECT * FROM 表 1");

boolean boo=false;

while((boo=rs.next())==true)

{

 

5

贵州大学实习报告专用纸

 

ename=rs.getString("单词");

cname=rs.getString("解释");

if(ename.equals(添加英语单词_文本条.getText()))

{

JOptionPane.showMessageDialog(this,

"此词汇已存在!

","警告",

JOptionPane.WARNING_MESSAGE);

break;

}

}

if(boo==false)

{

String s1="'"+添加英语单词_文本

条.getText().trim()+"'",s2="'"+添加汉语解释_文本

条.getText().trim()+"'";

String temp="INSERT INTO 表 1 VALUES ("+s1+","+s2+")";

Stmt.executeUpdate(temp);

JOptionPane.showMessageDialog(this,"添加成功!

","恭喜",

JOptionPane.WARNING_MESSAGE);

dispose();

}

Con.close();}

2、删除功能的实现:

public void 删除() throws SQLException{

String cname,ename;

try

{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch(ClassNotFoundException e){}

Con = DriverManager.getConnection

 

6

贵州大学实习报告专用纸

 

("jdbc:

odbc:

Driver={MicroSoft Access Driver

(*.mdb)};DBQ=english\\english.mdb","","");

Stmt=Con.createStatement();

ResultSet rs=Stmt.executeQuery("SELECT * FROM 表 1");

boolean boo=false;

while((boo=rs.next())==true)

{

ename=rs.getString("单词");

cname=rs.getString("解释");

if(ename.equals(删除单词_文本条.getText()))

{

String s1="'"+删除单词_文本

条.getText().trim()+"'"

String temp="DELETE FROM 表 1 WHERE 单词="+s1;

Stmt.executeUpdate(temp);

JOptionPane.showMessageDialog(this,

"成功删除记录!

","恭喜",

JOptionPane.WARNING_MESSAGE);

dispose();

break;

}

}

Con.close();

if(boo==false)

{

JOptionPane.showMessageDialog(this,

"不存在此单词!

","警告",

JOptionPane.WARNING_MESSAGE);

}

 

7

贵州大学实习报告专用纸

 

}

3、修改功能的实现:

public void 修改() throws SQLException{

String cname,ename;

try

{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e){}

Con = DriverManager.getConnection

("jdbc:

odbc:

Driver={MicroSoft Access Driver

(*.mdb)};DBQ=english\\english.mdb","","");

Stmt=Con.createStatement();

ResultSet rs=Stmt.executeQuery("SELECT * FROM 表 1");

boolean boo=false;

while((boo=rs.next())==true)

{

ename=rs.getString("单词");

cname=rs.getString("解释");

if(ename.equals(修改英语单词_文本条.getText()))

{

String s1="'"+修改英语单词_文本

条.getText().trim()+"'",s2="'"+修改汉语解释_

文本条.getText().trim()+"'";

String temp="UPDATE 表 1 SET 解释="+s2+"

WHERE 单词 = "+s1;

Stmt.executeUpdate(temp);

JOptionPane.showMessageDialog(this,

"记录修改成功!

","恭喜",

JOptionPane.WARNING_MESSAGE);

dispose();

 

8

贵州大学实习报告专用纸

 

break;

}

}

Con.close();

if(boo==false)

{

JOptionPane.showMessageDialog(this,

"不存在此单词!

","警告",

JOptionPane.WARNING_MESSAGE);

}}

4、实现按钮监听的实现:

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{

try{Listwords();}

catch(SQLException ee){ }

}

}

else if(e.getSource()==b2||e.getSource()==addedit)

{ AddWin add = new AddWin();}//AddWin 是添加窗口的类

else if(e.getSource()==b3||e.getSource()==modedit)

 

9

贵州大学实习报告专用纸

 

{ 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);

}

else if(e.getSource()==cdic) //汉英

{

label.setText("输入要查询的汉语意思:

");

b1.setVisible(true);

}

else if(e.getSource()==back_data) //备份

{

File fromfile = new File("english\\english.mdb");

FileInputStream fis = null;

filedialog_save.setVisible(true);

try{

fis = new FileInputStream(fromfile);

int bytesRead;

//定义变量来存储输入流中读取出来的文件

byte[] buf = new byte[4*1024];//4K buffer

File tofile = new

File(filedialog_save.getDirectory(),

filedialog_save.getFile());

FileOutputStream fos = new FileOutputStream(tofile);

while((bytesRead = fis.read(buf))!

=-1)

 

10

贵州大学实习报告专用纸

 

{ 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 Dictionary\n \n"

+"An application written to show off the function of

dictionary.\n \n"

+"JAVA 课程设计杨汝洁\n\n"

+"Copyright (c) 2008 by Edith.All rights Reserved.";

JOptionPane.showMessageDialog(topFrame,AboutMsg);

}

else if(e.getSource()==hhelp)//帮助

{

HelpFrame help = new HelpFrame();

help.setVisible(true);

}}

5、实现查询功能的实现

public void Listwords() throws SQLException//

{

String cname,ename;

try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch(ClassNotFoundException e){}

String url="jdbc:

odbc:

English"; //建立桥接器

Connection Ex1Con = DriverManager.getConnection

("jdbc:

odbc:

Driver={MicroSoft Access Driver

 

11

贵州大学实习报告专用纸

 

(*.mdb)};DBQ=english\\english.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("单词");

 

12

贵州大学实习报告专用纸

 

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 所示:

 

13

贵州大学实习报告专用纸

 

图 4.2

(1)英汉词典:

在文本框中输入要查询的英文单词,单击“查询”,英文单

词对应的中文解释及其词性便会出现在文件对话框中,如图 4.3 所示:

 

图 4.3

如果所查单词不存在于词库中,则会弹出“警告” 说明“查无此词” 如图

4.4 所示;如果是没有输入直接点击“查询”,则会弹出“警告”,说明“查询

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2