数据结构课程设计报告简易英汉词典系统_第1页
数据结构课程设计报告简易英汉词典系统_第2页
数据结构课程设计报告简易英汉词典系统_第3页
数据结构课程设计报告简易英汉词典系统_第4页
数据结构课程设计报告简易英汉词典系统_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、广西大学课程设计报告课程: 数据结构题目:简易英汉词典系统学 院:_计算机与电子信息学院_ 专 业:_计网类_ 班 级:_计网071_ _ _ 学 号: 0 学生姓名: 指导教师:_ _ 二九 年 四 月一、实验目的和要求【实验目的】设计一个简易英汉词典系统,实现基本的单词检索功能,即输入英文单词则系统输出其汉语,反之亦然;并能够进行基本的词典维护操作,包括插入和删除,要求按英语的词典顺序排列单词。【设计要求】(1)使用图形化界面。(2)建立英语词汇表,输入为小写字母时为合法输入。(3)每个词条应包含单词的英语形式、汉语释义、发音等基本信息。二、设计概要:1、根据实验要求,与及所了解的数据类型

2、相关知识,定义了如下数据类型:链接数据库声明的变量:connection connection = null;statement statement = null;resultset result = null;声明全局变量:string newword, pronunciations, indexword=, deleteword, searchenglish, searchchinese,issound;它们分别是:新增单词、新单词音标、引擎词、删除词、查找的英文、查找的汉语、判断音频是否存在。2、实验功能所定义的各种按钮、文本框、选择框和列表框:取消删除功能按钮:jbutton dele

3、tecancelbutton = new jbutton();英汉互译面板上的发音按钮:jbutton sound = new jbutton();浏览词库面板上的发音按钮:jbutton scansoundbutton = new jbutton();添加单词的按钮:jbutton addokjbutton = new jbutton();取消添加功能的按钮:jbutton addcancelbutton = new jbutton();删除词库单词信息按钮:jbutton deleteokbutton = new jbutton();浏览词库按钮:jbutton scanbutton =

4、new jbutton();要查找的英文或汉语的文本框输入框:jtextfield inputsearchword = new jtextfield();新增单词文本输入框:jtextfield inputnewword = new jtextfield();新增单词音标输入框:jtextfield pronunciation = new jtextfield();新增单词释义输入框:jtextfield newwordchinese = new jtextfield();新增单词过去式输入框:jtextfield newwordpreterite = new jtextfield();新增单

5、词现在进行时态输入框:jtextfield newwordmodernism = new jtextfield();要删除的单词输入框:jtextfield inputdeleteword = new jtextfield();新增单词词性复选框:jcombobox newwordclass = new jcombobox();列出要查找的词的记录信息的多行文本框:textarea outputsearchenglish = new textarea();列出要删除的单词的记录信息的多行文本框:textarea deletewordchinese = new textarea();列出浏览时需

6、浏览单词信息的多行文本框: textarea scanoutput = new textarea();defaultlistmodel model = new defaultlistmodel(); 列出所查找的英文或汉语对应的单词的列表框:jlist listsearchenglish = new jlist(model);列出备选英标的列表框:jlist pronunciationjlist = new jlist(listitem);列出可能且可以被删除的单词的列表框:jlist deletejlist = new jlist(model);列出词库所有单词的列表框: jlist sca

7、nwordjlist = new jlist(model);3、实现功能所定义的各种函数:1)public static string return(string str) 将数据库里的单词的音标进行还原。因为有些音标不能正确存入数据库,只能以其它字符代替,读取时再还原。2)public void play(string word) 播放单词word的音频。3)public void inputsearch_caretupdate(caretevent e) 当inputsearch(注:要查找的词)输入框值改变时,listsearchenglish(注:列出查找结果)列表框和outputse

8、archenglish(注:写出单词信息)文本输出框被清空,取inputsearch输入框值赋给indexword,如果indexword不为空,连接数据库;再判断要查找的是英语,还是汉语,根据判断结果进行查找,并将结果集按升序排列,输出到listsearchenglish列表框4)public void listsearchenglish_mouseclicked(mouseevent me) 当鼠标单击listsearchenglish列表框时,取所选选项的值赋给变量searchenglish,去掉其两端空格,outputsearchenglish文本输出框被清空,发音按钮变成灰白色,从数

