課程設(shè)計(jì)---圖書信息管理系統(tǒng)_第1頁
已閱讀1頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p><b>  2011年6月</b></p><p><b>  自我評(píng)價(jià)</b></p><p><b>  自我評(píng)分:90'。</b></p><p>  首先,我在老師給的程序

2、上完善了圖書管理系統(tǒng)的一些基本功能,如增加、修改、刪除、查詢,另外,我還增加了bookmain()、Adminbooksever()、login()、jdbcfile()等函數(shù)功能,實(shí)現(xiàn)了可以按多種方式查找,如按圖書編號(hào),按圖書名稱,實(shí)現(xiàn)了完全的在界面操作的系統(tǒng)。</p><p>  然后,我通過查閱書籍,上網(wǎng)查詢,最后,我將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(Oracle Database 10g)中,通過C\S模式的服務(wù)器和接

3、收端的運(yùn)行平臺(tái),以及Java驅(qū)動(dòng)程序,連接了數(shù)據(jù)庫,使其數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)隨著界面的操作而隨時(shí)更新。用java.sql.PreparedStatement這個(gè)java.sql.Statement接口的一個(gè)變種,可以使用參數(shù)化SQL語句,用java.sql.ResultSet這個(gè)接口抽象了運(yùn)行SQL select語句的結(jié)果,提供了訪問結(jié)果的方法,這個(gè)接口可以用來來訪問各記錄中不同的字段。</p><p>  為了保證

4、安全性,我使用了自定義函數(shù)Login()的登錄功能,使得登錄用戶要有用戶名和密碼;Bookmain()函數(shù)是實(shí)現(xiàn)首頁面板,除了菜單選項(xiàng),還有下拉菜單的功能實(shí)現(xiàn);Adminbooksever()函數(shù)是接受服務(wù)器端的傳輸功能,實(shí)現(xiàn)提示面板,因?yàn)楸鞠到y(tǒng)采用的是本地C\S模式,有服務(wù)器和接收端;jdbcfile()函數(shù)是實(shí)現(xiàn)與數(shù)據(jù)庫的連接函數(shù)。而在每個(gè)面板上也就免不了的加了按鈕的觸發(fā)事件功能。另外的基本功能是用單獨(dú)的每個(gè)函數(shù)實(shí)現(xiàn)的。具體見代碼。

5、</p><p>  下面是我的工作步驟:</p><p>  一:查閱相關(guān)資料。針對(duì)系統(tǒng)的開發(fā)目的、需求分析、功能分析、系統(tǒng)分析、系統(tǒng)結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)等相關(guān)知識(shí)的查閱和學(xué)習(xí)。</p><p>  二:數(shù)據(jù)庫設(shè)計(jì)-------概念設(shè)計(jì)(E-R圖的設(shè)計(jì))、邏輯設(shè)計(jì)(表及視圖的設(shè)計(jì))</p><p>  三:系統(tǒng)功能設(shè)計(jì)-----功能模塊詳細(xì)設(shè)計(jì)&

6、lt;/p><p><b>  四:總結(jié)</b></p><p><b>  【摘要】</b></p><p>  書籍是人類不可缺少的精神食糧,圖書管理系統(tǒng)是一些單位不可缺少的部分,尤其是對(duì)一些學(xué)校來說尤為的重要。所以圖書管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┲刈龅男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)的人工的方式管理圖書、期刊、

7、試卷合訂本等,這種管理方式存在著諸多的缺點(diǎn),如:效率低,保密性差,另外時(shí)間長了,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來不少的困難。</p><p>  隨著圖書館規(guī)模的不斷擴(kuò)大,圖書數(shù)量也相應(yīng)的增加,有關(guān)圖書的各種信息量也成倍增加,面對(duì)著龐大的信息量,傳統(tǒng)的人工方式管理會(huì)導(dǎo)致圖書館管理上的混亂,人力與物力過多浪費(fèi),圖書館信息管理費(fèi)用的增加,從而使圖書館的負(fù)擔(dān)過重,影響整個(gè)圖書館的運(yùn)作和控制管理,因此

8、,必須制定一套合理、有效,規(guī)范和實(shí)用的圖書管理系統(tǒng),對(duì)圖書資料進(jìn)行集中統(tǒng)一的管理。</p><p>  本論文主要是針對(duì)圖書信息管理系統(tǒng)的研究,介紹的是一個(gè)典型的數(shù)據(jù)庫應(yīng)用系統(tǒng),主要涉及數(shù)據(jù)的讀寫和數(shù)據(jù)的傳遞,利用數(shù)據(jù)庫Oracle Database 10g軟件和Eclipse3.62工具,采用java語言進(jìn)行開發(fā),介紹了系統(tǒng)的開發(fā)目的、系統(tǒng)分析、系統(tǒng)結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)、等。系統(tǒng)的建立將支持圖書管理人員對(duì)各類信息進(jìn)行

