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

下載本文檔

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

文檔簡(jiǎn)介

1、湖南科技學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)課程設(shè)計(jì)題目:圖書(shū)信息管理系統(tǒng)系:數(shù)學(xué)與計(jì)算科學(xué)系專(zhuān) 業(yè):信息與計(jì)算科學(xué)年級(jí)、班:XXX姓 名:XXX學(xué) 號(hào):XXX指導(dǎo)教師:XXX職 稱:講師2011年6月自我評(píng)價(jià)自我評(píng)分:90。首先,我在老師給的程序上完善了圖書(shū)管理系統(tǒng)的一些基本功能,如增加、修改、刪除、查詢,另外,我還增加了bookmain()、Adminbooksever()、login()、jdbcfile()等函數(shù)功能,實(shí)現(xiàn)了可以按多種方式查找,如按圖書(shū)編號(hào),按圖書(shū)名稱,實(shí)現(xiàn)了完全的在界面操作的系統(tǒng)。然后,我通過(guò)查閱書(shū)籍,上網(wǎng)查詢,最后,我將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)(Oracle

2、Database 10g)中,通過(guò)CS模式的服務(wù)器和接收端的運(yùn)行平臺(tái),以及Java驅(qū)動(dòng)程序,連接了數(shù)據(jù)庫(kù),使其數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)隨著界面的操作而隨時(shí)更新。用這個(gè)接口的一個(gè)變種,可以使用參數(shù)化SQL語(yǔ)句,用這個(gè)接口抽象了運(yùn)行SQL select語(yǔ)句的結(jié)果,提供了訪問(wèn)結(jié)果的方法,這個(gè)接口可以用來(lái)來(lái)訪問(wèn)各記錄中不同的字段。 為了保證安全性,我使用了自定義函數(shù)Login()的登錄功能,使得登錄用戶要有用戶名和密碼;Bookmain()函數(shù)是實(shí)現(xiàn)首頁(yè)面板,除了菜單選項(xiàng),還有下拉菜單的功能實(shí)現(xiàn);Adminbooksever()函數(shù)是接受服務(wù)器端的傳輸功能,實(shí)現(xiàn)提示面板,因?yàn)楸鞠到y(tǒng)采用的是本地CS模式,有服務(wù)

3、器和接收端;jdbcfile()函數(shù)是實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接函數(shù)。而在每個(gè)面板上也就免不了的加了按鈕的觸發(fā)事件功能。另外的基本功能是用單獨(dú)的每個(gè)函數(shù)實(shí)現(xiàn)的。具體見(jiàn)代碼。下面是我的工作步驟:一:查閱相關(guān)資料。針對(duì)系統(tǒng)的開(kāi)發(fā)目的、需求分析、功能分析、系統(tǒng)分析、系統(tǒng)結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)等相關(guān)知識(shí)的查閱和學(xué)習(xí)。二:數(shù)據(jù)庫(kù)設(shè)計(jì)-概念設(shè)計(jì)(E-R圖的設(shè)計(jì))、邏輯設(shè)計(jì)(表及視圖的設(shè)計(jì))三:系統(tǒng)功能設(shè)計(jì)-功能模塊詳細(xì)設(shè)計(jì)四:總結(jié)【摘要】書(shū)籍是人類(lèi)不可缺少的精神食糧,圖書(shū)管理系統(tǒng)是一些單位不可缺少的部分,尤其是對(duì)一些學(xué)校來(lái)說(shuō)尤為的重要。所以圖書(shū)管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┲刈龅男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)的

4、人工的方式管理圖書(shū)、期刊、試卷合訂本等,這種管理方式存在著諸多的缺點(diǎn),如:效率低,保密性差,另外時(shí)間長(zhǎng)了,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)不少的困難。隨著圖書(shū)館規(guī)模的不斷擴(kuò)大,圖書(shū)數(shù)量也相應(yīng)的增加,有關(guān)圖書(shū)的各種信息量也成倍增加,面對(duì)著龐大的信息量,傳統(tǒng)的人工方式管理會(huì)導(dǎo)致圖書(shū)館管理上的混亂,人力與物力過(guò)多浪費(fèi),圖書(shū)館信息管理費(fèi)用的增加,從而使圖書(shū)館的負(fù)擔(dān)過(guò)重,影響整個(gè)圖書(shū)館的運(yùn)作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實(shí)用的圖書(shū)管理系統(tǒng),對(duì)圖書(shū)資料進(jìn)行集中統(tǒng)一的管理。本論文主要是針對(duì)圖書(shū)信息管理系統(tǒng)的研究,介紹的是一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),主要涉及數(shù)據(jù)的讀寫(xiě)和數(shù)據(jù)