9、据库读取要查找的单词,将其音标进行还原,将单词信息输出到outputsearchenglish文本框,如果可以发音,发音按钮变红色,否则indexword被赋给空值5)public void sound_actionperformed(actionevent e) 如果查找单词有音频且查找词不为空,则可发音,否则按钮变为灰白色6)public void inputnewword_caretupdate(caretevent e) 一旦输入的新单词字母不是小写字母或空格时,弹出提示框7)public void pronunciation_caretupdate(caretevent e) 对输入

10、的音标进行处理,因为字符u0254、u01dd、u00e6 存入数据库时会变成?或出错,所以用0、1、2、4分别代替他们,读取时通过调用return函数还原,且将音标两端和中间空格去掉8)public void pronunciationjlist_mouseclicked(mouseevent me) 当在音标选项列表单击鼠标选择音标时,将所选音标输入音标输入框9)public void addokjbutton_actionperformed(actionevent e) 读取未读取的输入框的字符,去掉单词、注释各自两端空格,并将去掉它们各自中间两个或两个以上的空格留一个空格,接着在数据库

11、查找添加的单词是否已存在,若已存在,弹出提示框,不能再添加,否则向数据库添加新单词信息,最后清空所有输入框10)public void addcancelbutton_actionperformed(actionevent e)点击添加取消按钮,新增面板所有输入框被清空11)public void inputdeleteword_caretupdate(caretevent e)当inputdeleteword输入框值改变时,清空deletejlist列表框,读取inputdeleteword输入框值赋给变量deleteword,按模糊查找法查找以deleteword的值开头的所有单词,按升序

12、排列,并将他们输出到deletejlist列表框12)public void deletejlist_mouseclicked(mouseevent me) 当在deletejlist列表框单击选项时,读取选项值赋给deleteword变量,并去掉其两端空格,向inputdeleteword输入框输入deleteword变量值,接着从数据库读取要删除的单词的信息,如某属性不为空,将其输入到eletewordchinese多行文本框13)public void deleteokbutton_actionperformed(actionevent e) 单击删除按钮,如果输入框为空,则弹出提示框,

13、否则从数据库中删除要删除的单词的所有记录14)public void deletecancelbutton_actionperformed(actionevent e) 单击取消按钮,inputdeleteword、deletewordchinese都被清空15)public void scanbutton_actionperformed(actionevent e) 单击浏览按钮,scanwordjlist列表框被清空,然后从数据库读取所有单词,按升序排列;然后将所得结果集输入到scanwordjlist列表框16)public void scanwordjlist_mouseclicked

14、(mouseevent me) 当鼠标单击scanwordjlist列表框时,取所选选项的值赋给变量ndexword,去掉其两端空格,scanoutput文本框被清空,发音按钮变成灰白色,从数据库读取要查找的单词(indexword的值),将其音标进行还原,将单词信息输出到scanoutput文本框,如果可以发音,发音按钮变红色,否则indexword被赋给空值17)public void soundbutton_actionperformed(actionevent e) 如果查找单词有音频且查找词不为空,则可发音,否则按钮变为灰白色三、程序模块流程图开始英汉互译是否输入?是否是英文查找英文

15、查找汉译列出找到的单词单击?列出单词信息清空列表框和多行文本框是否找到显错错误添加词汇输入单词?是否合法弹出提示信息是否选择备选音标写入音标输入框单击添加按钮输入单词?弹出警告成功?显示错误提示成功单击取消按钮清空所有输入框是否已存在保存所有信息不能添加可否发音结束发音按钮变红结束ynyynyynnynyyyny单击发音删除词汇输入?模糊查找是否匹配列出找到的单词单击选择?列出单词信息并把单词写入输入框点击删除按钮是否有单词弹出提示信息删除该单词点击取消按钮清空各框内内容浏览词库按升序列出词库单词是否被单击列出单词信息可否发音发音按钮变红单击浏览按钮发音按钮是否红结束结束ynynyynnyyn