9、快捷、準(zhǔn)確、方便的查詢;支持管理人員對(duì)圖書的錄入、修改、刪除與查詢。</p><p>  關(guān)鍵詞 Java Oracle Access 面向?qū)ο?圖書館里</p><p><b>  目錄</b></p><p>  摘要....................................................

10、...........I</p><p>  緒論..........................................................1</p><p>  系統(tǒng)功能介紹..................................................1</p><p>  2.1系統(tǒng)設(shè)計(jì)..............

11、.....................................1</p><p>  2.2系統(tǒng)流程及模塊功能.........................................2</p><p>  2.3模塊功能介紹...............................................2</p><p>  數(shù)據(jù)

12、庫設(shè)計(jì)....................................................3</p><p>  3.1數(shù)據(jù)庫需求分析.............................................3</p><p>  3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).........................................3</p&g

13、t;<p>  3.3數(shù)據(jù)庫表邏輯結(jié)構(gòu)設(shè)計(jì).......................................3</p><p>  系統(tǒng)功能實(shí)現(xiàn)..................................................4</p><p>  4.1數(shù)據(jù)庫模塊設(shè)計(jì).......................................

14、......4</p><p>  4.2管理員登錄模塊設(shè)計(jì).........................................6</p><p>  4.3主界面功能實(shí)現(xiàn).............................................9</p><p>  4.4圖書添加功能實(shí)現(xiàn).......................

15、...................12</p><p>  4.5圖書查詢功能實(shí)現(xiàn)..........................................17</p><p>  4.6圖書刪除功能實(shí)現(xiàn)..........................................21</p><p>  4.7圖書信息修改功能實(shí)現(xiàn).......

16、...............................26</p><p>  4.8圖書管理模塊的服務(wù)器端功能實(shí)現(xiàn)............................32</p><p>  總結(jié) ........................................................39</p><p>  參考文獻(xiàn).....

17、................................................39</p><p><b>  第1章 緒 論</b></p><p>  隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展、科學(xué)技術(shù)的全面進(jìn)步和計(jì)算機(jī)事業(yè)的飛速發(fā)展,以計(jì)算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時(shí)期。隨著經(jīng)濟(jì)文化水平的顯著提高,人們對(duì)生活質(zhì)量及工作環(huán)境要求也越來越高。書籍作

18、為人類的精神食糧,在現(xiàn)代社會(huì)中越來越受到重視,大量的書籍出現(xiàn)在市場上,人們有了各種不同的選擇。與此同時(shí),為了管理大量的圖書,圖書倉庫也大量的出現(xiàn),倉庫的管理問題也就提上了日程。隨著圖書的大量增加,其管理難度也越來越大,如何優(yōu)化倉庫的日常管理也就成了一個(gè)大眾化的課題。</p><p>  在計(jì)算機(jī)飛速發(fā)展的今天,將計(jì)算機(jī)這一信息處理器應(yīng)用于倉庫的日常管理已是勢(shì)必索然,而且這也將為倉庫的管理帶來前所未有的變化,同時(shí)也

19、會(huì)為企業(yè)的飛速發(fā)展提供無限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已成為倉庫管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理帶來明顯的經(jīng)濟(jì)效益和社會(huì)效益。主要體現(xiàn)在:極大的提高了倉庫管理人員的工作效率,大大減少了以往入出存流程繁瑣、雜亂、周期長的弊端。</p><p>  基于倉庫管理的自動(dòng)化,可以減少入庫管理、出庫管理及庫存管理的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。倉庫的管理操作自動(dòng)化和信息的電子化,全面提高了倉庫的管理水

20、平。</p><p>  隨著我國改革開放的不斷深入,經(jīng)濟(jì)飛速的發(fā)展,企業(yè)想要生存和發(fā)展 ,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理好似萬萬不行的,圖書管理的全面自動(dòng)化、信息化則是其中極其重要的部分。為了加快倉庫管理的自動(dòng)化的步伐,提高倉庫的管理業(yè)務(wù)處理效率,建立倉庫管理系統(tǒng)已變得十分重要。新書入庫、出庫還是現(xiàn)在企業(yè)圖書倉庫管理的常規(guī)基本模式。如何設(shè)計(jì)好倉庫的管理系統(tǒng),盡可能的減少倉庫管理的復(fù)雜性和低

