電子詞典_java課設(shè)_含可運(yùn)行程序_第1頁
電子詞典_java課設(shè)_含可運(yùn)行程序_第2頁
電子詞典_java課設(shè)_含可運(yùn)行程序_第3頁
電子詞典_java課設(shè)_含可運(yùn)行程序_第4頁
電子詞典_java課設(shè)_含可運(yùn)行程序_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、電子詞典1.課程設(shè)計(jì)的目的本課程設(shè)計(jì)利用Java編程開發(fā)語言,設(shè)計(jì)一個(gè)電子詞典,該詞典主要支持用戶查詢需求,實(shí)現(xiàn)英漢互譯功能,支持用戶自定義詞庫,能夠使用戶對(duì)詞庫進(jìn)行操作,以便用戶獲得更多資料。通過設(shè)計(jì)這個(gè)小詞典,將課堂所學(xué)應(yīng)用于實(shí)際生活中,學(xué)會(huì)運(yùn)用面向?qū)ο箝_發(fā)語言進(jìn)行簡(jiǎn)單程序的設(shè)計(jì),與此同時(shí)也加強(qiáng)了對(duì)Java Swing和Java Awt 包的使用和對(duì)Java相關(guān)知識(shí)的鞏固。本課程設(shè)計(jì)也使用了MS Access數(shù)據(jù)庫做數(shù)據(jù)持久化,不僅豐富了電子詞典的內(nèi)容,同時(shí)也加深了對(duì)數(shù)據(jù)庫的相關(guān)知識(shí)的深入了解,這種跨學(xué)科的綜合設(shè)計(jì),鍛煉了自己的編程和綜合運(yùn)用知識(shí)的能力,為以后的發(fā)展打下了良好基礎(chǔ)。2.設(shè)計(jì)

2、方案論證2.1項(xiàng)目開發(fā)背景近幾年來外語學(xué)習(xí)已經(jīng)變?yōu)橐环N潮流,越來越多的中小學(xué)生擁有自己的電子詞典?,F(xiàn)在的數(shù)字電子詞典容量不斷增大,已發(fā)展到可以自由擴(kuò)充詞庫,或者從網(wǎng)上下載詞庫,對(duì)詞典進(jìn)行自動(dòng)更新。電子詞典的功能的需求也越來越強(qiáng)大,作為一個(gè)計(jì)算機(jī)專業(yè)的學(xué)生,希望根據(jù)英語學(xué)習(xí)者的需求來設(shè)計(jì)一個(gè)實(shí)用電子詞典,以幫助英語學(xué)習(xí)者們更方便快捷的查詢單詞、記憶單詞、有效自由的對(duì)詞庫進(jìn)行管理和操作。與此同時(shí)也提高一下自己對(duì)Java語言的運(yùn)用和對(duì)程序的開發(fā)設(shè)計(jì)能力。2.2系統(tǒng)需求分析用戶在使用電子詞典的時(shí)候,有可能會(huì)使用到電子詞典的查詢功能,也有可能使用到對(duì)詞庫的更新功能。通過對(duì)用戶的需求分析,初步確定該系統(tǒng)的

