java課程設計-英漢電子詞典系統(tǒng).doc
《java課程設計-英漢電子詞典系統(tǒng).doc》由會員分享,可在線閱讀,更多相關《java課程設計-英漢電子詞典系統(tǒng).doc(25頁珍藏版)》請在裝配圖網上搜索。
1、課程設計說明書 NO.1英漢電子詞典系統(tǒng)1.課程設計的目的Java語言是當今流行的網絡編程語言,它具有面向對象、跨平臺、分布應用等特點,它貼近自然的語義,而且有利于軟件的維護和繼承。此次課程設計的目的在于鞏固所學Java語言基本知識,增進Java語言編輯基本功,掌握JDK、Editplus、Eclipse、JCreator等開發(fā)工具的運用,拓寬常用類庫的應用。使學生通過該教學環(huán)節(jié)與手段,把所學課程及相關知識加以融會貫通,全面掌握Java語言的編程思想及面向對象程序設計的方法,為今后從事實際工作打下堅實的基礎。2.設計方案論證2.1 概要設計2.1.1 系統(tǒng)功能描述該系統(tǒng)主要用于實現(xiàn)英漢互譯的功
2、能,系統(tǒng)擁有己的數(shù)據庫,我們可以先選擇讓系統(tǒng)進行英譯漢,還是漢譯英,然后在查詢框中輸入想要查詢的英文單詞或漢語意思,系統(tǒng)自動在數(shù)據庫中查找匹配記錄并給出對應的漢語意思或英文單詞,若在數(shù)據庫中沒有查找到匹配的記錄,則系統(tǒng)會彈出出錯提示。同時,系統(tǒng)還提供了添加、修改、刪除等功能,允許用戶自主的對系統(tǒng)數(shù)據庫進行添加、修改、刪除等操作,便于用戶建立自己的詞匯庫,簡便實用。2.1.2 系統(tǒng)開發(fā)環(huán)境(1)硬件環(huán)境CPU:Intel(R)Core(TM)2 Duo CPU P7450 2.13GHz 內存:2G 硬盤空間:250G(2)軟件環(huán)境 32位XP操作系統(tǒng)。JDK和Jcreator軟件環(huán)境。 沈 陽
3、 大 學課程設計說明書 NO.22.2詳細設計2.2.1 程序流程圖英漢詞典漢英詞典備份詞庫退出刪除詞匯修改詞匯英漢電子詞典庫存采購操作添加詞匯圖1 英漢電子詞典系統(tǒng)功能模塊圖功能模塊說明:(1)英譯漢功能模塊說明:可以實現(xiàn)對英文單詞對中文單詞的查詢功能。用戶文本框中輸入要查詢的英語單詞。若該單詞存在于詞庫中,則會在文件對話框中顯示其詞性及中文翻譯;若該單詞沒有存在于詞庫中,則會彈出“警告”,說明“查無此詞”;若沒有輸入直接點擊“查詢”,則會彈出“警告”,說明“查詢對象不能為空”。(2)漢譯英功能模塊說明:可以實現(xiàn)對中文單詞對英文單詞的查詢功能。用戶可在文本框中輸入要查詢的中文單詞。若該單詞存
4、在于詞庫中,則會在文件對話框中顯示一個或多個對應的英文;若該單詞沒有存在于詞庫中,則會彈出“警告”,說明“查無此詞”;若沒有輸入直接點擊“查詢”,則會彈出“警告”,說明“查詢對象不能為空”。(3)備份詞庫功能模塊說明:可以實現(xiàn)對現(xiàn)有詞庫的備份,可將當前詞庫存入用戶所設置的任一位位置。(4)添加詞匯功能模塊說明:可以實現(xiàn)對詞庫的添加。用戶可自行輸入所添加的 沈 陽 大 學課程設計說明書 NO.3單詞及其解釋,若添加的是詞庫中沒有的單詞,系統(tǒng)在添加成功后有提示“添加成功”;若添加的是詞庫中已有的單詞,系統(tǒng)會彈出“警告”,說明“此詞匯已存在”。(5)修改詞匯功能模塊說明:可以實現(xiàn)對詞庫中已有單詞的修
5、改。用戶可自行修改詞庫中的單詞的解釋,若輸入單詞不存在于詞庫中,系統(tǒng)會彈出“警告”,說明“不存在此單詞”。(6)刪除詞匯功能模塊說明:可以刪除詞庫中已有的單詞。用戶可自行刪除詞庫中已有的單詞,在刪除此單詞的同時,其解釋也會隨之被刪除,若輸入單詞不存在于詞庫中,系統(tǒng)會彈出“警告”,說明“不存在此單詞”。(7)其它功能模塊說明:在幫助中有“幫助”與“關于”兩項,“幫助”中有關于詞典的功能說明,“關于”可顯示版本信息。2.2.2 程序中自定義類說明表1 動畫中涉及的元件表類名作用父類子類Dic自定義主體main函數(shù)的類,用來調用各種類DataWindow,AddWin,DelWin,ModifyWi
6、nDataWindow自定義一個主窗體類,用來顯示整個窗體JFrameAddWin自定義一個添加窗口類,用于添加新的單詞及其解釋JFrameDelWin自定義一個刪除窗口類,用于刪除詞庫中所存在的單詞及其解釋JFrameModifyWin自定義一個修改窗口類,用于修改詞庫中所存在的單詞及其解釋JFrame 沈 陽 大 學課程設計說明書 NO.42.2.3程序中主要方法說明(1)定義方法actionPerformed(),內用if語句實現(xiàn)按鈕監(jiān)聽:public void actionPerformed(ActionEvent e)(2)定義方法刪除(),實現(xiàn)刪除功能public void 刪除(
7、) throws SQLException(3)定義方法添加(),實現(xiàn)添加功能public void 添加() throws SQLException(4)定義方法查詢(),實現(xiàn)查詢功能public void 查詢() throws SQLException3.設計結果與分析3.1程序運行結果經過編譯、執(zhí)行后可看到運行界面如圖2所示圖2 運行結果圖此時有兩個菜單選擇:庫存和采購操作。 沈 陽 大 學課程設計說明書 NO.53.1.1庫存菜單它包含四個子菜單:英漢詞典、漢英詞典、備份詞庫及退出。打開該詞典時默認進入的是英漢詞典。如圖3所示:圖3 庫存菜單示意圖(1)英漢詞典:在文本框中輸入要查詢
8、的英文單詞,單擊“查詢”,英文單詞對應的中文解釋及其詞性便會出現(xiàn)在文件對話框中,如圖4所示:圖4 英漢詞典查詢示意圖 沈 陽 大 學課程設計說明書 NO.6如果所查單詞不存在于詞庫中,則會彈出“警告”,說明“查無此詞”,如圖5所示;如果是沒有輸入直接點擊“查詢”,則會彈出“警告”,說明“查詢對象不能為空”,如圖6所示:圖5 查詢錯誤示意圖圖6 空輸入查詢錯誤(2)漢英詞典:在在文本框中輸入要查詢的漢語意思,單擊“查詢”,對應的英文單詞便會出現(xiàn)在文件對話框中,如圖7所示: 沈 陽 大 學課程設計說明書 NO.7圖7 漢英詞典查詢示意圖如果所查詞不存在于詞庫中,則會彈出“警告”,說明“查無此詞”;
9、如果是沒有輸入直接點擊“查詢”,則會彈出“警告”,說明“查詢對象不能為空”,演示與英漢詞典類似。(3)點擊備份詞庫時,會彈出保存文件對話框,此時可將詞庫拷貝到機算機里的任一位置。如圖8所示。圖8 備份詞匯庫功能演示 沈 陽 大 學課程設計說明書 NO.83.1.2采購操作菜單:它包含三個子菜單:添加詞匯、修改詞匯和刪除詞匯。如圖9所示:圖9 采購操作菜單示意圖(1)添加詞匯:用戶可自行輸入所添加的單詞及其解釋,如果添加的是詞庫中沒有的單詞,系統(tǒng)在添加成功后有提示“添加成功”,如圖10所示。若添加的是詞庫中已有的單詞,系統(tǒng)會彈出“警告”,說明“此詞匯已存在”。如圖11所示。圖10 添加詞匯成功示
10、意圖 沈 陽 大 學課程設計說明書 NO.9圖11 添加詞匯出錯示意圖(2)修改詞匯:用戶可自行修改詞庫中的單詞的解釋,如圖12所示;如果輸入單詞不存在于詞庫中,系統(tǒng)會彈出“警告”,說明“不存在此單詞”,如圖13所示。圖12 修改詞匯成功示意圖 沈 陽 大 學課程設計說明書 NO.10圖13 修改詞匯出錯示意圖(3)刪除詞匯:用戶可自行刪除詞庫中已有的單詞,在刪除此單詞的同時,其解釋也會隨之被刪除,如圖14所示。如果輸入單詞不存在于詞庫中,系統(tǒng)會彈出“警告”,說明“不存在此單詞”,如圖15所示。圖14 刪除詞匯成功示意圖 沈 陽 大 學課程設計說明書 NO.11圖15 刪除詞匯出錯示意圖經測試
11、,該系統(tǒng)各項功能均能使用,各個功能選項與設計所想相符。3.2尚需解決的問題(1)本系統(tǒng)雖然允許用戶根據自己的需求增減詞匯,保存自己的詞匯庫,但是卻無法做到批量導入。(2)發(fā)音問題,本系統(tǒng)還缺少比較重要的一項功能,詞匯的發(fā)音功能。(3)查詢單詞時無法做到自動匹配,比如說輸入a時,無法自動尋找所有以a開頭的詞匯。4.設計體會此次課程設計過程中,我遇到了很多問題,也更加了解JAVA。Java是一種網絡語言,使Java程序能在網絡的任何地方運行,Java解釋器生成與體系結構無關的字節(jié)碼結構的文件格式。Java為了做到結構中立,除生成機器無關的字節(jié)碼外,還制定了完全統(tǒng)一的語言文本,如Java的基本數(shù)據類
12、型不會隨目標機的變化而變化,一個整型總是32位,一個長整型總是64位。 沈 陽 大 學課程設計說明書 NO.12為了使Java的應用程序能不依賴于具體的系統(tǒng),Java語言環(huán)境還提供了用于訪問底層操作系統(tǒng)功能的類組成的包,當程序使用這些包時,可以確保它能運行在各種支持Java的平臺上。通過對JAVA數(shù)據庫編程的更多的了解,我也獲得了一些調試的經驗:通過層層的捕獲異常來得知錯誤的發(fā)生。在課程設計中出現(xiàn)的問題對我而言是學習與復習的好機會,是它們使我學會了如何自學、如何查閱資料等,讓我學習了很多,也讓我對舊的知識點有了更深的理解。在這不斷的調試、改動的過程中也讓我明白了養(yǎng)成良好編程習慣的益處。由于編寫
13、程序時容易出錯,因此我采用了單個模塊單個功能進行調試與測試的方法。在不斷的出錯與改錯的過程中,我學到了很多關于編程和調試程序的知識,使自己的知識體系得到了一定的完善,也使我對平時所學有了很多的了解與更深的理解。面對一系列的問題,失敗了嘗試,再失敗再嘗試通過這次的實踐,我發(fā)現(xiàn)了自己在編程及對軟件開發(fā)相關知識的不足,在以后的學習實踐中,我要取長補短,敢想善問,不斷加強自身在專業(yè)知識方面的能力,為以后的學習與工作打下堅實的基礎。5.參考文獻1 葉核亞JAVA2程序設計實用教程M(第2版)北京:電子工業(yè)出版社;2008.42陳國君、陳磊、陳錫禎、劉洋.Java2程序設計基礎M,第一版.北京:清華大學出
14、版社,2006:324-3373丘仲潘. Java游戲編程M.北京:科學出版社,2004.6:1251324張大治. Java程序設計實用教程M.北京:清華大學出版社,2008.4:728156.附錄核心代碼import java.awt.*;import .*; 沈 陽 大 學課程設計說明書 NO.13import java.sql.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import sun.audio.*;import javax.swing.JOptionPane;class DataWindow
15、extends JFrame implements ActionListenerJFrame topFrame;JDesktopPane desktop;FileDialog filedialog_save; /聲明文件對話框JTextField englishtext;JTextArea chinesetext;JButton b1,b2,b3,b4;JLabel label;JMenuBar mbar;JMenu mfile,medit;JMenuItem edic,cdic,back_data,quit,addedit,modedit,deledit,about;DataWindow()
16、super(英漢小詞典);this.setBounds(250,250,600,400);this.setVisible(true);getContentPane().add(new JScrollPane(chinesetext);mbar = new JMenuBar();setJMenuBar(mbar); 沈 陽 大 學課程設計說明書 NO.14mbar.setOpaque(true);mfile = new JMenu(庫存);medit = new JMenu(采購操作);mbar.add(mfile);mbar.add(medit);edic = new JMenuItem(英漢
17、詞典);cdic = new JMenuItem(漢英詞典);back_data = new JMenuItem(備份詞庫);quit = new JMenuItem( 退出);/文件菜單addedit = new JMenuItem(添加);modedit = new JMenuItem(修改);deledit = new JMenuItem(刪除);/編輯菜單about = new JMenuItem(關于.);/幫助菜單mfile.add(edic);mfile.add(cdic);mfile.add(back_data);mfile.addSeparator();mfile.add(q
18、uit); /mfilemedit.add(addedit);medit.add(modedit);medit.add(deledit); /meditedic.addActionListener(this);cdic.addActionListener(this);quit.addActionListener(this);addedit.addActionListener(this);modedit.addActionListener(this);deledit.addActionListener(this); 沈 陽 大 學課程設計說明書 NO.15about.addActionListe
19、ner(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
20、JPanel();/添加面板label = new JLabel(輸入要查詢的英語單詞:);label.setFont(new Font(隸書,20,20);p1.add(label);p1.add(englishtext);p1.add(b1);p2.add(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.ad
21、dActionListener(this);b4.addActionListener(this);englishtext.addActionListener(this);back_data.addActionListener(this);filedialog_save = new FileDialog(this,保存文件對話框,FileDialog.SAVE); 沈 陽 大 學課程設計說明書 NO.16filedialog_save.addWindowListener(new WindowAdapter() /對話框增加適配器public void windowClosing(WindowEv
22、ent e)filedialog_save.setVisible(false););addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););public void actionPerformed(ActionEvent e) /實現(xiàn)按鈕監(jiān)聽if(e.getSource()=b1|e.getSource()=englishtext)chinesetext.setText();if(englishtext.getText().equals()JOptionPane.s
23、howMessageDialog(this,查詢對象不能為空!,警告,JOptionPane.WARNING_MESSAGE);elsetryListwords();catch(SQLException ee) 沈 陽 大 學課程設計說明書 NO.17 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(); /M
24、odifyWin是修改窗口的類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
25、 fromfile = new File(englishenglish.mdb); 沈 陽 大 學課程設計說明書 NO.18FileInputStream 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_sav
26、e.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);else if(e.getSource()=about) /關于final String AboutMsg = A Electrical
27、Dictionary 1.0 n n 沈 陽 大 學課程設計說明書 NO.19+An application written to show off the function of dictionary.n n+Written By Edith.n n+Copyright (c) 2005 by Edith.All rights Reserved.;JOptionPane.showMessageDialog(topFrame,AboutMsg);public void Listwords() throws SQLException /實現(xiàn)查詢功能String cname,ename;tryCl
28、ass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)/建立橋接器 Connection Ex1Con = DriverManager.getConnection(jdbc:odbc:Driver=MicroSoft Access Driver (*.mdb);DBQ=englishenglish.mdb,);Statement Ex1Stmt = Ex1Con.createStatement();if(label.getText().equals(輸入要查詢的英語單詞:)ResultSet rs =
29、Ex1Stmt.executeQuery(SELECT * FROM 表1);while( rs.next()ename = rs.getString(單詞);cname = rs.getString(解釋);if(ename.equals(englishtext.getText() 沈 陽 大 學課程設計說明書 NO.20chinesetext.append(cname+n);Ex1Con.close(); /關閉數(shù)據庫if(chinesetext.getText().equals()JOptionPane.showMessageDialog(this,查無此單詞!,警告,JOptionPa
30、ne.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(); /關閉數(shù)據庫if(chinesetext.getText().equa
31、ls()JOptionPane.showMessageDialog(this,查無此單詞!,警告,JOptionPane.WARNING_MESSAGE); 沈 陽 大 學課程設計說明書 NO.21 / 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() 沈 陽 大 學課程設計說明書 NO.22 沈 陽 大 學課程設計說明書 NO.23 沈 陽 大 學課程設計說明書 NO.24 沈 陽 大 學課程設計說明書 NO.25 沈 陽 大 學
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。