21、效率性就成為當(dāng)前最重要的問題。</p><p>  通過對(duì)圖書倉庫管理的日常工作的詳細(xì)調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能的實(shí)現(xiàn),技術(shù)的要求以及可行性等諸多方面進(jìn)行考慮,認(rèn)為本課題是一個(gè)適合 現(xiàn)今圖書倉庫管理需求的計(jì)算機(jī)信息管理系統(tǒng),具有一定的實(shí)際開發(fā)價(jià)值和使用價(jià)值。</p><p>  第2章 系統(tǒng)功能介紹</p><p><b>  2.1系

22、統(tǒng)設(shè)計(jì)</b></p><p>  本人設(shè)計(jì)的圖書信息管理系統(tǒng)采用C/S模式,通過內(nèi)部網(wǎng)絡(luò)處理和信息交換,開發(fā)結(jié)構(gòu)、解決數(shù)據(jù)庫共享問題,客戶端運(yùn)行Java客戶端程序,服務(wù)器端運(yùn)行Java服務(wù)器端程序。主要用于對(duì)圖書館日常工作的管理,主要任務(wù)是用計(jì)算機(jī)圖書各種信息進(jìn)行日常的管理,如增加、修改、刪除、查詢圖書的管理等。本系統(tǒng)實(shí)現(xiàn)了圖書館的信息自動(dòng)化管理,完成了圖書管理系統(tǒng)的基本功能,該系統(tǒng)主要包括管理員子

23、系統(tǒng)和書籍管理子系統(tǒng)退出子系統(tǒng)兩個(gè)部分。其書籍管理子系統(tǒng)的主要功能是用于書籍信息的管理,如新書的入庫、圖書查詢、刪除圖書、圖書修改。</p><p>  2.2系統(tǒng)流程及模塊功能</p><p>  系統(tǒng)圖書信息管理流程如下圖1所示</p><p><b>  N</b></p><p><b>  Y<

24、/b></p><p><b>  圖1</b></p><p>  系統(tǒng)模塊功能結(jié)構(gòu)分析圖如圖2所示</p><p><b>  圖2</b></p><p><b>  2.3模塊功能介紹</b></p><p>  本系統(tǒng)是圖書管理系統(tǒng),本系

25、統(tǒng)啟動(dòng)后需要登錄,然后進(jìn)入主界面在這個(gè)界面,我們可以選擇所需要的功能模塊來實(shí)現(xiàn)所要的執(zhí)行功能。</p><p>  添加圖書功能:圖書信息錄入到數(shù)據(jù)庫當(dāng)中(主要包括圖書的編號(hào)、書名、作者、出版社、出版日期、圖書簡介、圖書類別等);</p><p>  B)修改圖書功能:把數(shù)據(jù)庫當(dāng)中圖書的錄入信息錯(cuò)誤的圖書先查找出來,再對(duì)其進(jìn)行修改和保存;</p><p>  C)刪

26、除圖書功能:主要的是對(duì)圖書館中沒有此書和不想保留圖書的資料進(jìn)行刪除,不存儲(chǔ)該書信息;</p><p>  D)查詢圖書功能:方便管理工作人員對(duì)圖書信息的了解,主要按照?qǐng)D書的編號(hào)和書名進(jìn)行瀏覽圖書信息;</p><p><b>  第3章 數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  3.1數(shù)據(jù)庫需求分析</p><p>  數(shù)

27、據(jù)庫結(jié)構(gòu)要能充分滿足各種信息的輸入和輸出,收集基本數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為具體設(shè)計(jì)做準(zhǔn)備。針對(duì)一般圖書管理系統(tǒng)的需求,通過對(duì)數(shù)據(jù)管理工作過程的內(nèi)容和數(shù)據(jù)流程的分析,得到其系統(tǒng)的邏輯模型,設(shè)計(jì)如下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p>  圖書(圖書編號(hào),圖書名稱,作者,出版社,出版日期,圖書簡介,圖書類型)</p><p>  用戶(用戶名,密碼)</p>

28、;<p>  3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)用到的數(shù)據(jù)庫表的E—R圖如圖3</p><p>  3.3數(shù)據(jù)庫表邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  管理員表Admin用來保存管理員用戶信息,結(jié)構(gòu)如表1</p><p><b>  表1 管理員表</b></p><p&g

29、t;  圖書表book用來保存圖書信息,結(jié)構(gòu)如表2</p><p>  表2 圖書表book</p><p>  第4章 系統(tǒng)功能實(shí)現(xiàn)</p><p>  4.1連接數(shù)據(jù)庫模塊設(shè)計(jì)</p><p>  系統(tǒng)對(duì)圖書所需要的信息都存儲(chǔ)于數(shù)據(jù)庫當(dāng)中,要對(duì)這些數(shù)據(jù)信息進(jìn)行操作,就必須連接數(shù)據(jù)庫,為了省去每次操作都要編寫連接數(shù)據(jù)庫程序的步驟,我們把連接

