

版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)
- 圖書信息管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)---圖書信息管理系統(tǒng)
- 課程設(shè)計(jì)---圖書信息管理系統(tǒng)
- 課程設(shè)計(jì)--- 圖書信息管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---圖書信息管理系統(tǒng)設(shè)計(jì)
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- sql課程設(shè)計(jì)(圖書信息管理系統(tǒng))
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書信息管理系統(tǒng)java課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--圖書信息管理系統(tǒng)設(shè)計(jì)
- 圖書信息管理課程設(shè)計(jì)
- c語言課程設(shè)計(jì)----圖書信息管理系統(tǒng)
- c++課程設(shè)計(jì)——圖書信息管理系統(tǒng)
- 程序課程設(shè)計(jì)報(bào)告 圖書信息管理系統(tǒng)
- java圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)-圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)——c語言課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告---圖書信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論