java課程設計英漢詞典
《java課程設計英漢詞典》由會員分享,可在線閱讀,更多相關《java課程設計英漢詞典(22頁珍藏版)》請在裝配圖網上搜索。
1、 第一章 課程設計的目的與要求 1.1、 課程設計目的 通過面向對象程序設計課程設計,使學生能將學到的面向對象的程序設計思想用到具體的工作和學習中,加深對類與對象的理解,要求學生能夠對現實生活中許多具體的事物抽象出來,并掌握繼承與派生,基類、虛函數和多態(tài)性的概念。通過這次課程設計掌握面向對象的編程思想,為后續(xù)課程打下基礎。培養(yǎng)學生實際操作能力和團結協作能力,為以后的工作打下堅實的基礎。 1.2、 課程設計要求 按課程設計指導書提供的課題,要求學生在自行完成各個操作環(huán)節(jié),并能實現且達到舉一反三的目的,完成一個項目解決一類問題。要求學生能夠全面、深入理解和
2、熟練掌握所學內容,并能夠用其分析、設計和解答類似問題;對此能夠較好地理解和掌握,能夠進行簡單的分析和判斷,能編寫具有良好風格的程序,掌握java程序設計的基本技能和面向對象的概念和方法。 第二章 課程設計內容 2.1 背景介紹 電子引詞典是一種將傳統(tǒng)的印刷詞典轉成數碼方式、進行快速查詢的數字學習工具。電腦辭典以輕便易攜、查詢快捷、功能豐富等特點,成為21世紀學生學習生活、社會人士移動辦公的掌上利器。電腦辭典主要有五大板塊功能,分別為:辭典查詢學習功能、電子記事功能、計算功能、參考資料功能以及數據傳輸功能。目前市場上的電子辭典內置的辭典有學習
3、詞典如英漢、雅思等,也有專業(yè)詞典如電子、醫(yī)藥等。不同的消費者應根據自己的實際情況選擇最適合自己的電子辭典,標準的電子辭典內置英漢、漢英、英英、雅思、托福等學習型詞典,是為大學、高初中以及小學生量身定制的學習辭典。 2.2技術背景 運用Java語言描述各種類,每一個類應包含數據成員和成員函數。設計基類和派生類,并運用多態(tài)性和虛函數的知識。注重面向對象程序設計理論知識的理解與實際的動手編程能力,要求學生設計具有繼承與派生以及多態(tài)性的類,理解面向對象程序設計的核心的概念。 第三章 需求分析 3.1 現狀的分析 當今時代是信息化時代,而
4、信息的數字化也越來越被人們所重視,所以,數字化技術的重要性也逐漸體現了出來,主要體現在以下幾個方面:數字化是數字計算機的基礎,數字化是軟件技術的基礎,是智能技術的基礎,數字化是信息社會的技術基礎,數字化是信息社會的經濟基礎。詞典作為一種為大眾服務的工具書,已經漸漸退居二線了,進而出現了另一種查找方式更加簡便,更加精確,詞匯量更加豐富而且隨身攜帶更加方便的工具,那就是電子詞典,應該說這是一個新舊交替的過程,電子詞典取代傳統(tǒng)詞典只是時間的問題。 所以說電子詞典的發(fā)展前景是明朗的,電子詞典生產廠家也如同雨后春筍般崛起了。 3.2 功能需求分析 本系統(tǒng)在單詞查閱方面主要完成了英譯漢、漢譯英、單
5、詞發(fā)音功能;在系統(tǒng)性能方面主要完成了單詞庫的插入、修改、刪除功能以及幫助系統(tǒng)。 3.3 模塊功能介紹 該模塊的主要功能為:由于將組員所做的各模塊組合在一起。使用戶可以在一個界面下調用組內成員的功能模塊。即放便用戶使用又方便用戶的學習。而且不但可以通過菜單欄調用各功能模塊,還可以通過按鈕調用。 主界面主要由兩個面版,五個按鈕,一個文本框,一個文本區(qū),一個標簽和一個菜單欄組成。在文本框中輸入要查詢的數據。文本區(qū)中顯示查詢的結果。 3.3.2英譯漢功能 該模塊的主要功能為:當用記遇到陌生的單詞或記不清解釋的單詞時,用戶可以通過本功能查找,還通過本模塊完成單詞的再一次記憶。 3.3.3漢譯
6、英功能 該模塊的主要功能為:當用戶進行漢譯英翻譯時難難免遇到不會的詞或記不請的記。這時用記就可以通過本功能實現詞匯的查找。它不但可以查到想要查的詞還可以找到和該詞相關的單詞 3.4 數據庫需求分析 目前電子詞典的應用很廣泛,其體積小、價格低、實用性強,作為學習工具,有著很廣泛的市場。在以前,同學們學習英語時都要用人工的方法去查閱生詞,不僅浪費了大量的學習時間,學習效率無法提高??梢哉f,查閱英語生詞成為了很多學習英語同學在學習方面的瓶徑。電子詞典的出現,就 是針對這一問題。這里的設計就是實現英漢互譯、為了體現它的可擴展性,使用者也可以自己添加、刪除或修改其單詞庫。 下面是數據庫表設計
7、: 3.5 系統(tǒng)的數據流程分析 數據流程是數據的采集、輸入、處理、加工和輸出的全過程。信息原始數據經采集后,輸入計算機系統(tǒng),進行模式或統(tǒng)計運算,或按用戶的特殊要求編制某種專門程序來加工處理數據,然后輸出結果數據。輸出結果一般都應說明或反映某一領域內客觀事物自然屬性的特性和規(guī)律性。 系統(tǒng)分析的主要任務是將在系統(tǒng)詳細調查中所得到的文檔資料集中到一起,對組織內部整體管理狀況和信息處理過程進行分析。它側重于從業(yè)務全過程的角度進行分析。分析的主要內容是:業(yè)務和數據的流程是否通暢,是否合理;數據、業(yè)務過程和實現管理功能之間的關系;老系統(tǒng)管理模式改革和新系統(tǒng)管理方法的實現是否
8、具有可行性等等。系統(tǒng)分析的目的是將用戶的需求及其解決方法確定下來,這些需要確定的結果包括:開發(fā)者關于現有組織管理狀況的了解;用戶對信息系統(tǒng)功能的需求;數據和業(yè)務流程;管理功能和管理數據指標體系;新系統(tǒng)擬改動和新增的管理模型等等。系統(tǒng)分析所確定的內容是今后系統(tǒng)設計、系統(tǒng)實現的基礎。 分析電子詞典的總體情況,劃分系統(tǒng)邊界,識別系統(tǒng)的數據來源和去處,確定外部實體,得出系統(tǒng)的頂層數據流程圖;然后劃分出幾個主要的信息管理功能,本系統(tǒng)的主要數據的工作流包括以下幾個方面: (1) 英漢詞典; (2) 漢英詞典; (3)添加詞匯;(4)修改詞匯 (5)刪除詞匯。 漢譯英流程圖
9、英譯漢流程圖 3.6 數據項 數據項又稱數據元素,數據項是構成數據的最小單位,是數據記錄中最基本的、不可分的有名數據單位。數據項可以是字母、數字或兩者的組合。通過數據類型(邏輯的、數值的、字符的等)及數據長度來描述。數據項用來描述實體的某種屬性。 本系統(tǒng)的數據項的定義如下: 數據結構的定義 數據結構描述了某些數據項之間的關系。一個數據結構可以由若干個數據項組成, 也可以由若干個數據結構組成;還可以由若干個數據項和數據結構組成。 數據結構名稱:英文單詞 含義說明:用戶需要輸入的英文單詞 數據結構組成:由英文字母組成 數據結構
10、名稱:漢語詞匯 含義說明:用戶需要輸入的漢語詞匯 數據結構組成:由中文組成 數據結構名稱:添加單詞 含義說明:添加單詞庫中沒有的單詞 數據結構組成:由英文字母組成 數據結構名稱:修改注釋 含義說明:更新單詞注釋 數據結構組成:由中文以及英文字母組成 第四章 系統(tǒng)設計 4.1 系統(tǒng)的總體設計 4.1.1系統(tǒng)的功能模塊設計 系統(tǒng)模塊設計分為3大項,分別是:文件模塊,編輯模塊和幫助模塊。 1.文件模塊: 文件模塊分為4小項:漢譯英模塊,漢譯英模塊,備份詞庫模塊,退出系統(tǒng)模塊。 2.編輯模塊: 編輯模塊分為3小項:添加詞匯模塊,添加詞匯模塊,刪除詞匯模
11、塊。 3.編輯模塊: 編輯模塊分為2小項,分別是:幫助模塊,關于模塊。 下面是系統(tǒng)的功能模塊圖 4.2 系統(tǒng)的詳細設計 4.2.1概念設計 對用戶要求描述的現實世界,通過對其中住處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節(jié),用一種抽象的形式表示出來。 概念設計即是利用設計概念并以其為主線貫穿全部設計過程的設計方法。概念設計是完整而全面的設計過程,它通過設計概念將設計者繁復的感性和瞬間思維上升到統(tǒng)一的理性
12、思維從而完成整個設計。如果說概念設計是一篇文章,那么設計概念則是這篇文章的主題思想。概念設計圍繞設計概念而展開,設計概念則聯系著概念設計的方方面面。 下面是各模塊的E-R圖: 4.3 系統(tǒng)的物理設計 數據庫物理設計階段的任務是根據具體計算機系統(tǒng)(硬件等)的特點,為給定的數據庫模型確定合理的存儲結構和存取方法。所謂的“合理”主要有兩個含義:一個是要使設計出的物理數據庫占用較少的存儲空間,另一個對數據庫的操作具有盡可能高的速度。 為了設計數據庫的物理結構,設計人員必須充分了解所用硬件的內部特征;充分了解數據系統(tǒng)的實際應用環(huán)境,特別是數據應用處理的頻率和響應時間
13、的要求;充分了解外存儲設備的特性。數據庫的物理結構設計大致包括:確定數據的存取方法、確定數據的存儲結構。 物理結構設計階段實現的是數據庫系統(tǒng)的內模式,它的質量直接決定了整個系統(tǒng)的性能。因此在確定數據庫的存儲結構和存取方法之前,對數據庫系統(tǒng)所支持的事務要進行仔細分析,獲 得優(yōu)化數據庫物理設計的參數。 對于數據庫查詢事務,需要得到如下信息: 1.要查詢的關系。 2.查詢條件(即選擇條件)所涉及的屬性。 3.連接條件所涉及的屬性。 4.查詢的投影屬性。 對于數據更新事務,需要得到如下信息: 1.要更新的關系。 2.每個關系上的更新操作的類型。 3.刪除
14、和修改操作所涉及的屬性。 4.修改操作要更改的屬性值。 5.確定數據庫的存儲結構。 6.確定系統(tǒng)存儲參數的配置。 第五章 系統(tǒng)設計 5.1 算法方面的問題 起初連接數據庫的語句全部都是在調用頁一句一句的書寫,這樣一來不僅做了很多重復的工作,而且使頁面看起來很繁瑣,經過翻閱書籍發(fā)現可以將連接數據庫的語句統(tǒng)一放到一個頁面里,然后在需要調用連接數據庫語句的頁面調用就可以了,這樣既節(jié)省時間,又避免出現書寫錯誤。 5.2 字符串方面的問題 在測試數據查詢模塊時,發(fā)現對字符串的比較存在大小寫之分,所以要先將要比較的兩個字符串轉化成相同的格式或者強行限制輸入的
15、字符串大小寫相同,然后再進行比較;如果查詢的結果為空,那么應該給出提示信息,這樣才能真正做到人機界面友好。 5.3 系統(tǒng)的實現 5.3.1主界面功能實現 在此模塊內,用戶如果想使用組內其他成員的功能時,有兩種實現方法。一種是在編輯菜單下選擇添加詞匯;另一種是通過主界面下面的按鈕調用其他成員的功能模塊。主界面主要由主界面主要由兩個面版,五個按鈕,一個文本框,一個文本區(qū),一個標簽和一個菜單欄組成。在文本框中輸入要查詢的數據。文本區(qū)中顯示查詢的結果 下面是部分程序源代碼: 主要方法包括: (1)頁面的設置 import java.awt.*; import .*; import
16、 java.sql.*; import java.awt.event.*; import javax.swing.JOptionPane; import java.io.*; import sun.audio.*; class cidian extends Frame implements ActionListener { MenuBar menubar=new MenuBar();//菜單 Menu fileMenu,editMenu,helpMenu; MenuItem fileenglish,filechinese,exit,editAdd,editmod,e
17、ditDel; TextField inputtext; TextArea txt; Label label1,label2; Button btn1; Panel p,p1,p2,p3; cidian() { super("電子詞典"); setBounds(200,300,350,400); setMenuBar(menubar); fileMenu=new Menu("詞典類型"); editMenu=new Menu("編輯詞典"); fileenglish=new MenuItem("英漢詞
18、典"); filechinese=new MenuItem("漢英詞典"); exit=new MenuItem("退出"); editAdd=new MenuItem("添加詞匯"); editmod=new MenuItem("修改詞匯"); editDel=new MenuItem("刪除詞匯"); menubar.add(fileMenu); menubar.add(editMenu); fileMenu.add(fileenglish); fileMenu.add(filechinese); fileMe
19、nu.addSeparator(); fileMenu.add(exit); editMenu.add(editAdd); editMenu.add(editmod); editMenu.add(editDel); inputtext=new TextField("",10); txt=new TextArea(10,10); label1=new Label("輸入要查詢的英語單詞:"); label2=new Label("查詢結果:"); btn1=new Button("查詢"); p=new Panel(
20、new BorderLayout()); p2=new Panel(new FlowLayout(FlowLayout.LEFT,5,0)); p2.add(label1); p2.add(inputtext); p2.add(btn1); add(p2,"North"); p.add(label2,"North"); p.add(txt,"Center"); add(p,"Center"); setVisible(true); setResizable(false); validate();
21、 fileenglish.addActionListener(this); filechinese.addActionListener(this); exit.addActionListener(this); editAdd.addActionListener(this); editmod.addActionListener(this); editDel.addActionListener(this); btn1.addActionListener(this); 運行結果: (
22、2)查詢功能實現 public void Listwords() throws SQLException//查詢實現過程 { String cname,ename; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){} Connection Ex1Con=DriverManager.getConnection("jdbc:odbc:words","",""); Statement Ex1Stmt=Ex1Con
23、.createStatement(); ResultSet rs=Ex1Stmt.executeQuery("SELECT * FROM words"); boolean boo=false; while((boo=rs.next())==true) { ename=rs.getString("英語"); cname=rs.getString("漢語"); if(ename.equals(inputtext.getText())&& label1.getText().equals("輸入要查詢的英語單詞:")) { tx
24、t.append(cname); break; } else if(cname.equals(inputtext.getText())&& label1.getText().equals("輸入要查詢的漢語詞語:")) { txt.append(ename); break; } } Ex1Con.close(); if(boo==false) { JOptionPane.showMessageDialog(this,"查無此單詞!","警告", JOptionPane.WARNING_
25、MESSAGE); } } 運行結果: (3)添加功能實現: public void addwords() throws SQLException//向數據庫添加新詞匯 { System.out.println(inputtext.getText()); System.out.println(txt.getText()); String cname,ename; try { Class.forName("sun.jd
26、bc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){} Connection Ex1Con=DriverManager.getConnection("jdbc:odbc:keshe","",""); Statement Ex1Stmt=Ex1Con.createStatement(); ResultSet rs=Ex1Stmt.executeQuery("SELECT * FROM keshe"); boolean boo=false; while((boo=rs.next()
27、)==true) { ename=rs.getString("word"); cname=rs.getString("chinese"); System.out.println("ename" + ename); if(ename.equals(inputtext.getText())&&cname.equals(txt.getText())) { System.out.println("2" + boo); JOptionPane.showMessageDialog(this,"此詞匯已存在!","警告", JOpt
28、ionPane.WARNING_MESSAGE); break; } System.out.println("3" + boo); } System.out.println("aa1"); if(boo==false) { Ex1Stmt.executeUpdate("INSERT INTO keshe (word,chinese) VALUES ("+ inputtext.getText().trim()+","+txt.getText().trim()+")"); JOptionPane.showMessageDia
29、log(this,"添加成功!","恭喜", JOptionPane.WARNING_MESSAGE); } Ex1Con.close(); } 運行結果: (4)更新功能實現: public void modwords() throws SQLException//修改詞庫中記錄 { String ename; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDr
30、iver"); } catch(ClassNotFoundException e){} Connection Ex1Con=DriverManager.getConnection("jdbc:odbc:keshe","",""); Statement Ex1Stmt=Ex1Con.createStatement(); ResultSet rs=Ex1Stmt.executeQuery("SELECT * FROM keshe"); boolean boo=false; while((boo=rs.next())==true) {
31、ename=rs.getString("word"); if(ename.equals(inputtext.getText())) { Ex1Stmt.executeUpdate("UPDATE keshe SET chinese="+txt.getText().trim() +" WHERE word="+inputtext.getText().trim()+""); JOptionPane.showMessageDialog(this,"記錄修改成功!","恭喜", JOptionPane.WARNING_MESSAGE);
32、 break; } } Ex1Con.close(); if(boo==false) { JOptionPane.showMessageDialog(this,"不存在此單詞!","警告", JOptionPane.WARNING_MESSAGE); } } 運行結果: (5)刪除功能實現: public void delwords() throws SQLException//刪除詞庫中記錄
33、 { @SuppressWarnings("unused") String cname,ename; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){} Connection Ex1Con=DriverManager.getConnection("jdbc:odbc:keshe","",""); Statement Ex1Stmt=Ex1Con.createStatement(); ResultSet
34、 rs=Ex1Stmt.executeQuery("SELECT * FROM keshe"); boolean boo=false; while((boo=rs.next())==true) { ename=rs.getString("word"); cname=rs.getString("chinese"); if(ename.equals(inputtext.getText())) { Ex1Stmt.executeUpdate("DELETE FROM keshe WHERE word="+ inputtext.ge
35、tText().trim()+""); JOptionPane.showMessageDialog(this,"成功刪除記錄!","恭喜", JOptionPane.WARNING_MESSAGE); break; } } Ex1Con.close(); if(boo==false) { JOptionPane.showMessageDialog(this,"不存在此單詞!","警告", JOptionPane.WARNING_MESSAGE); } } 運行結果:
36、 第六章 課程設計總結 經過了一個星期的時間,利用Java開發(fā)的電子詞典程序終于完成了。 本程序是針對其相關企業(yè)現狀的分析之后,確定了程序涉及的領域,包括了界面設計、功能設計、數據庫設計等,是一個具有實際應用意義的程序。經過這次的課題的設計與實現,盡管遇到了很多很多難題,但是讓我讓我更加受益的是在這次課程設計中得到的經驗、心得和鍛煉。這讓我發(fā)現編譯程序的過程其實就是不斷解決問題的過程,從中也感受到了編寫軟件的
37、樂趣,一個人永遠有學不完的知識,就算開發(fā)軟件的各項知識都學會了,但在實際開發(fā)過程中仍然會遇到不少問題,這是就要做到以下這兩點:一個是“查”,另一個則是“問”。通過仔細的查閱資料和詢問老師以及同學,最終解決了不少的問題。這也是使我認識到解決問題一方面依靠外界的幫助,更重要的是依靠自己的能力。這次課程設計給我以前學過的知識做了一個總結,為我深 入學習編程做了鋪墊。由于時間以及其它方面的原因,我設計的程序只完成了幾個重要的功能的實現,依然存在著不少問題和缺陷,比如說:用戶界面設計不夠美觀,異常出錯處理功能比較差等多方面問題,這還需要在以后的學習中加以改進,希望以后能夠做的更成功。 第七章 參考文獻 [1] 劉寶林 《Java程序設計與案例》 北京:高等教育出版社 [2] 耿祥義 《java大學實用教程》 北京:電子工業(yè)出版社 [3] 馬俊,范玫 《Java語言面向對象程序設計》 北京: 機械工業(yè)出版社
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。