30、數(shù)據(jù)庫操作封裝到一個(gè)類jdbcfile.java中,在不同的模塊中調(diào)用這個(gè)類就可以對(duì)數(shù)據(jù)庫進(jìn)行連接,執(zhí)行相應(yīng)的數(shù)據(jù)庫操作,這樣就使得連接數(shù)據(jù)庫安全高效,程序代碼簡潔清晰,也符合java面向?qū)ο蟮乃枷搿?lt;/p><p>  連接數(shù)據(jù)庫類jdbcfile.java的代碼如下:</p><p>  package 管理員登錄;</p><p>  import java.

31、sql.*;</p><p>  public class jdbcfile {</p><p><b>  // 聲明變量</b></p><p>  Connection conn;</p><p>  Statement stmt;</p><p>  int inorupdatevalue

32、 = -1;</p><p>  // 聲明構(gòu)造方法,并拋出異常</p><p>  public jdbcfile() throws Exception {</p><p><b>  try {</b></p><p>  String drivername = "oracle.jdbc.driver.Or

33、acleDriver";</p><p>  String dbURL = "jdbc:oracle:thin:@0.0.0.0:1521:xe";</p><p>  String user = "system";</p><p>  String password = "123";</p

34、><p><b>  // 加載驅(qū)動(dòng)程序</b></p><p>  Class.forName(drivername);</p><p>  // 創(chuàng)建數(shù)據(jù)庫連接Connection對(duì)象</p><p>  conn = DriverManager.getConnection(dbURL, user, password);

35、</p><p>  // 創(chuàng)建Statement對(duì)象</p><p>  stmt = conn.createStatement();</p><p>  } catch (ClassNotFoundException e) {</p><p><b>  // 捕獲異常</b></p><p>

36、;  throw new Exception("數(shù)據(jù)庫驅(qū)動(dòng)未找到" + e.getMessage());</p><p>  } catch (SQLException e) {</p><p><b>  // 捕獲異常</b></p><p>  throw new Exception("數(shù)據(jù)庫未連接"

37、; + e.getMessage());</p><p><b>  }</b></p><p><b>  } </b></p><p>  // 定義查詢數(shù)據(jù)的方法</p><p>  public synchronized ResultSet executeQuery(String sql

38、) throws Exception {</p><p>  ResultSet rs = stmt.executeQuery(sql);</p><p>  return rs;</p><p><b>  }</b></p><p>  // 定義插入數(shù)據(jù)的方法</p><p>  publi

39、c synchronized int insert(String sql) throws Exception {</p><p>  inorupdatevalue = stmt.executeUpdate(sql);</p><p>  return inorupdatevalue;</p><p><b>  }</b></p>

40、<p>  // 定義修改數(shù)據(jù)的方法</p><p>  public synchronized int update(String sql) throws Exception {</p><p>  inorupdatevalue = stmt.executeUpdate(sql);</p><p>  return inorupdatevalue;

41、</p><p><b>  }</b></p><p>  // 定義刪除數(shù)據(jù)的方法</p><p>  public synchronized int del(String sql) throws Exception {</p><p>  inorupdatevalue = stmt.executeUpdate(s

42、ql);</p><p>  return inorupdatevalue;</p><p><b>  }</b></p><p>  // 定義關(guān)閉數(shù)據(jù)庫連接的方法</p><p>  public void close() throws Exception {</p><p>  conn.

43、close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  在jdbcfile的代碼中,定義了查詢數(shù)據(jù)、插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)和關(guān)閉數(shù)據(jù)庫連接的方法。</p><p>  其連接的圖如圖4所示</p><p>

44、<b>  圖4</b></p><p>  4.2管理員登錄模塊設(shè)計(jì)</p><p>  為了保證系統(tǒng)的安全性,只有管理員才可以對(duì)系統(tǒng)進(jìn)行操作,因此,需要對(duì)用戶登錄的信息進(jìn)行驗(yàn)證,管理員的用戶和密碼存放在數(shù)據(jù)庫當(dāng)中,通過文本框獲得用戶輸入的用戶名和密碼,然后與數(shù)據(jù)庫的用戶名和密碼進(jìn)行比較,如果匹配,則進(jìn)入系統(tǒng),否則提示用戶名和密碼不正確。</p>&l

45、t;p>  管理員登錄界面主要用于輸入用戶名和密碼,以便與數(shù)據(jù)庫的用戶名和密碼進(jìn)行比較,界面主要包括兩個(gè)標(biāo)簽、一個(gè)文本框、一個(gè)密碼框和兩個(gè)按鈕,如圖5所示。</p><p><b>  圖5 登錄界面</b></p><p>  圖形用戶登錄界面的代碼如下:</p><p>  package 管理員登錄;</p><