5、的傳遞,利用數(shù)據(jù)庫(kù)Oracle Database 10g軟件和Eclipse3.62工具,采用java語(yǔ)言進(jìn)行開(kāi)發(fā),介紹了系統(tǒng)的開(kāi)發(fā)目的、系統(tǒng)分析、系統(tǒng)結(jié)構(gòu)、系統(tǒng)設(shè)計(jì)、等。系統(tǒng)的建立將支持圖書(shū)管理人員對(duì)各類(lèi)信息進(jìn)行快捷、準(zhǔn)確、方便的查詢;支持管理人員對(duì)圖書(shū)的錄入、修改、刪除與查詢。關(guān)鍵詞 Java Oracle Access 面向?qū)ο?圖書(shū)館里目錄摘要.I第1章 緒論.1第2章 系統(tǒng)功能介紹.1 2.1系統(tǒng)設(shè)計(jì).1 2.2系統(tǒng)流程及模塊功能.2 2.3模塊功能介紹.2第3章 數(shù)據(jù)庫(kù)設(shè)計(jì).3 3.1數(shù)據(jù)庫(kù)需求分析.3 3.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì).3 3.3數(shù)據(jù)庫(kù)表邏輯結(jié)構(gòu)設(shè)計(jì).3第4章 系統(tǒng)功能實(shí)

6、現(xiàn).4 4.1數(shù)據(jù)庫(kù)模塊設(shè)計(jì).4 4.2管理員登錄模塊設(shè)計(jì).6 4.3主界面功能實(shí)現(xiàn).9 4.4圖書(shū)添加功能實(shí)現(xiàn).12 4.5圖書(shū)查詢功能實(shí)現(xiàn).17 4.6圖書(shū)刪除功能實(shí)現(xiàn).21 4.7圖書(shū)信息修改功能實(shí)現(xiàn).26 4.8圖書(shū)管理模塊的服務(wù)器端功能實(shí)現(xiàn).32第5章 總結(jié) .39第6章 參考文獻(xiàn).39第1章 緒 論隨著社會(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)境要求也越來(lái)越高。書(shū)籍作為人類(lèi)的精神食糧,在現(xiàn)代社會(huì)中越來(lái)越受到重視,大量的書(shū)籍出現(xiàn)在市場(chǎng)上,人們有了各種不同的選擇

7、。與此同時(shí),為了管理大量的圖書(shū),圖書(shū)倉(cāng)庫(kù)也大量的出現(xiàn),倉(cāng)庫(kù)的管理問(wèn)題也就提上了日程。隨著圖書(shū)的大量增加,其管理難度也越來(lái)越大,如何優(yōu)化倉(cāng)庫(kù)的日常管理也就成了一個(gè)大眾化的課題。在計(jì)算機(jī)飛速發(fā)展的今天,將計(jì)算機(jī)這一信息處理器應(yīng)用于倉(cāng)庫(kù)的日常管理已是勢(shì)必索然,而且這也將為倉(cāng)庫(kù)的管理帶來(lái)前所未有的變化,同時(shí)也會(huì)為企業(yè)的飛速發(fā)展提供無(wú)限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已成為倉(cāng)庫(kù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理帶來(lái)明顯的經(jīng)濟(jì)效益和社會(huì)效益。主要體現(xiàn)在:極大的提高了倉(cāng)庫(kù)管理人員的工作效率,大大減少了以往入出存流程繁瑣、雜亂、周期長(zhǎng)的弊端?;趥}(cāng)庫(kù)管理的自動(dòng)化,可以減少入庫(kù)管理、出庫(kù)管理及庫(kù)存管理的漏洞