16、y单击发音四、具体程序设计代码package languanhengdictionary;import java.awt.borderlayout;import java.sql.*;import java.io.file;import java.io.ioexception;import javax.sound.sampled.audiosystem;import javax.sound.sampled.lineunavailableexception;import javax.sound.sampled.unsupportedaudiofileexception;import javax.

17、sound.sampled.audioinputstream;import javax.sound.sampled.audioformat;import javax.sound.sampled.sourcedataline;import javax.sound.sampled.dataline;import javax.swing.jframe;import javax.swing.jtabbedpane;import java.awt.rectangle;import javax.swing.jpanel;import javax.swing.jlabel;import java.awt.f

18、ont;import java.awt.color;import javax.swing.jtextfield;import javax.swing.jbutton;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.jtextarea;import java.awt.textarea;import java.awt.dimension;import java.awt.choice;import java.awt.event.itemevent;import java

19、.awt.event.itemlistener;import java.awt.checkbox;import javax.swing.jcombobox;import javax.swing.jlist;import javax.swing.joptionpane;import java.awt.*;import javax.swing.jscrollpane;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;import javax.swing.defaultlistmodel;import java.a

20、wt.event.hierarchylistener;import java.awt.event.hierarchyevent;import javax.swing.event.caretlistener;import javax.swing.event.caretevent;import javax.swing.border.titledborder;import javax.swing.uimanager;import javax.swing.borderfactory;import java.io.*;import javax.swing.border.border;public cla