46、p>  import java.awt.Container;</p><p>  import java.awt.GridLayout;</p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p>

47、;  import java.sql.ResultSet;</p><p>  import java.sql.SQLException;</p><p>  import javax.swing.JButton;</p><p>  import javax.swing.JFrame;</p><p>  import javax.swin

48、g.JLabel;</p><p>  import javax.swing.JOptionPane;</p><p>  import javax.swing.JPasswordField;</p><p>  import javax.swing.JTextField;</p><p>  import javax.swing.Swing

49、Constants;</p><p>  public class Login extends JFrame {</p><p>  //聲明標(biāo)簽、按鈕、文本框和密碼框</p><p>  private JLabel JLb1;private JLabel JLb2;</p><p>  private JButton Ok_btn;pri

50、vate JButton Cancel_btn;</p><p>  private JTextField jtflduser;private JPasswordField jtpwdfld;</p><p><b>  //聲明窗口</b></p><p>  private JFrame frame;//構(gòu)造方法</p>&l

51、t;p>  public Login (){</p><p>  frame=new JFrame("登錄");Container content=frame.getContentPane();</p><p>  //采用GridLayout布局管理</p><p>  content.setLayout(new GridLayout(

52、3,2,20,20));</p><p>  JLb1=new JLabel("用戶名");JLb2=new JLabel("密 碼");</p><p>  //將標(biāo)簽置于居中位置</p><p>  JLb1.setHorizontalAlignment(SwingConstants.CENTER);</p>

53、<p>  JLb2.setHorizontalAlignment(SwingConstants.CENTER);</p><p>  jtflduser=new JTextField();jtpwdfld=new JPasswordField();</p><p>  Ok_btn=new JButton("確定");Cancel_btn=new JBu

54、tton("取消");</p><p>  //為按鈕添加事件監(jiān)聽者</p><p>  Ok_btn.addActionListener(new ActionHandler());</p><p>  Cancel_btn.addActionListener(new ActionHandler());</p><p> 

55、 //添加標(biāo)簽、文本框、密碼框和按鈕到窗口</p><p>  content.add(JLb1);content.add(jtflduser);</p><p>  content.add(JLb2);content.add(jtpwdfld);</p><p>  content.add(Ok_btn);content.add(Cancel_btn);</

56、p><p>  frame.pack();</p><p>  //設(shè)定登錄窗口啟動(dòng)時(shí)出現(xiàn)在屏幕的中央位置</p><p>  frame.setLocationRelativeTo(null);</p><p>  frame.setSize(300,200);frame.setVisible(true);</p><p&g

57、t;<b>  }</b></p><p>  //實(shí)現(xiàn)ActionListener監(jiān)聽</p><p>  class ActionHandler implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e){</p><p&

58、gt;  String str1,str2,sqlStr;Object obj=e.getSource();</p><p>  //獲得文本框和密碼框的數(shù)據(jù)</p><p>  str1=jtflduser.getText().trim();</p><p>  str2=new String(jtpwdfld.getPassword()).trim();<

59、/p><p>  try{//單擊確定按鈕</p><p>  if(obj.equals(Ok_btn)){if(str1.equals("")){</p><p>  JOptionPane.showMessageDialog(frame,"用戶名不能為空!");</p><p><b>  

60、return;}</b></p><p><b>  //創(chuàng)建數(shù)據(jù)庫連接</b></p><p>  jdbcfile conn=new jdbcfile();</p><p>  sqlStr="select*from Admin where num='"+str1+"'and pas

61、sword='"+str2+"'";</p><p>  ResultSet result=conn.executeQuery(sqlStr);</p><p>  if(result.next()){//彈出對(duì)話框提示登錄成功</p><p>  JOptionPane.showConfirmDialog(frame,

62、"登錄成功!");</p><p><b>  //打開圖書館主頁</b></p><p>  bookmain bookmain1=new bookmain();bookmain1.go();</p><p><b>  //關(guān)閉登錄窗口</b></p><p>  frame

63、.dispose();//關(guān)閉數(shù)據(jù)庫連接</p><p>  conn.close();}else{</p><p>  JOptionPane.showMessageDialog(frame,"用戶名或密碼錯(cuò)誤!");}</p><p>  }else if(obj.equals(Cancel_btn)){</p><p&

64、gt;<b>  //單擊取消按鈕</b></p><p>  System.exit(0);}</p><p>  }catch(ClassNotFoundException ce){</p><p>  System.out.println("SQLException:"+ce.getMessage());}</p