8、,可以節(jié)約不少管理開(kāi)支,增加企業(yè)收入。倉(cāng)庫(kù)的管理操作自動(dòng)化和信息的電子化,全面提高了倉(cāng)庫(kù)的管理水平。隨著我國(guó)改革開(kāi)放的不斷深入,經(jīng)濟(jì)飛速的發(fā)展,企業(yè)想要生存和發(fā)展 ,要想在激烈的市場(chǎng)競(jìng)爭(zhēng)中立于不敗之地,沒(méi)有現(xiàn)代化的管理好似萬(wàn)萬(wàn)不行的,圖書(shū)管理的全面自動(dòng)化、信息化則是其中極其重要的部分。為了加快倉(cāng)庫(kù)管理的自動(dòng)化的步伐,提高倉(cāng)庫(kù)的管理業(yè)務(wù)處理效率,建立倉(cāng)庫(kù)管理系統(tǒng)已變得十分重要。新書(shū)入庫(kù)、出庫(kù)還是現(xiàn)在企業(yè)圖書(shū)倉(cāng)庫(kù)管理的常規(guī)基本模式。如何設(shè)計(jì)好倉(cāng)庫(kù)的管理系統(tǒng),盡可能的減少倉(cāng)庫(kù)管理的復(fù)雜性和低效率性就成為當(dāng)前最重要的問(wèn)題。通過(guò)對(duì)圖書(shū)倉(cāng)庫(kù)管理的日常工作的詳細(xì)調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能

9、的實(shí)現(xiàn),技術(shù)的要求以及可行性等諸多方面進(jìn)行考慮,認(rèn)為本課題是一個(gè)適合 現(xiàn)今圖書(shū)倉(cāng)庫(kù)管理需求的計(jì)算機(jī)信息管理系統(tǒng),具有一定的實(shí)際開(kāi)發(fā)價(jià)值和使用價(jià)值。第2章 系統(tǒng)功能介紹2.1系統(tǒng)設(shè)計(jì)本人設(shè)計(jì)的圖書(shū)信息管理系統(tǒng)采用C/S模式,通過(guò)內(nèi)部網(wǎng)絡(luò)處理和信息交換,開(kāi)發(fā)結(jié)構(gòu)、解決數(shù)據(jù)庫(kù)共享問(wèn)題,客戶端運(yùn)行Java客戶端程序,服務(wù)器端運(yùn)行Java服務(wù)器端程序。主要用于對(duì)圖書(shū)館日常工作的管理,主要任務(wù)是用計(jì)算機(jī)圖書(shū)各種信息進(jìn)行日常的管理,如增加、修改、刪除、查詢圖書(shū)的管理等。本系統(tǒng)實(shí)現(xiàn)了圖書(shū)館的信息自動(dòng)化管理,完成了圖書(shū)管理系統(tǒng)的基本功能,該系統(tǒng)主要包括管理員子系統(tǒng)和書(shū)籍管理子系統(tǒng)退出子系統(tǒng)兩個(gè)部分。其書(shū)籍管理子

10、系統(tǒng)的主要功能是用于書(shū)籍信息的管理,如新書(shū)的入庫(kù)、圖書(shū)查詢、刪除圖書(shū)、圖書(shū)修改。2.2系統(tǒng)流程及模塊功能系統(tǒng)圖書(shū)信息管理流程如下圖1所示 N結(jié)束更新數(shù)據(jù)庫(kù)成功登錄開(kāi)始 Y圖1系統(tǒng)模塊功能結(jié)構(gòu)分析圖如圖2所示圖書(shū)管理信息系統(tǒng)登錄 添加圖書(shū)修改圖書(shū)刪除圖書(shū)查詢圖書(shū)退出系統(tǒng)圖22.3模塊功能介紹 本系統(tǒng)是圖書(shū)管理系統(tǒng),本系統(tǒng)啟動(dòng)后需要登錄,然后進(jìn)入主界面在這個(gè)界面,我們可以選擇所需要的功能模塊來(lái)實(shí)現(xiàn)所要的執(zhí)行功能。A) 添加圖書(shū)功能:圖書(shū)信息錄入到數(shù)據(jù)庫(kù)當(dāng)中(主要包括圖書(shū)的編號(hào)、書(shū)名、作者、出版社、出版日期、圖書(shū)簡(jiǎn)介、圖書(shū)類(lèi)別等);B)修改圖書(shū)功能:把數(shù)據(jù)庫(kù)當(dāng)中圖書(shū)的錄入信息錯(cuò)誤的圖書(shū)先查找出來(lái),再