3、基本需求情況。(1用戶在打開軟件的時(shí)候,應(yīng)該呈現(xiàn)一個(gè)友好的查詢界面,便于用戶操作。(2當(dāng)用戶需要查詢的時(shí)候,軟件將提供這個(gè)單詞的所有信息。(1漢譯英功能模塊說明:可以實(shí)現(xiàn)英文單詞對(duì)中文詞匯的查詢功能。當(dāng)用戶輸入一個(gè)單詞,用戶可以單擊查詢按鈕,顯示這個(gè)單詞的中文解釋,解釋出現(xiàn)在文本區(qū)。(2英譯漢功能模塊說明:實(shí)現(xiàn)將中文詞匯翻譯成英語。在查詢欄中輸入中文,點(diǎn)擊查詢,便出現(xiàn)它的英文解釋。(3詞庫的備份模塊:此模塊可將已有模塊備份,保證數(shù)據(jù)的安全性。(4詞庫的更新模塊:此模塊有增、刪、改等功能。可以根據(jù)自己需要,為詞庫添加相應(yīng)的英文單詞和漢語解釋,或者對(duì)已有單詞的詞義進(jìn)行補(bǔ)充、修改或刪除。(5幫助功能

4、模塊:此模塊添加了一些使用該軟件的方法,當(dāng)用戶在使用時(shí)遇到不清楚的問題時(shí),可以點(diǎn)幫助文檔,根據(jù)提示進(jìn)行操作。圖1系統(tǒng)功能框圖菜單欄文件編輯 幫助漢英詞典備份詞庫退出添加詞匯修改詞匯刪除詞匯關(guān)于文檔英漢詞典調(diào)用filedia log 窗口調(diào)用word 文檔調(diào)用word 文檔調(diào)用類AddW in調(diào)用類 Modif yWin調(diào)用類 DelWi n調(diào)用方法About P圖2修改功能函數(shù)流程圖開始加載驅(qū)動(dòng)建立橋接器 調(diào)用狀態(tài)函數(shù)定義記錄進(jìn)行修改數(shù)據(jù)庫操作下一條記錄是否存在取單詞取解釋執(zhí)行修改操作關(guān)閉數(shù)據(jù)庫boo=false發(fā)出警告結(jié)束NYYN圖3添加功能流程圖是否按取消按鈕Y開始是否按添加按鈕輸入內(nèi)容是

5、否空調(diào)用添加( 方法捕獲數(shù)據(jù)庫異常 發(fā)出警告退出操作結(jié)束YNNYN(1 系統(tǒng)中有6個(gè)類系統(tǒng)運(yùn)行主類:Dic.java窗口主界面類:DataWindow添加單詞類:AddWin.java修改單詞類:ModifyWin.java刪除單詞類:DelWin.java使用幫助類:HelpFrame.java(2 系統(tǒng)運(yùn)行主類Dic的方法Main( :程序入口,建立窗體類DataWindow的對(duì)象。(3 窗口主界面類DataWindow的方法DataWindow( :構(gòu)造函數(shù),安排界面布局,設(shè)置菜單項(xiàng)和工具按鈕。actionPerformed( :執(zhí)行按鈕動(dòng)作事件。Listwords( ;實(shí)現(xiàn)數(shù)據(jù)查詢功能

6、。(4 添加單詞類AddWin的方法AddWin( :構(gòu)造函數(shù),安排界面布局,設(shè)置監(jiān)聽按鈕。actionPerformed( :執(zhí)行按鈕動(dòng)作事件,調(diào)用添加( 方法。添加( :實(shí)現(xiàn)添加數(shù)據(jù)功能。(5 修改單詞類ModifyWin的方法ModifyWin( :構(gòu)造函數(shù),安排界面布局,設(shè)置監(jiān)聽按鈕。actionPerformed( :執(zhí)行按鈕動(dòng)作事件,調(diào)用修改( 方法。修改( :實(shí)現(xiàn)修改數(shù)據(jù)功能。(6 刪除單詞類DelWin的方法DelWin:構(gòu)造函數(shù),安排界面布局,設(shè)置監(jiān)聽按鈕。actionPerformed( :執(zhí)行按鈕動(dòng)作事件,調(diào)用刪除( 方法。刪除( :實(shí)現(xiàn)刪除數(shù)據(jù)功能。2.3設(shè)計(jì)方法Jav

7、a開發(fā)工具(Java development kit,JDK是Sun公司所開發(fā)的一套Java程序開發(fā)工具軟件,它是Sun公司的網(wǎng)站免費(fèi)取得。它與JDK的參考文件同樣是編輯Java程序的必備工具。在編寫、編譯和運(yùn)行應(yīng)用程序時(shí)用到eclipse。圖4程序主界面(1 窗口功能說明窗口共有3個(gè)主要部分:菜單欄、工具條、顯示欄。菜單欄:包括文件、編輯、幫助菜單。工具條:包括輸入欄和查詢、添加、修改、刪除、發(fā)生按鈕。顯示欄:顯示查詢單詞在詞典中的所有解釋。(2 菜單說明文件菜單:包括英漢詞典、漢語詞典、備份詞庫、退出功能。編輯菜單:包括添加詞匯、修改詞匯、刪除詞匯功能。幫助菜單:關(guān)于該軟件的一些信息。(3

8、 工具欄說明在向輸入欄中輸入英/中文單詞,單擊查詢按鈕,在顯示欄中將會(huì)顯示查找所對(duì)應(yīng)詞典中的所有解釋。發(fā)音按鈕:發(fā)音純正標(biāo)準(zhǔn)。方便用戶更好的記憶朗讀單詞。添加、修改、刪除按鈕:可由用戶自行添加、修改和刪除詞庫中的詞匯。(4顯示欄說明顯示用戶所查詢的詞義。右擊將出現(xiàn)復(fù)制、粘貼等命令。方便用復(fù)制到其它地方進(jìn)行其它如打印、學(xué)習(xí)等操作。2.4數(shù)據(jù)庫設(shè)計(jì)在開始設(shè)計(jì)電子詞典之前,要做一些準(zhǔn)備工作,在Microsoft Access 2003中,建立一個(gè)數(shù)據(jù)庫,數(shù)據(jù)庫的名字為english數(shù)據(jù)庫,其中包括一張表。圖5 建立Accesss數(shù)據(jù)庫圖6 表的屬性圖此英語單詞表有兩個(gè)屬性值,分別是單詞和解釋。其中單

9、詞字段為主鍵,保證輸入不可以為空。其類型都是文本類型。其中,單詞表示英文單詞信息;解釋代表漢語解釋信息。表1 英語單詞解釋表JDBC是Java程序連接數(shù)據(jù)庫的應(yīng)用程序接口(API。JDBC是由一群類和接口組成,通過調(diào)用這些類和接口所提供的成員方法,我們可以連接各種不同的數(shù)據(jù)庫,進(jìn)而使用SQL命令對(duì)數(shù)據(jù)庫進(jìn)行查詢、插入、刪除、更新等操作。Java程序包括Java小程序和應(yīng)用程序,主要是根據(jù)JDBC方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問和操作。完成的主要任務(wù)有請(qǐng)求與數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫發(fā)送SQL請(qǐng)求;為結(jié)果集定義存儲(chǔ)應(yīng)用和數(shù)據(jù)類型;查詢結(jié)果;錯(cuò)誤處理;控制傳輸;提交關(guān)閉連接等操作。(2 使用Class.for

10、Name(方法加載相應(yīng)數(shù)據(jù)庫的JDBC驅(qū)動(dòng)程序。(3 定義JDBC的URL對(duì)象。(4 連接數(shù)據(jù)庫。Connection s=DriverManager.getConnection(con URL;(5 使用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行操作。(6 解除Java與數(shù)據(jù)庫的連接并關(guān)閉數(shù)據(jù)庫。(7 常用的JDBC類有,DriverManage類,Connection類,Statement類,PreparedStatement類,ResultSet類。3.程序運(yùn)行結(jié)果圖7文件菜單界面文件菜單:包括英漢詞典、漢語詞典、備份詞庫、退出功能。當(dāng)單擊英漢詞典時(shí),主界面出現(xiàn)輸入查詢英語單詞;單擊漢語詞典,顯示輸入要查詢

11、的漢語意思;單擊退出,將退出操作;單擊備份數(shù)據(jù)庫,將對(duì)已有的數(shù)據(jù)進(jìn)行備份,以便保證數(shù)據(jù)的安全。圖8 英漢詞典英譯漢英漢詞典,可以實(shí)現(xiàn)英文單詞對(duì)中文詞匯的查詢功能。當(dāng)用戶輸入一個(gè)單詞,用戶可以單擊查詢按鈕,顯示這個(gè)單詞的中文解釋,解釋出現(xiàn)在文本區(qū),但是輸入不可以為空。圖9英漢詞典漢譯英實(shí)現(xiàn)將中文詞匯翻譯成英語。在查詢欄中輸入中文,點(diǎn)擊查詢,便出現(xiàn)它的英文解釋。圖10編輯菜單界面編輯菜單:包括添加詞匯、修改詞匯、刪除詞匯功能??梢詳U(kuò)充詞庫,按照自己的需要,完善詞庫,也可對(duì)原有的信息進(jìn)行修改、補(bǔ)充等操作。圖11刪除界面單擊主界面的刪除按鈕,出現(xiàn)刪除界面,在輸入單詞欄中填上要?jiǎng)h除的單詞,然后單擊提交按

12、鈕。如果要退出,也可以點(diǎn)擊取消,退出刪除界面,回到主界面。圖12 修改界面單擊主界面的修改按鈕,出現(xiàn)修改界面,在輸入單詞欄中填上要修改的單詞,下面寫上它的漢語解釋,然后單擊提交按鈕。如果輸入有誤,也可以點(diǎn)擊取消,退出修改界面。圖13添加單詞界面單擊主界面的添加按鈕,出現(xiàn)添加單詞界面,在輸入單詞欄中填上要添加的單詞,下面寫上它的漢語解釋,然后單擊提交按鈕。如果輸入有誤或要退出,也可以點(diǎn)擊取消,退出添加單詞界面,回到主界面。圖14 幫助菜單界面幫助菜單包括幫助和關(guān)于兩個(gè)選項(xiàng)。此模塊添加了一些使用該軟件的方法,當(dāng)用戶在使用時(shí)遇到不清楚的問題時(shí),可以點(diǎn)幫助文檔,根據(jù)提示進(jìn)行操作。圖15 關(guān)于界面此界面

13、顯示關(guān)于此軟件的一些信息,供用戶參閱。4.設(shè)計(jì)體會(huì)通過本次設(shè)計(jì),進(jìn)一步深化了課堂上所學(xué)的知識(shí),深刻理解了Java語言的重要概念及其面向?qū)ο蟮奶攸c(diǎn),熟練的應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方法解決實(shí)際問題。鞏固所學(xué)java 語言基本知識(shí),增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、eclipse等開發(fā)工具的運(yùn)用,拓展常用類庫的應(yīng)用,把所學(xué)課程及相關(guān)知識(shí)加以融會(huì)貫通。除此之外,對(duì)于圖形用戶界面的設(shè)計(jì),從課本的Awt包擴(kuò)展到Swing包,利用Swing編程設(shè)計(jì)漂亮的圖形用戶界面,增加了一些新的的效果。在此次設(shè)計(jì)中,預(yù)先設(shè)計(jì)的所有功能均能實(shí)現(xiàn),而且執(zhí)行效果較好。但是,由于時(shí)間有限,此電子詞典的功能還不夠完善。例如可

14、以增加背單詞功能,英文單詞游戲等功能,由于時(shí)間和能力有限,其他功能待日后完善。在此次課程設(shè)計(jì)中,自己解決問題的能力得到了提高。由于課堂所學(xué)有限,不足以解決實(shí)際問題,所以在設(shè)計(jì)過程中遇到的問題,參閱了大量的書目和借助網(wǎng)絡(luò),再加上老師的指導(dǎo),最終問題都得到了解決。這為以后進(jìn)行復(fù)雜的程序設(shè)計(jì)奠定了很好的基礎(chǔ),同時(shí)也培養(yǎng)了自己獲得信息、總結(jié)信息,以及綜合運(yùn)用所學(xué)知識(shí)的能力。5.參考文獻(xiàn)1 胡宋軍.Java2編程技術(shù)與實(shí)例M. 北京: 人民郵電出版社, 2004.5:95-1252 巖洪亮等.JA V A課程設(shè)計(jì)教程M.北京:北京電子工業(yè)出版社,2004.5: 26-423 劉志銘,孫明麗等.數(shù)據(jù)庫系統(tǒng)

15、開發(fā)案例精選M.北京:清華大學(xué)出版社,2005.6:235-2634 王國(guó)輝, 呂海濤.數(shù)據(jù)庫系統(tǒng)開發(fā)案例M. 北京:人民郵電出版社, 2007.3:106-1775 陳國(guó)君, 陳錫禎. Java2程序設(shè)計(jì)基礎(chǔ)M. 北京:清華大學(xué)出版社, 2006.1:316-3386 袁海燕. Java實(shí)用程序設(shè)計(jì)100例M. 北京:人民郵電出版社, 2005.6:210-2246.附錄主要代碼:class DataWindow extends JFrame implements ActionListenerJFrame topFrame;JDesktopPane desktop;FileDialog fi

16、ledialog_save;JTextField englishtext;JTextArea chinesetext;JButton b1,b2,b3,b4,b5;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;getContent

17、Pane(.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("漢英詞典"

18、back_data=new JMenuItem("備份詞典"quit=new JMenuItem("退出" /文件菜單addedit=new JMenuItem("添加詞匯"modedit=new JMenuItem("修改詞匯"deledit=new JMenuItem("刪除詞匯"/編輯菜單hhelp=new JMenuItem("幫助"about=new JMenuItem("關(guān)于." /幫助菜單mfile.add(edic;mfile.add(cd

19、ic;mfile.add(back_data;mfile.addSeparator(;mfile.add(quit;medit.add(addedit;medit.add(modedit;medit.add(deledit;mhelp.add(hhelp;mhelp.add(about;edic.addActionListener(this;cdic.addActionListener(this;quit.addActionListener(this;addedit.addActionListener(this;modedit.addActionListener(this;deledit.ad

20、dActionListener(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=ne

21、w JButton("添加"b3=new JButton("修改"b4=new JButton("刪除"b5=new JButton(""JPanel p1=new JPanel(;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

22、(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.addActionListener(this;b4.addActionListener(this;b5.addActionListener(this;englishtext.addActionListener(thi

23、s;back_data.addActionListener(this;filedialog_save=new FileDialog(this,"保存文件對(duì)話框",FileDialog.SAVE;/定義"保存文件對(duì)話框" filedialog_save.addWindowListener(new WindowAdapter(public void windowClosing(WindowEvent efiledialog_save.setVisible(false;addWindowListener(new WindowAdapter(public voi

24、d windowClosing(WindowEvent eSystem.exit(0;public void actionPerformed(ActionEvent e /實(shí)現(xiàn)按鈕監(jiān)聽事件if(e.getSource(=b1|e.getSource(=englishtext /如果是"查詢"chinesetext.setText(""if(englishtext.getText(.equals(""JOptionPane.showMessageDialog(this,"查詢對(duì)象不能為空","警告"

25、;,JOptionPane.W ARNING_MESSAGE;elsetryListwords(;catch(SQLException ee else if(e.getSource(=b2|e.getSource(=addedit /如果是"添加"new AddWin(; /AddWin是添加窗口的類else if(e.getSource(=b3|e.getSource(=modedit /如果是"修改"new ModifyWin(; /ModifyWin是修改窗口的類else if(e.getSource(=b4|e.getSource(=deledi

26、tnew DelWin(; /DelWin是刪除窗口的類else if(e.getSource(=b5 /如果是語音文件,則讀出單詞if(englishtext.getText(!=nulltryInputStreamis=getClass(.getResource("sound/"+englishtext.getText(.trim(+".wav".openStream(;catch(IOException e1else if(e.getSource(=edic/英漢label.setText("輸入要查詢的英語單詞:"b1.set

27、Visible(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 FileInput

28、Stream(fromfile; /建立文件輸入流int bytesRead; /定義變量來存儲(chǔ)輸入流中讀取的文件byte buf=new byte4*1024; /定義4KB容量的buffer數(shù)組File tofile=new File(filedialog_save.getDirectory(,filedialog_save.getFile(;/建立新文件對(duì)象FileOutputStream fos=new FileOutputStream(tofile;/建立文件輸出流while(bytesRead=fis.read(buf!=-1/寫入文件(備份文件fos.write(buf,0,by

29、tesRead;fos.flush(;fos.close(;fis.close(;catch(IOException e2 else if(e.getSource(=quit /退出System.exit(0;else if(e.getSource(=about /關(guān)于final String AboutMsg="A Electrical Dictionary 1.0nn"+"An application written to show off the function of dictionary.nn"+"nn"+"Cop

30、yright(c 2005."JOptionPane.showMessageDialog(topFrame,AboutMsg;else if(e.getSource(=hhelpJInternalFrame help=new HelpFrame(;help.setVisible(true;public void Listwords( throws SQLException /實(shí)現(xiàn)查詢功能String cname,ename;tryClass.forName("sun.jdbc,odbc,JdbcOdbcDriver"catch(ClassNotFoundException e /建立橋接Connection ExlCon=DriverManager.getConnection("jdbc:odbc:Driver=MicroSoft Access Driver(english*.mdb;DBQ=E:電子詞典明明english.mdb","",""Statement ExlStmt=ExlCon.createStatement(;if(label.getText(.equals

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論