65、><p>  catch(SQLException ex){System.out.println(ex);}</p><p>  catch (Exception s){s.printStackTrace();}</p><p><b>  }}</b></p><p>  public static void main(S

66、tring[] args) {</p><p>  Login login=new Login();}</p><p><b>  }</b></p><p>  Login類繼承了Frame類,因此可以顯示,在Login類中,首先聲明標(biāo)簽、按鈕、文本框、密碼框、和一個(gè)JFrame窗口,然后通過構(gòu)造方法創(chuàng)建標(biāo)簽、按鈕、文本框、密碼框,并添加到窗

67、口容器中,最后設(shè)置窗口的大小和可見性。當(dāng)單擊按鈕的時(shí)候產(chǎn)生事件,按鈕把事件對(duì)象傳遞給監(jiān)聽者,事件監(jiān)聽者要監(jiān)聽到該事件,就要在程序當(dāng)中加入一個(gè)能夠“聽到”該事件的接口,實(shí)現(xiàn)這個(gè)接口并處理監(jiān)聽到的事件。那么就在上面的Login代碼中實(shí)現(xiàn)一個(gè)ActionListener類的代碼。</p><p>  4.3主界面功能實(shí)現(xiàn)</p><p>  在系統(tǒng)的主界面中,包括兩個(gè)部分:圖書管理和退出。而在各

68、自的下拉菜單中有各自的實(shí)現(xiàn)功能。運(yùn)行的主界面如圖6所示。</p><p><b>  圖6 系統(tǒng)主界面</b></p><p>  在本界面的實(shí)現(xiàn)當(dāng)中,定義了一個(gè)類bookmain,繼承了JFrame類,在bookmain類當(dāng)中,定義了一個(gè)菜單欄、2個(gè)菜單和5個(gè)菜單項(xiàng),在類中沒有定義構(gòu)造方法,而是定義了一個(gè)go()的方法,通過此方法設(shè)置窗口的大小、布局管理器和標(biāo)題,將

69、菜單加入到各自的菜單中,把菜單加入到菜單欄中,并將菜單欄加入到窗口中。其技術(shù)實(shí)現(xiàn)代碼具體如下:</p><p>  package 管理員登錄;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;<

70、/p><p>  public class bookmain extends JFrame {</p><p>  // 聲明面板容器和標(biāo)簽</p><p>  private JPanel jp1 = new JPanel();</p><p>  private JLabel label1;</p><p>  Bor

71、derLayout borderLayout1 = new BorderLayout();</p><p><b>  // 創(chuàng)建菜單欄</b></p><p>  JMenuBar jMenuBar1 = new JMenuBar();</p><p>  JMenu jMenu1 = new JMenu();</p><

72、p>  JMenu jMenu2 = new JMenu();</p><p>  JMenuItem jMenuItem1 = new JMenuItem();</p><p>  JMenuItem jMenuItem2 = new JMenuItem();</p><p>  JMenuItem jMenuItem3 = new JMenuItem();

73、</p><p>  JMenuItem jMenuItem4 = new JMenuItem();</p><p>  JMenuItem jMenuItem5 = new JMenuItem();</p><p>  public void go() {</p><p>  // 設(shè)置窗口的容器的布局管理器</p><

74、p>  this.getContentPane().setLayout(borderLayout1);</p><p>  // 設(shè)置窗口大小和標(biāo)題</p><p>  this.setSize(new Dimension(300, 200));</p><p>  this.setTitle("圖書信息管理系統(tǒng)");</p>

75、<p>  label1 = new JLabel("設(shè)計(jì)者——數(shù)學(xué)系信計(jì)0801班 丁軍 ");</p><p><b>  // 添加菜單欄</b></p><p>  this.setJMenuBar(jMenuBar1);</p><p>  // 設(shè)置菜單和菜單項(xiàng)的名稱</p><

76、p>  jMenu1.setText("圖書管理");</p><p>  jMenuItem1.setText("添加圖書");</p><p>  jMenuItem2.setText("修改圖書");</p><p>  jMenuItem3.setText("刪除圖書");

77、</p><p>  jMenuItem4.setText("查詢圖書");</p><p>  jMenuItem5.setText("退出系統(tǒng)");</p><p>  jMenu2.setText("退出");</p><p>  // 向菜單欄添加菜單</p>

78、<p>  jMenuBar1.add(jMenu1);</p><p>  jMenuBar1.add(jMenu2);</p><p>  // 向菜單中添加菜單項(xiàng)</p><p>  jMenu1.add(jMenuItem1);</p><p>  jMenu1.add(jMenuItem2);</p><

79、;p>  jMenu1.add(jMenuItem3);</p><p>  jMenu1.add(jMenuItem4);</p><p>  jMenu2.add(jMenuItem5);</p><p>  // 監(jiān)聽者對(duì)象注冊(cè)給jMenuItem1</p><p>  jMenuItem1.addActionListener(n

80、ew ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {// 將添加圖書管理面板添加到j(luò)p1中,并顯示出來</p><p>  addbook addbook1 = new addbook();</p><p>  jp1.add(addbook1, "添加圖書

81、信息");</p><p>  CardLayout c1 = (CardLayout) jp1.getLayout();</p><p>  c1.show(jp1, "添加圖書信息");</p><p><b>  }</b></p><p><b>  });</b&g

82、t;</p><p>  // 監(jiān)聽者對(duì)象注冊(cè)給jMenuItem2</p><p>  jMenuItem2.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {// 將修改圖書管理面板添加到j(luò)p1中,并顯示出來</p&g

83、t;<p>  updatebook updatebook1 = new updatebook();</p><p>  jp1.add(updatebook1, "修改圖書信息");</p><p>  CardLayout c1 = (CardLayout) jp1.getLayout();</p><p>  c1.show(

84、jp1, "修改圖書信息");</p><p><b>  }</b></p><p><b>  });</b></p><p>  // 監(jiān)聽者對(duì)象注冊(cè)給jMenuItem3</p><p>  jMenuItem3.addActionListener(new ActionL