11、對(duì)其進(jìn)行修改和保存;C)刪除圖書(shū)功能:主要的是對(duì)圖書(shū)館中沒(méi)有此書(shū)和不想保留圖書(shū)的資料進(jìn)行刪除,不存儲(chǔ)該書(shū)信息;D)查詢圖書(shū)功能:方便管理工作人員對(duì)圖書(shū)信息的了解,主要按照?qǐng)D書(shū)的編號(hào)和書(shū)名進(jìn)行瀏覽圖書(shū)信息;第3章 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)需求分析 數(shù)據(jù)庫(kù)結(jié)構(gòu)要能充分滿足各種信息的輸入和輸出,收集基本數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為具體設(shè)計(jì)做準(zhǔn)備。針對(duì)一般圖書(shū)管理系統(tǒng)的需求,通過(guò)對(duì)數(shù)據(jù)管理工作過(guò)程的內(nèi)容和數(shù)據(jù)流程的分析,得到其系統(tǒng)的邏輯模型,設(shè)計(jì)如下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):l 圖書(shū)(圖書(shū)編號(hào),圖書(shū)名稱,作者,出版社,出版日期,圖書(shū)簡(jiǎn)介,圖書(shū)類(lèi)型)l 用戶(用戶名,密碼)3.2數(shù)據(jù)庫(kù)概念

12、結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)用到的數(shù)據(jù)庫(kù)表的ER圖如圖33.3數(shù)據(jù)庫(kù)表邏輯結(jié)構(gòu)設(shè)計(jì) 管理員表Admin用來(lái)保存管理員用戶信息,結(jié)構(gòu)如表1表1 管理員表 圖書(shū)表book用來(lái)保存圖書(shū)信息,結(jié)構(gòu)如表2表2 圖書(shū)表book第4章 系統(tǒng)功能實(shí)現(xiàn)4.1連接數(shù)據(jù)庫(kù)模塊設(shè)計(jì)系統(tǒng)對(duì)圖書(shū)所需要的信息都存儲(chǔ)于數(shù)據(jù)庫(kù)當(dāng)中,要對(duì)這些數(shù)據(jù)信息進(jìn)行操作,就必須連接數(shù)據(jù)庫(kù),為了省去每次操作都要編寫(xiě)連接數(shù)據(jù)庫(kù)程序的步驟,我們把連接數(shù)據(jù)庫(kù)操作封裝到一個(gè)類(lèi)jdbcfile.java中,在不同的模塊中調(diào)用這個(gè)類(lèi)就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)操作,這樣就使得連接數(shù)據(jù)庫(kù)安全高效,程序代碼簡(jiǎn)潔清晰,也符合java面向?qū)ο蟮乃枷?。連接數(shù)據(jù)庫(kù)類(lèi)

13、jdbcfile.java的代碼如下:package 管理員登錄;import java.sql.*;public class jdbcfile / 聲明變量Connection conn;Statement stmt;int inorupdatevalue = -1;/ 聲明構(gòu)造方法,并拋出異常public jdbcfile() throws Exception try String drivername = oracle.jdbc.driver.OracleDriver;String dbURL = jdbc:oracle:thin::1521:xe;String user

