电子词典系统_第1页
电子词典系统_第2页
电子词典系统_第3页
电子词典系统_第4页
电子词典系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要随着现代科学技术的不断发展,各种新兴技术也渗透到了人们生活的各个领域。中国与世界的接轨,使得英语这门学科越加重要起来,无论是学生还是在社会上的工作人士,都需要懂得英语这门语言。于是,国内有了空前的英语热。英语是热了起来,但是人们在学习过程中却越来越深刻的感觉到在查阅英语生词方面需要耗费大量的学习时间,为了提高人们的学习生活效率,为了给学生们一个更简便的学习过程,于是就有了电子词典。1983 年第一台英德双向袖珍电子词典诞生于德国,重约70 克,收词仅4000 个,曾用了三分钟才查到cewichet。自那以后,电子词典经历了三代更新,大家比较熟悉的是第三第四代产品。电子词典检索迅速,携带方便

2、,受到大中学生的普遍欢迎,据笔者在三个班级共1 80人中做的调查大约有76 %学生拥有袖珍电子词典。电子词典作为一种新兴产业,其学习方面的功能也越来越得到广大教师、同学、家长的认可。在本次实训中,我们小组开发的正是电子词典及其功能的实现,其功能主要涵盖了以下几个方面:在系统查阅方面将所要查询的英语单词译成汉语,完成英译汉功能;将汉语译成英语单词,完成汉译英功能。还有包括像单词的发音功能、单词库扩展功能、帮助系统、娱乐天地等。关键词:电子词典 单词 查询 功能目录摘要I1引言.12设计内容22.1小组总体框架.22.1.1系统总体功能介绍.22.1.2系统总体功能模块图.22.2电子词典的主要功

3、能模块.32.3扫雷游戏模块的功能.32.3.1扫雷游戏中的按扭类功能模块.32.3.2扫雷游戏中的主功能模块.32.4小组分工表.33数据库设计43.1数据库需求分析.43.2数据库表设计.44系统功能的具体实现54.1电子词典的主程序功能及界面.5 4.1.1电子词典的主程序功能.5 4.1.2电子词典的主程序界面.54.2扫雷游戏的程序功能代码及界面.5 4.2.1扫雷游戏的程序功能.5 4.2.2程序主界面.6 4.2.3程序运行界面.6 4.2.4程序代码.7结论.15致谢.16参考文献.171 引言在这一周的实训中,我们小组开发的课题是电子词典功能的实现。电子词典作为一种学习工具,

4、有着不可估量的市场前景。作为一名当代大学生,我们在学习英语的时候会经常碰到很多的生词,有时,为了读懂一篇文章,经常是读文章用一小时,但是其中却有半个小时都在翻阅英语词典。所以我们小组为了解决这一问题,才将选材方向定位于电子词典的功能实现,主要的目的就是为同学们解决这一问题。在做电子词典功能实现的时候,我们小组主要从以下几个方面入手,即:英汉互译、汉英互译、单词发音。在英译汉、汉译英这两个功能模块上,我们首先提供了一个查询界面,即使用者需要输入要查询的关键字,点击确定按钮,屏幕上就会出现其对应的答案。在做这个模块的时候,我们主要解决了JAVA与数据库的链接问题,进而实现其功能。此外我们还增添了娱

5、乐功能,并在娱乐功能中增加了扫雷和贪吃蛇两个小游戏,它们均是用JAVA程序来实现的。之所以要加入这一模块,是因为我们充分考虑到在学习疲惫之余可以让使用者能够有个放松的空间,缓解同学们的压力,同时也提高其整体的娱乐性。从系统的可扩展性方面考虑,我们在系统中加入了对单词库的添加、删除、修改功能。有了这个功能模块,将给予使用者带来很大的方便。当然也存在一种情况,即刚开始接触而不懂得如何去使用电子辞典,为此我们特地的加入了帮助系统,帮助系统是用JAVA小程序完成的。2 设计内容2.1小组总体框架2.1.1系统总体功能介绍本系统在单词查阅方面主要完成了英译汉、汉译英、单词发音功能;在系统性能方面主要完成