85、istener() {</p><p>  public void actionPerformed(ActionEvent e) {// 將刪除圖書管理面板添加到j(luò)p1中,并顯示出來</p><p>  delbook delbook1 = new delbook();</p><p>  jp1.add(delbook1, "刪除圖書信息");

86、</p><p>  CardLayout c1 = (CardLayout) jp1.getLayout();</p><p>  c1.show(jp1, "刪除圖書信息");</p><p><b>  }</b></p><p><b>  });</b></p&g

87、t;<p>  // 監(jiān)聽者對(duì)象注冊(cè)給jMenuItem4iwo k</p><p>  jMenuItem4.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {// 將查詢圖書管理面板添加到j(luò)p1中,并顯示出來</p>&

88、lt;p>  searchbook searchbook1 = new searchbook();</p><p>  jp1.add(searchbook1, "查詢圖書信息");</p><p>  CardLayout c1 = (CardLayout) jp1.getLayout();</p><p>  c1.show(jp1,

89、"查詢圖書信息");</p><p><b>  }</b></p><p><b>  });</b></p><p>  // 監(jiān)聽者對(duì)象注冊(cè)給jMenuItem5</p><p>  jMenuItem5.addActionListener(new java.awt.eve

90、nt.ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p

91、><p>  // 設(shè)置Jpane1的布局管理</p><p>  CardLayout cardlayout = new CardLayout();</p><p>  jp1.setLayout(cardlayout);</p><p>  jp1.add(label1, "圖書管理系統(tǒng)");</p><