14、= system;String password = 123;/ 加載驅(qū)動(dòng)程序Class.forName(drivername);/ 創(chuàng)建數(shù)據(jù)庫(kù)連接Connection對(duì)象conn = DriverManager.getConnection(dbURL, user, password);/ 創(chuàng)建Statement對(duì)象stmt = conn.createStatement(); catch (ClassNotFoundException e) / 捕獲異常throw new Exception(數(shù)據(jù)庫(kù)驅(qū)動(dòng)未找到 + e.getMessage(); catch (SQLException e) /

15、 捕獲異常throw new Exception(數(shù)據(jù)庫(kù)未連接 + e.getMessage(); / 定義查詢數(shù)據(jù)的方法public synchronized ResultSet executeQuery(String sql) throws Exception ResultSet rs = stmt.executeQuery(sql);return rs;/ 定義插入數(shù)據(jù)的方法public synchronized int insert(String sql) throws Exception inorupdatevalue = stmt.executeUpdate(sql);return

16、 inorupdatevalue;/ 定義修改數(shù)據(jù)的方法public synchronized int update(String sql) throws Exception inorupdatevalue = stmt.executeUpdate(sql);return inorupdatevalue;/ 定義刪除數(shù)據(jù)的方法public synchronized int del(String sql) throws Exception inorupdatevalue = stmt.executeUpdate(sql);return inorupdatevalue;/ 定義關(guān)閉數(shù)據(jù)庫(kù)連接的方法

17、public void close() throws Exception conn.close();在jdbcfile的代碼中,定義了查詢數(shù)據(jù)、插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)和關(guān)閉數(shù)據(jù)庫(kù)連接的方法。其連接的圖如圖4所示圖44.2管理員登錄模塊設(shè)計(jì)為了保證系統(tǒng)的安全性,只有管理員才可以對(duì)系統(tǒng)進(jìn)行操作,因此,需要對(duì)用戶登錄的信息進(jìn)行驗(yàn)證,管理員的用戶和密碼存放在數(shù)據(jù)庫(kù)當(dāng)中,通過(guò)文本框獲得用戶輸入的用戶名和密碼,然后與數(shù)據(jù)庫(kù)的用戶名和密碼進(jìn)行比較,如果匹配,則進(jìn)入系統(tǒng),否則提示用戶名和密碼不正確。管理員登錄界面主要用于輸入用戶名和密碼,以便與數(shù)據(jù)庫(kù)的用戶名和密碼進(jìn)行比較,界面主要包括兩個(gè)標(biāo)簽、一個(gè)文本

18、框、一個(gè)密碼框和兩個(gè)按鈕,如圖5所示。圖5 登錄界面圖形用戶登錄界面的代碼如下:package 管理員登錄;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.JButton;import javax.swing.JFrame;import javax.s

19、wing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Login extends JFrame /聲明標(biāo)簽、按鈕、文本框和密碼框private JLabel JLb1;private JLabel JLb2;private JButton Ok_btn;private JButton Cancel_btn;private JTextField

20、jtflduser;private JPasswordField jtpwdfld;/聲明窗口private JFrame frame;/構(gòu)造方法public Login ()frame=new JFrame(登錄);Container content=frame.getContentPane();/采用GridLayout布局管理content.setLayout(new GridLayout(3,2,20,20);JLb1=new JLabel(用戶名);JLb2=new JLabel(密 碼);/將標(biāo)簽置于居中位置JLb1.setHorizontalAlignment(SwingCons

21、tants.CENTER);JLb2.setHorizontalAlignment(SwingConstants.CENTER);jtflduser=new JTextField();jtpwdfld=new JPasswordField();Ok_btn=new JButton(確定);Cancel_btn=new JButton(取消);/為按鈕添加事件監(jiān)聽(tīng)者Ok_btn.addActionListener(new ActionHandler();Cancel_btn.addActionListener(new ActionHandler();/添加標(biāo)簽、文本框、密碼框和按鈕到窗口cont

22、ent.add(JLb1);content.add(jtflduser);content.add(JLb2);content.add(jtpwdfld);content.add(Ok_btn);content.add(Cancel_btn);frame.pack(); /設(shè)定登錄窗口啟動(dòng)時(shí)出現(xiàn)在屏幕的中央位置frame.setLocationRelativeTo(null);frame.setSize(300,200);frame.setVisible(true);/實(shí)現(xiàn)ActionListener監(jiān)聽(tīng)class ActionHandler implements ActionListenerp

23、ublic void actionPerformed(ActionEvent e)String str1,str2,sqlStr;Object obj=e.getSource();/獲得文本框和密碼框的數(shù)據(jù)str1=jtflduser.getText().trim();str2=new String(jtpwdfld.getPassword().trim();try/單擊確定按鈕if(obj.equals(Ok_btn)if(str1.equals()JOptionPane.showMessageDialog(frame,用戶名不能為空!);return;/創(chuàng)建數(shù)據(jù)庫(kù)連接jdbcfile co

24、nn=new jdbcfile();sqlStr=select*from Admin where num=+str1+and password=+str2+;ResultSet result=conn.executeQuery(sqlStr);if(result.next()/彈出對(duì)話框提示登錄成功JOptionPane.showConfirmDialog(frame,登錄成功!);/打開(kāi)圖書(shū)館主頁(yè)bookmain bookmain1=new bookmain();bookmain1.go();/關(guān)閉登錄窗口 frame.dispose();/關(guān)閉數(shù)據(jù)庫(kù)連接conn.close();elseJ

25、OptionPane.showMessageDialog(frame,用戶名或密碼錯(cuò)誤!);else if(obj.equals(Cancel_btn)/單擊取消按鈕System.exit(0);catch(ClassNotFoundException ce)System.out.println(SQLException:+ce.getMessage();catch(SQLException ex)System.out.println(ex);catch (Exception s)s.printStackTrace();public static void main(String args)

26、Login login=new Login(); Login類(lèi)繼承了Frame類(lèi),因此可以顯示,在Login類(lèi)中,首先聲明標(biāo)簽、按鈕、文本框、密碼框、和一個(gè)JFrame窗口,然后通過(guò)構(gòu)造方法創(chuàng)建標(biāo)簽、按鈕、文本框、密碼框,并添加到窗口容器中,最后設(shè)置窗口的大小和可見(jiàn)性。當(dāng)單擊按鈕的時(shí)候產(chǎn)生事件,按鈕把事件對(duì)象傳遞給監(jiān)聽(tīng)者,事件監(jiān)聽(tīng)者要監(jiān)聽(tīng)到該事件,就要在程序當(dāng)中加入一個(gè)能夠“聽(tīng)到”該事件的接口,實(shí)現(xiàn)這個(gè)接口并處理監(jiān)聽(tīng)到的事件。那么就在上面的Login代碼中實(shí)現(xiàn)一個(gè)ActionListener類(lèi)的代碼。4.3主界面功能實(shí)現(xiàn)在系統(tǒng)的主界面中,包括兩個(gè)部分:圖書(shū)管理和退出。而在各自的下拉菜單中有各自

27、的實(shí)現(xiàn)功能。運(yùn)行的主界面如圖6所示。圖6 系統(tǒng)主界面 在本界面的實(shí)現(xiàn)當(dāng)中,定義了一個(gè)類(lèi)bookmain,繼承了JFrame類(lèi),在bookmain類(lèi)當(dāng)中,定義了一個(gè)菜單欄、2個(gè)菜單和5個(gè)菜單項(xiàng),在類(lèi)中沒(méi)有定義構(gòu)造方法,而是定義了一個(gè)go()的方法,通過(guò)此方法設(shè)置窗口的大小、布局管理器和標(biāo)題,將菜單加入到各自的菜單中,把菜單加入到菜單欄中,并將菜單欄加入到窗口中。其技術(shù)實(shí)現(xiàn)代碼具體如下:package 管理員登錄;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class bookmain extends

28、JFrame / 聲明面板容器和標(biāo)簽private JPanel jp1 = new JPanel();private JLabel label1;BorderLayout borderLayout1 = new BorderLayout();/ 創(chuàng)建菜單欄JMenuBar jMenuBar1 = new JMenuBar();JMenu jMenu1 = new JMenu();JMenu jMenu2 = new JMenu();JMenuItem jMenuItem1 = new JMenuItem();JMenuItem jMenuItem2 = new JMenuItem();JMe

29、nuItem jMenuItem3 = new JMenuItem();JMenuItem jMenuItem4 = new JMenuItem();JMenuItem jMenuItem5 = new JMenuItem();public void go() / 設(shè)置窗口的容器的布局管理器this.getContentPane().setLayout(borderLayout1);/ 設(shè)置窗口大小和標(biāo)題this.setSize(new Dimension(300, 200);this.setTitle(圖書(shū)信息管理系統(tǒng));label1 = new JLabel(設(shè)計(jì)者數(shù)學(xué)系信計(jì)0801班 丁

30、軍 );/ 添加菜單欄this.setJMenuBar(jMenuBar1);/ 設(shè)置菜單和菜單項(xiàng)的名稱jMenu1.setText(圖書(shū)管理);jMenuItem1.setText(添加圖書(shū));jMenuItem2.setText(修改圖書(shū));jMenuItem3.setText(刪除圖書(shū));jMenuItem4.setText(查詢圖書(shū));jMenuItem5.setText(退出系統(tǒng));jMenu2.setText(退出);/ 向菜單欄添加菜單jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);/ 向菜單中添加菜單項(xiàng)jMenu1.add(jMenuIt

31、em1);jMenu1.add(jMenuItem2);jMenu1.add(jMenuItem3);jMenu1.add(jMenuItem4);jMenu2.add(jMenuItem5);/ 監(jiān)聽(tīng)者對(duì)象注冊(cè)給jMenuItem1jMenuItem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 將添加圖書(shū)管理面板添加到j(luò)p1中,并顯示出來(lái)addbook addbook1 = new addbook();jp1.add(addbook1, 添加圖書(shū)信息);CardLay

32、out c1 = (CardLayout) jp1.getLayout();c1.show(jp1, 添加圖書(shū)信息););/ 監(jiān)聽(tīng)者對(duì)象注冊(cè)給jMenuItem2jMenuItem2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 將修改圖書(shū)管理面板添加到j(luò)p1中,并顯示出來(lái)updatebook updatebook1 = new updatebook();jp1.add(updatebook1, 修改圖書(shū)信息);CardLayout c1 = (CardLayout) jp

33、1.getLayout();c1.show(jp1, 修改圖書(shū)信息););/ 監(jiān)聽(tīng)者對(duì)象注冊(cè)給jMenuItem3jMenuItem3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 將刪除圖書(shū)管理面板添加到j(luò)p1中,并顯示出來(lái)delbook delbook1 = new delbook();jp1.add(delbook1, 刪除圖書(shū)信息);CardLayout c1 = (CardLayout) jp1.getLayout();c1.show(jp1, 刪除圖書(shū)信息);)

34、;/ 監(jiān)聽(tīng)者對(duì)象注冊(cè)給jMenuItem4iwo kjMenuItem4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 將查詢圖書(shū)管理面板添加到j(luò)p1中,并顯示出來(lái)searchbook searchbook1 = new searchbook();jp1.add(searchbook1, 查詢圖書(shū)信息);CardLayout c1 = (CardLayout) jp1.getLayout();c1.show(jp1, 查詢圖書(shū)信息););/ 監(jiān)聽(tīng)者對(duì)象注冊(cè)給jMenuIte

35、m5jMenuItem5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) System.exit(0););/ 設(shè)置Jpane1的布局管理CardLayout cardlayout = new CardLayout();jp1.setLayout(cardlayout);jp1.add(label1, 圖書(shū)管理系統(tǒng));this.add(jp1, BorderLayout.CENTER);setSize(300, 450);this.setVisibl

36、e(true);public static void main(String args) / TODO Auto-generated method stubbookmain ex = new bookmain();ex.go();ex.setVisible(true);4.4圖書(shū)添加功能的實(shí)現(xiàn) 圖書(shū)入庫(kù)是圖書(shū)管理系統(tǒng)中不可缺少的部分,用于圖書(shū)入庫(kù),通過(guò)界面中文本框接受書(shū)籍信息,然后將此信息寫(xiě)入到Access數(shù)據(jù)庫(kù)中。運(yùn)行界面如圖7所示,運(yùn)行成功提示如圖8。圖8 其技術(shù)實(shí)現(xiàn)的代碼如下:package 管理員登錄;import java.io.*;import .*;import java.awt

37、.*;import java.awt.event.*;import javax.swing.*;public class addbook extends JPanel /聲明標(biāo)簽private JTextField 圖7id,bookname,author,publish,time,synopsis,category;/聲明文本框private JLabel jid,jbookname,jauthor,jpublish,jtime,jsynopsis,jcategory;/聲明按鈕private JButton button1,button2;/聲明數(shù)據(jù)流對(duì)象PrintWriter outpu

38、t;BufferedReader input;/聲明字符串變量String message=;/構(gòu)造方法public addbook()/設(shè)置布局為nullthis.setLayout(null);jid=new JLabel(編號(hào));id=new JTextField();jbookname=new JLabel(書(shū)名);bookname=new JTextField();jauthor=new JLabel(作者);author=new JTextField();jpublish=new JLabel(出版社);publish=new JTextField();jtime=new JLab

39、el(出版日期);time=new JTextField();jsynopsis=new JLabel(圖書(shū)簡(jiǎn)介);synopsis=new JTextField();jcategory=new JLabel(類(lèi)別);category=new JTextField();button1=new JButton(添加);button2=new JButton(取消);/設(shè)置標(biāo)簽大小和位置jid.setBounds(30,20,60,30);jbookname.setBounds(30,70,60,26);jauthor.setBounds(30,120,60,26);jpublish.setBou

40、nds(30,170,60,26);jtime.setBounds(30,220,60,26);jsynopsis.setBounds(30,270,60,26);jcategory.setBounds(30,320,60,26);/設(shè)置文本框的位置和大小id.setBounds(110,20,120,26);bookname.setBounds(110,70,120,26);author.setBounds(110,120,120,26);publish.setBounds(110,170,120,26);time.setBounds(110,220,120,26);synopsis.set

41、Bounds(110,270,120,26);category.setBounds(110,320,120,26);/設(shè)置按鈕的位置和大小button1.setBounds(50,360,60,26);button2.setBounds(130,360,60,26);/將標(biāo)簽、文本框和按鈕添加到JPanel中this.add(jid);this.add(id);this.add(jbookname);this.add(bookname);this.add(jauthor);this.add(author);this.add(jpublish);this.add(publish);this.ad

42、d(jtime);this.add(time);this.add(jsynopsis);this.add(synopsis);this.add(jcategory);this.add(category);this.add(button1);this.add(button2);/監(jiān)聽(tīng)者對(duì)象注冊(cè)給button1button1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)if(id.getText().toString().equals()JOptionPane.showMessage

43、Dialog(null,編號(hào)不能為空!,添加,JOptionPane.WARNING_MESSAGE);elseif(bookname.getText().toString().equals()JOptionPane.showMessageDialog(null,書(shū)名不能為空!,添加,JOptionPane.WARNING_MESSAGE);elseif(author.getText().toString().equals()JOptionPane.showMessageDialog(null,作者不能為空!,添加,JOptionPane.WARNING_MESSAGE);elseif(pub

44、lish.getText().toString().equals()JOptionPane.showMessageDialog(null,出版社不能為空!,添加,JOptionPane.WARNING_MESSAGE);elseif(time.getText().toString().equals()JOptionPane.showMessageDialog(null,出版日期不能為空!,添加,JOptionPane.WARNING_MESSAGE);elseif(category.getText().toString().equals()JOptionPane.showMessageDial

45、og(null,圖書(shū)類(lèi)別不能為空!,添加,JOptionPane.WARNING_MESSAGE);else/調(diào)用方法connectconnect(add+/+id.getText().toString()+/+bookname.getText().toString()+/+author.getText().toString()+/+publish.getText().toString()+/+time.getText().toString()+/+synopsis.getText().toString()+/+category.getText().toString(););button2.a

46、ddActionListener(new ActionListener()public void actionPerformed(ActionEvent e)id.setText();bookname.setText();author.setText();publish.setText();time.setText();synopsis.setText();category.setText(););setSize(250,400);this.setVisible(true);public void connect(String s)Socket socket;try/創(chuàng)建socket類(lèi)對(duì)象,指

47、定端口號(hào)為4321;socket=new Socket(InetAddress.getByName(localhost),4321);/創(chuàng)建輸出流對(duì)象input = new BufferedReader(new InputStreamReader(socket.getInputStream(); output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(); /輸出數(shù)據(jù)流output.println(s);output.flush();id.setText();bookname.setText();author

48、.setText();publish.setText();time.setText();synopsis.setText();category.setText();try/讀取輸入流message=(String)input.readLine();if(message.equals(addok)/添加成功對(duì)話框JOptionPane.showMessageDialog(null,添加成功!,添加成功!,JOptionPane.INFORMATION_MESSAGE);else/添加對(duì)話框失敗JOptionPane.showMessageDialog(null,添加失??!,添加失??!,JOptionPane.WARNING_MESSA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論