6、了单词库的插入、修改、删除功能以及帮助系统、娱乐天地等。2.1.2系统总体功能模块图本系统总体功能模块图如下所示:图2.1 系统总体功能模块图文件退出系统备份词库汉英词典英汉词典娱乐贪吃蛇扫雷帮助关于帮助修改词汇添加词汇编辑删除词汇电子词典2.2电子词典的主要功能模块系统分为文件、编辑、娱乐、帮助四大模块。“文件”中主要包括:英汉词典、汉英词典、备份词库、退出系统四项。“编辑”中包括:添加词汇、修改词汇、删除词汇。“娱乐”中包括两个小游戏:扫雷和贪吃蛇。“帮助”中包括:帮助信息等。文件功能模块主要完成用户查阅工作,编缉功能模块主要完成对单词库的添加、修改及删除操作。娱乐功能模块主要完成对游戏的

7、操作。帮助功能模块主要完成对系统介绍等一系列帮助信息。2.3扫雷游戏模块的功能2.3.1扫雷游戏中的按扭类功能模块本游戏中创建了一个按扭类,按扭类的主要功能是定义实例变量为实例变量赋初始值,以便在能很好的在整个程序中运行。按扭类主要包括的实例变量有:public int num_x,num_y; /第几号方块 public int BombRoundCount; /周围雷数 public boolean isBomb; /是否为雷 public boolean isClicked; /是否被点击 public int BombFlag; /探雷标记 public boolean isRight

8、; /是否点击右键这些变量和方法在程序中都有很大的用处。2.3.2扫雷游戏中的主功能模块主功能模块实现了游戏的运行、判断、以及设置等多项任务。其中判断模块最为主要,是游戏成功与否的关键。主程序中包括:窗口及算法实现类,它创建了class MainBomb extends JFrame implements ActionListener,MouseListener类。2.4小组分工表职务姓名主要工作组长主界面的设计实现、英译汉、汉译英、单词发音功能组员娱乐模块中扫雷游戏的设计与实现组员单词数据库的添加、修改、删除功能实现组员数据库的备份和帮助系统组员娱乐模块中贪吃蛇游戏的设计与实现3数据库设计3

9、.1数据库需求分析目前电子词典的应用很广泛,其体积小、价格低、实用性强,作为学习工具,有着很广泛的市场。在以前,同学们学习英语时都要用人工的方法去查阅生词,不仅浪费了大量的学习时间,学习效率无法提高。可以说,查阅英语生词成为了很多学习英语同学在学习方面的瓶径。电子词典的出现,就是针对这一问题。这里的设计就是实现英汉互译、单词发音,为了体现它的可扩展性,使用者也可以自己添加、删除或修改其单词库。同时,根据市场的要求,我们也加入了一定的娱乐功能,从而真正实现信息化。3.2数据库表设计英语词汇表字段名字段类型长度备注单词TEXT50主键解释TEXT504系统功能的具体实现4.1电子词典的主程序功能及

10、界面4.1.1 电子词典的主程序功能本系统的主程序功能是完成对用户的查询操作,及用户对单词库的操作;还有附加的娱乐功能。4.1.2电子词典的主程序界面电子词典的主程序界面如图: 图4.1.2电子词典的主程序界面4.2扫雷游戏的程序功能代码及界面4.2.1扫雷游戏的程序功能本游戏的功能主要以挖雷为主,主要的功能类包括:按扭类:是实现主程序中各变量的定义,初值和按扭定义。窗口及算法实现类:主程序的各种方法和功能,包括界面设计、布雷、重新开始、是否挖完了所有的雷、计算方块周围雷数、当选中的位置为空,则翻开周围的地图、踩雷等。4.2.2程序主界面扫雷程序主界面如下: 图4.2.2扫雷程序主界面4.2.

11、3程序运行界面扫雷程序运行界面如下图: 图4.2.3扫雷程序运行界面4.2.4程序代码import java.awt.*; import java.awt.event.*; import javax.swing.*;/*按扭类*/class Bomb extends JButton public int num_x,num_y; /第几号方块 public int BombRoundCount; /周围雷数 public boolean isBomb; /是否为雷 public boolean isClicked; /是否被点击 public int BombFlag; /探雷标记 publi

12、c boolean isRight; /是否点击右键 public Bomb(int x,int y) BombFlag = 0; num_x = x; num_y = y; BombRoundCount = 0; isBomb = false; isClicked = false; isRight = false; /*窗口及算法实现类*/class MainBomb extends JFrame implements ActionListener,MouseListener public JTextField text; public Label nowBomb,setBomb; publ