92、;p>  this.add(jp1, BorderLayout.CENTER);</p><p>  setSize(300, 450);</p><p>  this.setVisible(true);</p><p><b>  }</b></p><p>  public static void main(S

93、tring[] args) {</p><p>  // TODO Auto-generated method stub</p><p>  bookmain ex = new bookmain();</p><p><b>  ex.go();</b></p><p>  ex.setVisible(true);<

94、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  4.4圖書添加功能的實(shí)現(xiàn)</p><p>  圖書入庫是圖書管理系統(tǒng)中不可缺少的部分,用于圖書入庫,通過界面中文本框接受書籍信息,然后將此信息寫入到Access數(shù)據(jù)庫中。運(yùn)行界面如圖7所示,運(yùn)行成功提示如

95、圖8。</p><p><b>  圖8 </b></p><p>  其技術(shù)實(shí)現(xiàn)的代碼如下:</p><p>  package 管理員登錄;</p><p>  import java.io.*;</p><p>  import java.net.*;</p><p>

96、;  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  public class addbook extends JPanel{</p><p><b>  //聲明標(biāo)簽</b>&

97、lt;/p><p>  private JTextField </p><p><b>  圖7</b></p><p>  id,bookname,author,publish,time,synopsis,category;</p><p><b>  //聲明文本框</b></p>&

98、lt;p>  private JLabel jid,jbookname,jauthor,jpublish,jtime,jsynopsis,jcategory;</p><p><b>  //聲明按鈕</b></p><p>  private JButton button1,button2;</p><p><b>  //聲

99、明數(shù)據(jù)流對(duì)象</b></p><p>  PrintWriter output;</p><p>  BufferedReader input;</p><p><b>  //聲明字符串變量</b></p><p>  String message="";</p><

100、p><b>  //構(gòu)造方法</b></p><p>  public addbook(){</p><p>  //設(shè)置布局為null</p><p>  this.setLayout(null);</p><p>  jid=new JLabel("編號(hào)");</p><

101、p>  id=new JTextField();</p><p>  jbookname=new JLabel("書名");</p><p>  bookname=new JTextField();</p><p>  jauthor=new JLabel("作者");</p><p>  aut

102、hor=new JTextField();</p><p>  jpublish=new JLabel("出版社");</p><p>  publish=new JTextField();</p><p>  jtime=new JLabel("出版日期");</p><p>  time=new J

103、TextField();</p><p>  jsynopsis=new JLabel("圖書簡介");</p><p>  synopsis=new JTextField();</p><p>  jcategory=new JLabel("類別");</p><p>  category=new J

104、TextField();</p><p>  button1=new JButton("添加");</p><p>  button2=new JButton("取消");</p><p>  //設(shè)置標(biāo)簽大小和位置</p><p>  jid.setBounds(30,20,60,30);</p

105、><p>  jbookname.setBounds(30,70,60,26);</p><p>  jauthor.setBounds(30,120,60,26);</p><p>  jpublish.setBounds(30,170,60,26);</p><p>  jtime.setBounds(30,220,60,26);</p

106、><p>  jsynopsis.setBounds(30,270,60,26);</p><p>  jcategory.setBounds(30,320,60,26);</p><p>  //設(shè)置文本框的位置和大小</p><p>  id.setBounds(110,20,120,26);</p><p>  bo

107、okname.setBounds(110,70,120,26);</p><p>  author.setBounds(110,120,120,26);</p><p>  publish.setBounds(110,170,120,26);</p><p>  time.setBounds(110,220,120,26);</p><p>

108、  synopsis.setBounds(110,270,120,26);</p><p>  category.setBounds(110,320,120,26);</p><p>  //設(shè)置按鈕的位置和大小</p><p>  button1.setBounds(50,360,60,26);</p><p>  button2.setB

109、ounds(130,360,60,26);</p><p>  //將標(biāo)簽、文本框和按鈕添加到JPanel中</p><p>  this.add(jid);</p><p>  this.add(id);</p><p>  this.add(jbookname);</p><p>  this.add(bookna

110、me);</p><p>  this.add(jauthor);</p><p>  this.add(author);</p><p>  this.add(jpublish);</p><p>  this.add(publish);</p><p>  this.add(jtime);</p>&

111、lt;p>  this.add(time);</p><p>  this.add(jsynopsis);</p><p>  this.add(synopsis);</p><p>  this.add(jcategory);</p><p>  this.add(category);</p><p>  th

112、is.add(button1);</p><p>  this.add(button2);</p><p>  //監(jiān)聽者對(duì)象注冊(cè)給button1</p><p>  button1.addActionListener(new ActionListener()</p><p><b>  {</b></p>

113、;<p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  if(id.getText().toString().equals(""))</p><p>  JOptionPane.showMessageDial

114、og(null,"編號(hào)不能為空!","添加",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p><b>  else</b></p><p>  if(bookname.getText().toString().equals(""))&l

115、t;/p><p>  JOptionPane.showMessageDialog(null,"書名不能為空!","添加",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p><b>  else</b></p><p>  if(autho

116、r.getText().toString().equals(""))</p><p>  JOptionPane.showMessageDialog(null,"作者不能為空!","添加",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p><b> 

117、 else</b></p><p>  if(publish.getText().toString().equals(""))</p><p>  JOptionPane.showMessageDialog(null,"出版社不能為空!","添加",</p><p>  JOptionPane.

118、WARNING_MESSAGE);</p><p><b>  else</b></p><p>  if(time.getText().toString().equals(""))</p><p>  JOptionPane.showMessageDialog(null,"出版日期不能為空!",&quo

119、t;添加",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p><b>  else</b></p><p>  if(category.getText().toString().equals(""))</p><p>  JOptionPane

120、.showMessageDialog(null,"圖書類別不能為空!","添加",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p>  else//調(diào)用方法connect</p><p>  connect("add"+"/"+id.get

121、Text().toString()</p><p>  +"/"+bookname.getText().toString()</p><p>  +"/"+author.getText().toString()</p><p>  +"/"+publish.getText().toString()</

122、p><p>  +"/"+time.getText().toString()</p><p>  +"/"+synopsis.getText().toString()</p><p>  +"/"+category.getText().toString());</p><p><b

123、>  }</b></p><p><b>  });</b></p><p>  button2.addActionListener(new ActionListener(){</p><p>  public void actionPerformed(ActionEvent e){</p><p> 

124、 id.setText("");</p><p>  bookname.setText("");</p><p>  author.setText("");</p><p>  publish.setText("");</p><p>  time.setText

125、("");</p><p>  synopsis.setText("");</p><p>  category.setText("");</p><p><b>  }</b></p><p><b>  });</b></p&g

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論