21、ss englishframe extends jframe connection connection = null; statement statement = null; resultset result = null; public englishframe() try jbinit(); catch (exception exception) exception.printstacktrace(); private void jbinit() throws exception getcontentpane().setlayout(null); mainjp.setfont(new j

22、ava.awt.font(宋体, font.plain, 25); mainjp.setforeground(new color(0, 242, 118); mainjp.setborder(titledborder1); mainjp.settooltiptext(); mainjp.setbounds(new rectangle(2, 51, 543, 295); searchenglishorchinesejp.setlayout(null); addwordjp.setlayout(null); deletejp.setlayout(null); scanstock.setlayout

23、(null); jlabel2.setfont(new java.awt.font(宋体, font.plain, 20); jlabel2.setforeground(new color(0, 180, 62); jlabel2.settext(输入引擎词); jlabel2.setbounds(new rectangle(8, 16, 106, 43); inputsearchword.setfont(new java.awt.font(宋体, font.plain, 20); jscrollpane1.setbounds(new rectangle(118, 60, 145, 178);

24、 listsearchenglish.setfont(new java.awt.font(宋体, font.plain, 20); listsearchenglish.setforeground(color.blue); listsearchenglish.setselectionbackground(new color(51, 255, 104); outputsearchenglish.setfont(new java.awt.font(宋体, font.plain, 20); outputsearchenglish.setbounds(new rectangle(267, 59, 227

25、, 179); jlabel4.setfont(new java.awt.font(宋体, font.plain, 25); jlabel4.setforeground(new color(0, 180, 0); jlabel4.settext(新单词); jlabel4.setbounds(new rectangle(6, 9, 81, 34); inputnewword.setfont(new java.awt.font(宋体, font.plain, 20); inputnewword.setbounds(new rectangle(93, 11, 155, 34); jlabel5.s

26、etfont(new java.awt.font(宋体, font.plain, 25); jlabel5.setforeground(new color(0, 159, 14); jlabel5.settext(发 音); jlabel5.setbounds(new rectangle(6, 118, 76, 33); jlabel6.setfont(new java.awt.font(宋体, font.plain, 25); jlabel6.setforeground(new color(0, 173, 55); jlabel6.settext(词 性); jlabel6.setbound

27、s(new rectangle(7, 63, 81, 35); pronunciation.setfont(new java.awt.font(arial unicode ms, font.plain,20); pronunciation.setbounds(new rectangle(92, 119, 154, 36); newwordclass.setbounds(new rectangle(95, 62, 154, 36); jscrollpane3.setbounds(new rectangle(93, 156, 154, 79); jlabel7.setfont(new java.a

28、wt.font(宋体, font.plain, 25); jlabel7.setforeground(new color(0, 208, 48); jlabel7.settext(注 释); jlabel7.setbounds(new rectangle(267, 9, 72, 34); newwordchinese.setfont(new java.awt.font(宋体, font.plain, 20); newwordchinese.setbounds(new rectangle(354, 11, 164, 34); jlabel8.setfont(new java.awt.font(宋

29、体, font.plain, 25); jlabel8.setforeground(new color(0, 187, 0); jlabel8.settooltiptext(); jlabel8.settext(过去式); jlabel8.setbounds(new rectangle(264, 62, 77, 32); newwordpreterite.setfont(new java.awt.font(宋体, font.plain, 20); newwordpreterite.setbounds(new rectangle(353, 61, 164, 36); jlabel9.setfon

30、t(new java.awt.font(宋体, font.plain, 25); jlabel9.setforeground(new color(0, 187, 21); jlabel9.settext(现代式); jlabel9.setbounds(new rectangle(263, 122, 75, 31); newwordmodernism.setfont(new java.awt.font(宋体, font.plain, 20); newwordmodernism.setbounds(new rectangle(353, 121, 163, 37); addokjbutton.set

31、bounds(new rectangle(261, 179, 83, 40); addokjbutton.setfont(new java.awt.font(宋体, font.plain, 20); addokjbutton.settext(确定); addcancelbutton.setbounds(new rectangle(407, 182, 83, 37); addcancelbutton.setfont(new java.awt.font(宋体, font.plain, 20); addcancelbutton.settext(取消); jlabel10.setfont(new ja

32、va.awt.font(宋体, font.plain, 25); jlabel10.setforeground(new color(0, 187, 62); jlabel10.settext(输入词汇); jlabel10.setbounds(new rectangle(6, 33, 107, 34); inputdeleteword.setfont(new java.awt.font(宋体, font.plain, 20); inputdeleteword.setbounds(new rectangle(112, 31, 186, 37); deletewordchinese.setfont

33、(new java.awt.font(宋体, font.plain, 20); deletewordchinese.setbounds(new rectangle(112, 69, 185, 168); jscrollpane4.setbounds(new rectangle(297, 31, 139, 206); deletejlist.setfont(new java.awt.font(宋体, font.plain, 20); deletejlist.setforeground(color.blue); deletejlist.setselectionbackground(new colo

34、r(51, 255, 0); deleteokbutton.setbounds(new rectangle(437, 31, 83, 38); deleteokbutton.setfont(new java.awt.font(楷体, font.plain, 20); deleteokbutton.setforeground(new color(0, 187, 55); deleteokbutton.settext(删除); scanbutton.setforeground(new color(0, 214, 0); scanbutton.settext(浏览); jscrollpane5.se

35、tbounds(new rectangle(25, 59, 146, 178); scanoutput.setcolumns(5); scanoutput.setfont(new java.awt.font(宋体, font.plain, 20); scanoutput.setbounds(new rectangle(188, 60, 315, 177); scanwordjlist.setfont(new java.awt.font(宋体, font.plain, 20); scanwordjlist.setforeground(color.blue); scanwordjlist.sets

36、electionbackground(color.green); jlabel11.setfont(new java.awt.font(楷体, font.plain, 45); jlabel11.setforeground(new color(0, 255, 138); jlabel11.settext(欢迎访问词库); jlabel11.setbounds(new rectangle(197, 8, 287, 40); deletecancelbutton.setbounds(new rectangle(437, 96, 83, 34); deletecancelbutton.setfont

37、(new java.awt.font(楷体, font.plain, 20); deletecancelbutton.setforeground(new color(0, 221, 42); deletecancelbutton.settooltiptext(); deletecancelbutton.settext(取消); pronunciationjlist.setselectionbackground(new color(51, 255, 125); sound.setbounds(new rectangle(420, 24, 74, 33); sound.setfont(new ja

38、va.awt.font(宋体, font.plain, 20); sound.settooltiptext(); sound.settext(发音); inputsearchword.setbounds(new rectangle(117, 24, 302, 35); scanbutton.setbackground(new color(240, 240, 240); scanbutton.setfont(new java.awt.font(宋体, font.plain, 20); scansoundbutton.setbounds(new rectangle(110, 15, 79, 37)

39、; scansoundbutton.setfont(new java.awt.font(宋体, font.plain, 20); scansoundbutton.settext(发音); scanbutton.setbounds(new rectangle(27, 14, 78, 38); this.getcontentpane().add(mainjp); searchenglishorchinesejp.add(jlabel2); searchenglishorchinesejp.add(jscrollpane1); searchenglishorchinesejp.add(outputs

40、earchenglish); searchenglishorchinesejp.add(inputsearchword); searchenglishorchinesejp.add(sound); jscrollpane1.getviewport().add(listsearchenglish); mainjp.add(searchenglishorchinesejp, 英汉互译); mainjp.add(addwordjp, 添加词汇); addwordjp.add(jlabel4); addwordjp.add(inputnewword); addwordjp.add(jlabel7);

41、addwordjp.add(newwordchinese); addwordjp.add(newwordclass); addwordjp.add(jlabel6); addwordjp.add(newwordpreterite); addwordjp.add(jlabel5); addwordjp.add(jlabel9); addwordjp.add(newwordmodernism); addwordjp.add(jscrollpane3); addwordjp.add(pronunciation); addwordjp.add(addokjbutton); addwordjp.add(

42、addcancelbutton); addwordjp.add(jlabel8); jscrollpane3.getviewport().add(pronunciationjlist); mainjp.add(deletejp, 删除词汇); deletejp.add(jlabel10); deletejp.add(inputdeleteword); deletejp.add(deletewordchinese); deletejp.add(jscrollpane4); deletejp.add(deleteokbutton); deletejp.add(deletecancelbutton)

43、; jscrollpane4.getviewport().add(deletejlist); mainjp.add(scanstock, 浏览词库); scanstock.add(jscrollpane5); jscrollpane5.getviewport().add(scanwordjlist); scanstock.add(scanbutton); scanstock.add(scanoutput); scanstock.add(jlabel11); scanstock.add(scansoundbutton); this.getcontentpane().add(jlabel1); j

44、label1.setfont(new java.awt.font(楷体, font.plain, 45); jlabel1.setforeground(color.blue); jlabel1.settext(蓝氏简易英汉词典); jlabel1.setbounds(new rectangle(107, 5, 374, 47); newwordclass.additem(n. 名词); newwordclass.additem(adj. 形容词); newwordclass.additem(adv. 副词); newwordclass.additem(num. 量词); newwordclas

45、s.additem(v. 动词); newwordclass.additem(vi. 不及物动词); newwordclass.additem(vt. 及物动词); newwordclass.additem(短语); pronunciationjlist.setlayoutorientation(pronunciationjlist.horizontal_wrap); this.setsize(new dimension(560, 385); /第一个参/为长度,第二个参数为高度/-英汉互译模块函数调用-/ /发音按钮监听器 sound.addactionlistener(new action

46、listener() public void actionperformed(actionevent e) sound_actionperformed(e); ); /查找输入框监听器 inputsearchword.addcaretlistener(new caretlistener() public void caretupdate(caretevent e) inputsearch_caretupdate(e); ); /查找单词列表监听器 listsearchenglish.addmouselistener(new mouseadapter() public void mousecli

47、cked(mouseevent e) listsearchenglish_mouseclicked(e); );/-添加面板模块函数调-/ /新单词输入框监听器 inputnewword.addcaretlistener(new caretlistener() public void caretupdate(caretevent e) inputnewword_caretupdate(e); ); /新单词音标输入框监听器 pronunciation.addcaretlistener(new caretlistener() public void caretupdate(caretevent

48、e) pronunciation_caretupdate(e); ); /音标选择列表鼠标监听器 pronunciationjlist.addmouselistener(new mouseadapter() public void mouseclicked(mouseevent e) pronunciationjlist_mouseclicked(e); ); /添加按钮监听器 addokjbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent e) addokjbutton_actionperformed(e); ); / 取消添加单词按钮监听器 addcancelbutton.addactionlistener(new actionlistener() public void actionperformed(actionevent e) addcancelbutton_actionperformed(e); ); /-删除模块函数调用-/ /删除单词输入框监听器 inputdeleteword.addcaretlistener(new caretlistener(

温馨提示

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

评论

0/150

提交评论