13、ic int BlockNum,BombNum; /当前方块数当前雷数 public Icon icon_bomb = new ImageIcon(Bomb.gif); /雷 public Icon icon_bomb_big = new ImageIcon(bomb_big.gif); /踩雷标记 public Icon icon_flag = new ImageIcon(flag.gif); /扫雷标记 public Icon icon_question = new ImageIcon(question.gif); /疑惑是否有雷 public JButton start = new JB

14、utton( 开始 ); public Panel MenuPamel = new Panel(); public Panel mainPanel = new Panel(); public Bomb bombButton; /*界面设计*/ MainBomb() super(扫雷); BlockNum = 64; BombNum = 10; Container c=getContentPane(); c.setBackground(Color.gray); c.setLayout(new BorderLayout(); text=new JTextField(10 ,3); nowBomb

15、= new Label(当前雷数:+ +BombNum+); setBomb= new Label(设置地雷数(10到49):); start.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) BombNum = Integer.parseInt(text.getText().trim(); if(BombNum = 10 & BombNum 50 ) replay(); else JOptionPane msg = new JOptionPane(); JOptionPane.s

16、howMessageDialog(null,您设置的地雷数不正确,请重设!,错误,2); ); MenuPamel.add(setBomb); MenuPamel.add(text); MenuPamel.add(start); MenuPamel.add(nowBomb); c.add(MenuPamel,North); mainPanel.setLayout(new GridLayout( (int)Math.sqrt(BlockNum) , (int)Math.sqrt(BlockNum) ); bombButton=new Bomb (int)Math.sqrt(BlockNum) ;

17、 for(int i = 0 ; i (int)Math.sqrt(BlockNum) ; i+) bombButton i =new Bomb (int)Math.sqrt(BlockNum) ; for(int i = 0 ; i (int)Math.sqrt(BlockNum) ; i+ ) for(int j = 0 ; j (int)Math.sqrt(BlockNum) ; j+ ) bombButton i j =new Bomb(i,j); bombButton i j .setForeground( Color.gray); bombButton i j .addAction

18、Listener(this); bombButton i j .addMouseListener(this); for(int i = 0 ; i (int)Math.sqrt(BlockNum) ; i+ ) for(int j = 0 ; j (int)Math.sqrt(BlockNum) ; j+ ) mainPanel.add(bombButton i j ); c.add(mainPanel,Center); startBomb(); setSize(400,400); setLocation(350,200); setResizable(false); /*布雷*/ public

19、 void startBomb() for(int i=0;iBombNum;i+) int x =(int)(Math.random()*(int)(Math.sqrt(BlockNum)-1); int y =(int)(Math.random()*(int)(Math.sqrt(BlockNum)-1); if(bombButton x y .isBomb=true) i-; else bombButton x y .isBomb=true ; /*重新开始*/ public void replay() nowBomb.setText(当前雷数+ +BombNum+); for(int

20、i = 0 ; i (int)Math.sqrt(BlockNum) ; i+) for(int j = 0 ; j (int)Math.sqrt(BlockNum) ; j+) bombButton i j .isBomb=false; bombButton i j .isClicked=false; bombButton i j .setEnabled(true); bombButton i j .setText(); bombButton i j .setIcon(null); startBomb(); /*是否挖完了所有的雷*/ public void isWin() int find

21、Bomb=0; /找到的地雷数 for(int i = 0;i (int)Math.sqrt(BlockNum) ; i+) for(int j = 0;j (int)Math.sqrt(BlockNum ); j+) if(bombButton i j .isBomb = true & bombButton i j .isRight = true) findBomb+; if( findBomb = Integer.parseInt(text.getText().trim() ) JOptionPane msg = new JOptionPane(); JOptionPane.showMes

22、sageDialog(this,您挖完了所有的雷,您胜利了!,您胜利了,2); /*计算方块周围雷数 */ public void CountRoundBomb() for (int i = 0; i (int)Math.sqrt(BlockNum); i+) for (int j = 0; j = 0) & (j - 1 = 0) if (bombButtoni - 1j - 1.isBomb = true) count += 1; /检测左上方空格是否是地雷 if ( (i - 1 = 0) if (bombButtoni - 1 j .isBomb = true) count += 1;

23、 /检测上方空格是否为地雷 if ( (i - 1 = 0) & (j + 1 = 0) if (bombButton i j - 1 .isBomb = true) count += 1; /检测左边是否为地雷 if ( (i = 0) & (j + 1 = 0) & (i + 1 = (int)Math.sqrt(BlockNum)-1) if (bombButtoni + 1j - 1.isBomb = true) count += 1; /检测左下是否为地雷 if ( (i + 1 = (int)Math.sqrt(BlockNum)-1) if (bombButtoni + 1 j

24、.isBomb = true) count += 1; /检测下方是否为地雷 if ( (j + 1 = (int)Math.sqrt(BlockNum)-1) & (i + 1 = 0) & (j - 1 = 0) /检测左上方空格是否是空 if (bombButtoni - 1j - 1.isBomb = false & bombButtoni - 1j - 1.isClicked = false & bombButtoni - 1j - 1.isRight = false) bombButtoni - 1j - 1.setText(bombButtoni - 1j - 1.BombRou

25、ndCount)+); bombButtoni - 1j - 1.setEnabled(false); bombButtoni - 1j - 1.isClicked=true; if ( (i - 1 = 0) /检测上方空格是否为空 if (bombButtoni - 1 j .isBomb = false & bombButtoni - 1 j .isClicked = false & bombButtoni - 1 j .isRight = false) bombButtoni - 1 j .setText(bombButtoni - 1 j .BombRoundCount)+); bo

26、mbButtoni - 1 j .setEnabled(false); bombButtoni - 1 j .isClicked=true; if ( (i - 1 = 0) & (j + 1 = 0) /检测左边是否为空 if (bombButton i j - 1.isBomb = false & bombButton i j - 1.isClicked = false & bombButton i j - 1.isRight = false) bombButton i j - 1.setText(bombButton i j - 1.BombRoundCount)+); bombButt

27、on i j - 1.setEnabled(false); bombButton i j - 1.isClicked=true; if ( (i = 0) & (j + 1 = 0) & (i + 1 = (int)Math.sqrt(BlockNum)-1) ) /检测左下空格是否是空 if (bombButtoni + 1j - 1.isBomb = false & bombButtoni + 1j - 1.isClicked = false & bombButtoni + 1j - 1.isRight = false) bombButtoni + 1j - 1.setText(bombB

28、uttoni + 1j - 1.BombRoundCount)+); bombButtoni + 1j - 1.setEnabled(false); bombButtoni + 1j - 1.isClicked=true; if ( (i + 1 = (int)Math.sqrt(BlockNum)-1) ) /检测下边空格是否是空 if (bombButtoni + 1 j .isBomb = false & bombButtoni + 1 j .isClicked = false & bombButtoni + 1 j .isRight = false) bombButtoni + 1 j

29、 .setText(bombButtoni + 1 j .BombRoundCount)+); bombButtoni + 1 j .setEnabled(false); bombButtoni + 1 j .isClicked=true; if ( (j + 1 = (int)Math.sqrt(BlockNum)-1) ) & (i + 1 = 0) & (j - 1 = 0)/检测左上边空格是否是空 isNull(bombButton,bombButtoni - 1j - 1); if ( (i - 1 = 0) isNull( bombButton,bombButtoni - 1 j

30、);/检测上方边空格是否是空 if ( (i - 1 = 0) & (j + 1 = 0) isNull(bombButton,bombButtonij - 1);/检测左边空格是否是空 if ( (i = 0) & (j + 1 = 0) & (i + 1 = (int)Math.sqrt(BlockNum)-1) ) isNull(bombButton,bombButtoni + 1j - 1); /检测左下边空格是否是空 if ( (i + 1 = (int)Math.sqrt(BlockNum)-1) ) /检测下边空格是否是空 isNull(bombButton,bombButton

31、i + 1 j ); if ( (j + 1 = (int)Math.sqrt(BlockNum)-1) & (i + 1 = (int)Math.sqrt(BlockNum)-1) ) /检测右下边空格是否是空 isNull(bombButton,bombButtoni + 1j + 1); /踩雷 public void actionPerformed(ActionEvent e) CountRoundBomb(); if(Bomb)e.getSource().isBomb=false & (Bomb)e.getSource().isClicked = false) (Bomb)e.getSource().setText( (Bomb)e.getSource(

温馨提示

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

最新文档

评论

0/150

提交评论