![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/8670b993-ae60-4193-93be-32a33d6f2767/8670b993-ae60-4193-93be-32a33d6f2767pic.jpg)
![數(shù)據(jù)庫課程設(shè)計(jì)--圖書館管理信息系統(tǒng)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/8670b993-ae60-4193-93be-32a33d6f2767/8670b993-ae60-4193-93be-32a33d6f27671.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1.需求分析 </b></p><p><b> 1.1背景 </b></p><p> 隨著圖書館規(guī)模的不斷擴(kuò)大,圖書數(shù)量也相應(yīng)的增加,有關(guān)圖書的各種信息量也成倍增加,面對著龐大的信息量,傳統(tǒng)的人工方式管理會導(dǎo)致圖書館管理上的混亂,人力與物力過多浪費(fèi),圖書館管理費(fèi)用的增加,從而使圖書館的負(fù)擔(dān)過重,影響整個(gè)圖書館
2、的運(yùn)作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實(shí)用的圖書管理系統(tǒng),對圖書資料進(jìn)行集中統(tǒng)一的管理。</p><p> 另一方面,IT產(chǎn)業(yè)和Internet獲得了飛速發(fā)展,計(jì)算機(jī)應(yīng)用已滲透到了各個(gè)領(lǐng)域,引起信息管理的革命,實(shí)現(xiàn)了信息的自動化處理,提高了處理的及時(shí)性和正確性。</p><p> 提高圖書管理工作效率,作到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速查詢,讓圖書館更好的為學(xué)校,社會服
3、務(wù)。而為了比較形象的說明圖書管理系統(tǒng)的建立、功能實(shí)現(xiàn),在這里我和同學(xué)一起用自己所學(xué)的數(shù)據(jù)庫知識,用java語言實(shí)現(xiàn)了一個(gè)微型的數(shù)據(jù)庫管理系統(tǒng)。因?yàn)槲覀儗χR掌握的有限,我們做的這個(gè)小圖書庫只能作為圖書管理系統(tǒng)的一個(gè)縮影。</p><p> 本系統(tǒng)是小型圖書管理系統(tǒng),專為個(gè)人設(shè)計(jì)。本系統(tǒng)啟動后需要登陸,然后進(jìn)入主界</p><p> 在這個(gè)界面我們可以選擇所需要的功能模塊來完成所要執(zhí)行的
4、功能。</p><p> 系統(tǒng)共有6個(gè)功能模塊:圖書查詢、圖書入庫、圖書刪除、圖書概覽、添加用戶、用戶借書情況。它支持一系列關(guān)于圖書管理方面的簡單操作,諸如查詢、刪除、添加、添加用戶,用戶借書信息等</p><p><b> 1.2數(shù)據(jù)需求</b></p><p> 圖書館管理信息系統(tǒng)需要完成功能主要有:</p><p
5、> 1. 用戶基本信息的輸入,包括用戶名,密碼。</p><p> 2.用戶借書基本信息的查詢、修改,包括用戶借書情況,借閱時(shí)間等。</p><p> 3.圖書信息的輸入,包括圖書號、圖書名、單價(jià)、作者、出版社、入庫時(shí)間。</p><p> 4.圖書類別信息的查詢、刪除,包括圖書號、單價(jià)等。</p><p> 5.圖書庫存信息
6、的輸入,包括圖書號、圖書名稱、作者姓名、出版社名稱、單價(jià)、入庫日期。</p><p> 6.書籍庫存信息的查詢,修改,包括書籍編號、書籍名稱、書籍類別、作者姓名、出版社名稱、出版日期登記日期等。</p><p> 7.借書信息的輸入,包括用戶名、圖書號、借閱日期。</p><p> 8.借書信息的查詢、修改,包括用戶名、圖書號、閱書日期等。</p>
7、<p><b> 1.3事物需求</b></p><p> (1)在用戶信息管理部分,要求:</p><p> a.可以查詢用戶信息。</p><p> b.可以對用戶信息進(jìn)行添加及刪除的操作。</p><p> (2 )在圖書信息管理部分,要求:</p><p> a.
8、可以瀏覽圖書信息要求:</p><p> b.可以對書籍信息進(jìn)行維護(hù),包括添加及刪除的操作。</p><p> (3)在借閱信息管理部分,要求:。</p><p> a.可以瀏覽借閱信息。</p><p> b.可以對借閱信息進(jìn)行維護(hù)操作。</p><p> 2.圖書庫概念結(jié)構(gòu)設(shè)計(jì)</p>&l
9、t;p><b> 2.1 E-R圖</b></p><p> 根據(jù)所要實(shí)現(xiàn)的功能設(shè)計(jì),可能建立它們之間的關(guān)系,進(jìn)而實(shí)現(xiàn)邏輯結(jié)構(gòu)功能。</p><p> 圖書管理信息系統(tǒng)可以劃分的實(shí)體有:書籍類別信息實(shí)體、讀者信息實(shí)體、書籍信息實(shí)體、借閱記錄信息實(shí)體,歸還記錄信息實(shí)體。用E-R圖一一描述這些實(shí)體。</p><p> 2.1.1類別實(shí)
10、體E-R圖:</p><p> 圖1類別實(shí)體E-R圖</p><p> 2.1.2讀者信息實(shí)體E-R圖:</p><p> 圖2-2 用戶信息實(shí)體E-R圖</p><p> 2.1.3圖書信息實(shí)體E-R圖:</p><p> 圖2-3圖書信息實(shí)體E-R圖</p><p> 2.1.4
11、.記錄信息實(shí)體E-R圖:</p><p> 圖2-4 用戶記錄信息實(shí)體E-R圖</p><p> 2.1.5的信息實(shí)體E-R圖:</p><p> 圖2-7總的信息實(shí)體E-R圖</p><p><b> 2.2系統(tǒng)流程圖</b></p><p><b> 失敗</b>
12、;</p><p><b> 成功</b></p><p><b> 退出</b></p><p> 3.圖書庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 這一節(jié)階段是將已繪制出來的E-R圖轉(zhuǎn)換成關(guān)系圖 E-R圖向關(guān)系模型的轉(zhuǎn)換要解決的問題是如何將實(shí)體型和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,如何確定這些關(guān)系模式
13、的屬性和碼。</p><p> 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R圖則是有實(shí)體型、實(shí)體的屬性和實(shí)體型之間的聯(lián)系3個(gè)要素組成的。該數(shù)據(jù)庫的關(guān)系模式主要有以下幾個(gè)方面:</p><p> book(圖書) (圖書號,圖書名,單價(jià),作者,出版社,出版日期),</p><p> user1(用戶) (用戶名,密碼),</p><p>
14、; ub(借閱) (用戶名,圖書號,借閱時(shí)間),</p><p> 帶下劃線的屬性為各關(guān)系模式的主碼,字體為粗體的屬性為各關(guān)系模式的外碼。</p><p> 在以上關(guān)系中,實(shí)體中的每個(gè)屬性都是簡單屬性,都是不可再分的,實(shí)體遵循第一范式;</p><p> 對于book(圖書)模式,有</p><p> 屬性集={圖書號,圖書名,單價(jià)
15、,作者,出版社,出版日期}。</p><p> 函數(shù)依賴集={圖書號→圖書名,圖書號→單價(jià),圖書號→出版社,圖書號→作者,圖書號→出版日期}。</p><p><b> 主碼={書號}。</b></p><p> 非主屬性={圖書名,單價(jià),作者,出版社,出版日期}。</p><p> 非主屬性對碼的依賴={圖書號
16、F→圖書名,圖書號F→圖書名,圖書號F→作者,圖書號F→出版社,圖書號F→單價(jià),圖書號F→出版日期}。</p><p> 顯然圖書關(guān)系遵循第二范式,同理,用戶關(guān)系,借閱關(guān)系也遵循第二范式。</p><p> 實(shí)體屬性之間不存在碼,屬性組及非主屬性間的傳遞函數(shù)依賴,所以以上關(guān)系同樣遵循第三范式。</p><p> 4.數(shù)據(jù)庫和數(shù)據(jù)表的建立</p>
17、<p><b> 4.1新建數(shù)據(jù)庫</b></p><p> 從“開始”菜單中的SQL Server2005程序組中啟動SQL Server企業(yè)管理器,打開“SQL Server Enterprise Manager”窗口。</p><p><b> 新建數(shù)據(jù)庫,如下</b></p><p> 這樣,圖書
18、館圖書管理系統(tǒng) 數(shù)據(jù)庫就建好了。接下來就是要建立數(shù)據(jù)表了。</p><p> 4.2數(shù)據(jù)表的設(shè)計(jì)和關(guān)系圖</p><p> 數(shù)據(jù)庫設(shè)計(jì)是根據(jù)系統(tǒng)功能的要求和數(shù)據(jù)規(guī)模規(guī)劃數(shù)據(jù)庫服務(wù)器選型、數(shù)據(jù)表結(jié)構(gòu)定義、分配數(shù)據(jù)庫服務(wù)器端的功能實(shí)現(xiàn)以及創(chuàng)建數(shù)據(jù)庫對象。</p><p> 在SQL 數(shù)據(jù)庫中需要建立3個(gè)數(shù)據(jù)表:圖書信息表、讀者信息表和借閱關(guān)系表。</p>
19、;<p> 4.2.1數(shù)據(jù)表的設(shè)計(jì)</p><p><b> 圖書信息表的定義</b></p><p> 圖書信息表存儲圖書的詳細(xì)信息,供讀者參考使用及管理使用。為每本圖書設(shè)置一個(gè)唯一的書號,以便在數(shù)據(jù)庫中使用。</p><p> 表 book 書籍類別信息表</p><p><b>
20、 讀者信息表的定義</b></p><p> 讀者信息表存儲讀者的詳細(xì)信息,為每一個(gè)讀者設(shè)置一個(gè)唯一的編號以便在數(shù)據(jù)庫中使用。</p><p> 讀者信息表的結(jié)構(gòu)定義如下所示:</p><p> 表 user1用戶信息表格</p><p><b> 借閱關(guān)系表的定義</b></p>
21、<p> 借閱關(guān)系表存儲讀者所借閱的圖書信息。</p><p> 借閱關(guān)系表的結(jié)構(gòu)定義如下所示:</p><p> 表 ub用戶借書籍信息表</p><p> 4.2.2數(shù)據(jù)完整性約束</p><p> ?。?)主鍵約束、非空值約束</p><p> 三個(gè)表中都有主鍵,在圖書表和用戶表中,圖書號
22、和用戶名是主鍵,因?yàn)橐粋€(gè)圖書庫中可能一種書不只只有一本,也許有多本,用戶密碼也可能會一樣的,所以以圖書好和用戶名為主鍵,能保證數(shù)據(jù)的唯一。在借閱表中,圖書號和用戶名是主鍵。</p><p><b> ?。?)外鍵約束</b></p><p> 在ub(借閱)表中,tu 書號是book(圖書表)的外鍵,用戶名是user1(用戶表中)的外鍵。通過設(shè)置外鍵以保證數(shù)據(jù)的惟一
23、性和正確性。</p><p><b> (3)數(shù)據(jù)表的建立</b></p><p> 在數(shù)據(jù)庫中可以直接對圖書庫之間新建表,也可以用代碼建表。這里我們用代碼實(shí)現(xiàn)。</p><p> 4.2.3各表的建立</p><p><b> 圖書表的建立</b></p><p>
24、 create table book</p><p> ( 圖書名 varchar(50),</p><p> 圖書號 int primary key,</p><p> 單價(jià) int,</p><p> 作者 varchar(50),</p><p> 出版社 varchar(50),</
25、p><p> 入庫時(shí)間 datetime</p><p><b> )</b></p><p><b> 創(chuàng)建用戶表</b></p><p> create table user1</p><p> (用戶名 varchar(50) primary key,</p
26、><p> 密碼 varchar(50),</p><p><b> )</b></p><p><b> 借書借書表ub建立</b></p><p> create table ub</p><p> (用戶名 varchar(50),</p>&
27、lt;p><b> 圖書號 int,</b></p><p> 借書時(shí)間 datetime</p><p> primary key (用戶名,圖書號),</p><p> foreign key (用戶名) references user1(用戶名),</p><p> foreign key (圖書號
28、) references book(圖書號)</p><p><b> )</b></p><p><b> 5.關(guān)系圖的建立</b></p><p> 關(guān)系圖是表之間的鏈接,用一個(gè)表中的外健引用另一個(gè)表中的主健。關(guān)系線的終結(jié)點(diǎn)顯示一個(gè)主鍵符號一表示主鍵到外鍵的關(guān)系,或者顯示一個(gè)無窮符號以表示一對多關(guān)系的外鍵端。&l
29、t;/p><p> 使用SQL Server 2005的企業(yè)管理器創(chuàng)建關(guān)系圖,步驟如下:</p><p> ?。?)在左邊數(shù)據(jù)庫中的關(guān)系圖上鼠標(biāo)右鍵,單擊“新建數(shù)據(jù)庫關(guān)系圖”,如下圖。</p><p> ?。?)單擊‘添加’就可以將book、user1、ub表加到關(guān)系圖中。形成的關(guān)系圖如下:</p><p> 6.圖書庫實(shí)現(xiàn)的查詢</p
30、><p> 6.1表book中查詢演示:和與對應(yīng)的在圖書庫中用java代碼實(shí)現(xiàn)的圖形界面查詢</p><p> 圖6.1-1 數(shù)據(jù)庫查詢</p><p> 圖6.1-2 圖書庫系統(tǒng)查詢</p><p> 圖4-1 表book中內(nèi)容</p><p> 6.2借書紀(jì)錄的查詢:和在圖書庫中借書記錄查詢</p>
31、;<p> 圖6.2-1數(shù)據(jù)庫中的查詢 </p><p> 圖6.2-2 圖書庫中的查詢</p><p> 圖4-2 表ub中內(nèi)容</p><p> 6.3查詢某個(gè)出版社出版的書:</p><p> 6.4 圖書庫實(shí)現(xiàn)的功能模塊</p><p><b> 圖書庫總界面</b&g
32、t;</p><p> 該界面中包含有六個(gè)功能塊,分別是圖書查詢、圖書入庫、圖書刪除、圖書概覽、添加用戶、用戶借書情況。它使用java語言的GUI編程實(shí)現(xiàn)的、界面如下圖:</p><p> 圖書查詢功能在圖書庫中的實(shí)現(xiàn),它是用圖形界面來操控后臺數(shù)據(jù)庫。很好的將java與數(shù)據(jù)庫結(jié)合起來了。界面如圖;</p><p> 圖書入庫模塊實(shí)現(xiàn)的是想(book)圖書表插入
33、數(shù)據(jù)。界面如下</p><p> 圖書刪除模塊功能是刪除book表中無用數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫的刪除操作,界面是:</p><p> 圖書概覽模塊是擦看數(shù)據(jù)庫中所有圖書情況。即與打開book表一樣。界面是:</p><p> 添加用戶是實(shí)現(xiàn)了想user1表中添加用戶的功能,圖形界面是:</p><p> 用戶借書情況是實(shí)現(xiàn)查看ub(借閱表)
34、表中用戶借書,界面是:</p><p> 7.數(shù)據(jù)庫與java連接</p><p><b> 7.1配置數(shù)據(jù)源</b></p><p> 執(zhí)行“控制面板/工具管理/數(shù)據(jù)源/”命令,配置一個(gè)名為“mytest”的數(shù)據(jù)源。</p><p><b> 流程如下:</b></p>&l
35、t;p> (1)打開控制面板,找到數(shù)據(jù)源</p><p> ?。?)創(chuàng)建新數(shù)據(jù)源mytest</p><p> 在這里,值得一提的是,我們必須注意服務(wù)器的選擇上。這里的服務(wù)器一定與sql sever2005數(shù)據(jù)庫連接的服務(wù)器名稱保持一致,即與下圖一致</p><p> 7.2Java語言實(shí)現(xiàn)</p><p><b>
36、try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> }catch(ClassNotFoundException e){System.out.println("加載驅(qū)動程序失敗!");}</p><p><b&g
37、t; try{</b></p><p> String url = "jdbc:odbc:mytest";//直接使用當(dāng)前類目錄下的數(shù)據(jù)庫文件</p><p> Connection con=DriverManager.getConnection(url);</p><p><b> 8.數(shù)據(jù)庫的維護(hù)</b&g
38、t;</p><p> 數(shù)據(jù)庫的維護(hù)和管理包括數(shù)據(jù)的插入和刪除。當(dāng)新增圖書或者讀者時(shí),通過數(shù)據(jù)的插入使新增的數(shù)據(jù)在數(shù)據(jù)庫的增加。相反,當(dāng)去除圖書或諸者時(shí),通過數(shù)據(jù)的刪除來使數(shù)據(jù)在數(shù)據(jù)庫在刪除。當(dāng)讀者要借書時(shí),就通過數(shù)據(jù)的插入在借閱表中新增一條記錄,而當(dāng)讀者要還書時(shí),就通過數(shù)據(jù)的刪除將借閱表中的記錄刪除。</p><p><b> 9.1.數(shù)據(jù)的插入</b><
39、/p><p> ?。?)將已有的書加入表book中</p><p> insert into book values</p><p> ('數(shù)據(jù)庫','201101','20','劉偉','北京出版社','2011-9-8'</p><p>&l
40、t;b> )</b></p><p> insert into book values</p><p> ('操作系統(tǒng)','201102','20','趙麗','天津出版社','2010-9-8'</p><p><b> )<
41、/b></p><p> insert into book values</p><p> ('大學(xué)英語','201103','190','沈麗','河南出版社','2010-9-8'</p><p><b> )</b></p&
42、gt;<p> insert into book values</p><p> ('高等數(shù)學(xué)','201104','20','李尚','北京出版社','2001-9-8'</p><p><b> )</b></p><p>
43、 ?。?)將需借書的學(xué)生加入到user1表中</p><p> insert into ub values</p><p> ('sa','201101','2011-5-8')</p><p> insert into ub values</p><p> ('sa'
44、;,'201102','2012-5-8')</p><p> insert into ub values</p><p> ('laly','201103','2010-5-8')</p><p> ?。?)添加已借書讀者的記錄加入到表ub表中</p><p&
45、gt; insert into ub values</p><p> ('sa','201101','2011-5-8')</p><p> insert into ub values</p><p> ('sa','201102','2012-5-8')&l
46、t;/p><p> insert into ub values</p><p> ('laly','201103','2010-5-8')</p><p><b> (2)數(shù)據(jù)的刪除</b></p><p> ?。?)刪除書名為電子技術(shù)書的信息</p>&
47、lt;p><b> DELETE</b></p><p><b> FROM book</b></p><p> WHERE 圖書名='電子技術(shù)'</p><p> ?。?)刪除姓名為laly的讀者的信息</p><p><b> DELETE</b&g
48、t;</p><p> FROM user1</p><p> WHERE 用戶名='laly'</p><p> ?。?)刪除用戶名為sa的借閱信息</p><p><b> DELETE</b></p><p><b> FROM ub</b>&
49、lt;/p><p> WHERE 用戶名=‘sa‘</p><p><b> 10.數(shù)據(jù)庫的備份</b></p><p><b> 對數(shù)據(jù)庫進(jìn)行備份,</b></p><p> ?。?)啟動SQL sever2005企業(yè)管理器。在需要備份的數(shù)據(jù)庫中鼠標(biāo)單擊右鍵—所有任務(wù)—備份數(shù)據(jù)庫,如下圖所示。&
50、lt;/p><p> ?。?)在目的里單擊添加,選擇要備份到的位置,單擊確定。</p><p><b> 完成備份。</b></p><p> 當(dāng)需要從備份數(shù)據(jù)庫中恢復(fù)數(shù)據(jù)庫時(shí)</p><p> ?。?)如下圖,單擊還原數(shù)據(jù)庫。</p><p><b> ?。?)單擊確定</b&g
51、t;</p><p><b> 9.個(gè)人總結(jié)</b></p><p><b> .</b></p><p> 通過此次數(shù)據(jù)庫的課程設(shè)計(jì),真正達(dá)到了學(xué)與用的結(jié)合,增強(qiáng)了對數(shù)據(jù)庫方面應(yīng)用的理解,對自己今后參與開發(fā)數(shù)據(jù)庫系統(tǒng)積累了不少經(jīng)驗(yàn),在實(shí)驗(yàn)過程中,從建立數(shù)據(jù)開始,對靈據(jù)庫設(shè)計(jì)理念及思想上有更高的認(rèn)識,從需求分析,到概
52、念設(shè)計(jì)和邏輯設(shè)計(jì),E-R圖的表示,數(shù)據(jù)字典的創(chuàng)建,懂得了不少有關(guān)數(shù)據(jù)庫開發(fā)過程中的知識,在實(shí)驗(yàn)中建表,及其關(guān)系模式,關(guān)系代數(shù)的建立及理解,將SQL語的查詢語句用得淋漓盡致,增強(qiáng)了自己在數(shù)據(jù)庫中應(yīng)用SQL語言的靈活性,其中包括,插入、刪除、修改、查詢,牽涉表和表之間的聯(lián)系,主建與外主鍵的定義,約束項(xiàng)的設(shè)置,使邏輯更嚴(yán)密,在學(xué)習(xí)過程中,我也能過上網(wǎng)查了不少資料,也看了一些別人設(shè)計(jì)的圖書館管理信息系統(tǒng)的設(shè)計(jì)報(bào)告,學(xué)以致用,自我創(chuàng)新,獨(dú)立完成了
53、這份自己的報(bào)告,從中在學(xué)到用,從用又到學(xué),不斷修改,系統(tǒng)更新。雖然不能達(dá)到完善系統(tǒng),但也做到了盡善盡美,加強(qiáng)理論學(xué)習(xí)對完善系統(tǒng)會有很多幫助,不管怎么說,對這次做的課程設(shè)計(jì)自己覺得還算滿意。</p><p><b> 附錄一:參考文獻(xiàn)</b></p><p> 1.數(shù)據(jù)庫系統(tǒng)概論 王珊 薩師煊編</p><p> 2、Java語言程序設(shè)計(jì)
54、 主編: 賈振華 副主編:黃榮盛 賈振旺</p><p> 3、王克宏.Java技術(shù)及其應(yīng)用 北京:高等教育出版社,1994</p><p> 4、林邦杰,徹底研究Java2。北京:電子工業(yè)出版社,2002</p><p> 5、溫平進(jìn)、張威等。Instant Java2 實(shí)例解析。北京:北京希望電子出版社,2002</p><p&g
55、t; 6、林建銘.精通Java2.北京:科學(xué)出版社,2001</p><p> 7、王勝捷.Java程序設(shè)計(jì)。北京:中國鐵道出版社,2002</p><p> 8、東方華人.Java2入門與提高.北京:清華大學(xué)出版社,2000</p><p> 附錄二:java代碼</p><p> package 圖書庫;</p>
56、<p> 主界面:程序名Book.java</p><p> import java.net.*;</p><p> import java.sql.*;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p>
57、import java.io.*;</p><p> import java.util.*;</p><p> import javax.swing.*;</p><p> import javax.swing.border.*;</p><p> import java.util.*;</p><p> c
58、lass Book extends JFrame implements ActionListener </p><p><b> {</b></p><p> JButton QueryScore=new JButton("圖書查詢");</p><p> JButton QueryXuefen=new JButto
59、n("圖書入庫");</p><p> JButton jiangfa=new JButton("圖書刪除");</p><p> JButton xuanke=new JButton("圖書概覽");</p><p> JButton u1=new JButton("添加用戶&quo
60、t;);</p><p> JButton b1=new JButton("用戶借書情況");</p><p> JMenuBar mb = new JMenuBar();//菜單欄</p><p> JPanel jp=new JPanel();//用來填放子模塊</p><p> Container cp=g
61、etContentPane();</p><p> Stringusername;</p><p><b> Book(){}</b></p><p> Book(String username)</p><p><b> {</b></p><p> this.
62、username=username;</p><p> mb.add(QueryScore);</p><p> mb.add(QueryXuefen);</p><p> mb.add(jiangfa);</p><p> mb.add(xuanke);</p><p> mb.add(u1);</p
63、><p> mb.add(b1);</p><p> cp.add(mb,"North");</p><p> jp.setBorder(BorderFactory.createTitledBorder(BorderFactory</p><p> .createLineBorder(Color.blue, 2),nu
64、ll, </p><p> TitledBorder.CENTER, TitledBorder.TOP));</p><p> jp.setLayout(new BorderLayout());</p><p> JLabel label1 = new JLabel(new ImageIcon("4.jpg"));</p>&
65、lt;p> jp.add(label1);</p><p> JLabel label2 = new JLabel(new ImageIcon("4.jpg"));</p><p> JScrollPane scrollpane=new JScrollPane(jp);</p><p> cp.add(scrollpane);<
66、;/p><p> setTitle("Welcome to ‘圖書庫’!");</p><p> Toolkit kit=Toolkit.getDefaultToolkit();</p><p> Dimension screen=kit.getScreenSize();</p><p> int x=screen.w
67、idth;/*取得顯示器窗口的寬度*/</p><p> int y=screen.height;</p><p> setSize(600,600);</p><p> int xcenter=(x-600)/2;</p><p> int ycenter=(y-600)/2;</p><
68、;p> setLocation(xcenter,ycenter);</p><p> setVisible(true);</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p> QueryScore.addActionListener(this);</p>
69、;<p> QueryXuefen.addActionListener(this);</p><p> jiangfa.addActionListener(this);</p><p> xuanke.addActionListener(this);</p><p> u1.addActionListener(this);</p>
70、<p> b1.addActionListener(this);</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> String
71、cmd=e.getActionCommand();</p><p> if (cmd.equals("圖書查詢"))</p><p><b> {</b></p><p> new QueryBook();</p><p><b> }</b></p>&l
72、t;p> if (cmdequals("圖書入庫"))</p><p><b> {</b></p><p> new BookIn();</p><p><b> }</b></p><p> if (cmd.equals("圖書刪除"))&
73、lt;/p><p><b> {</b></p><p> new RemoveBook();</p><p><b> }</b></p><p> if (cmd.equals("圖書概覽"))</p><p><b> {</b
74、></p><p> new BookBrower().showRecord();</p><p><b> } </b></p><p> if (cmd.equals("添加用戶"))</p><p><b> {</b></p><p>
75、; new userin();</p><p><b> }</b></p><p> if (cmdequals("用戶借書情況"))</p><p><b> {</b></p><p> new ubBrower().showRecord();</p>
76、<p><b> } </b></p><p><b> }</b></p><p> public static void main(String[]args)</p><p><b> {</b></p><p> new Book("&q
77、uot;);</p><p><b> }</b></p><p><b> }</b></p><p> package 圖書庫;</p><p> (1)圖書概覽:程序名BookBrower.java</p><p> class BookBrower i
78、mplements ActionListener</p><p><b> { </b></p><p><b> JFrame f;</b></p><p> Container cp;</p><p> JPanel jpS,jpanelWest;</p><
79、p> JButton jbt1,jbt2;//按鈕,查詢、取消、修改</p><p> JLabel label,L;//標(biāo)簽</p><p> JTable table;//用來接收數(shù)據(jù)庫中返回的信息</p><p> Object columnName[]={"圖書名","圖書號","單價(jià)
80、","作者","出版社","入庫時(shí)間"};</p><p> Object ar[][] =new Object[80][6];</p><p> String sno;</p><p> String count="xx";</p><p>
81、BookBrower()</p><p><b> { </b></p><p> f=new JFrame();</p><p> cp=f.getContentPane(); // 初始化面板、按鈕、標(biāo)簽、文本框</p><p> jpS=new JPanel(); </p><
82、;p> jpanelWest=new JPanel();</p><p> jbt1=new JButton("確定"); </p><p> jbt2=new JButton("返回");</p><p> label=new JLabel("<html><font color=
83、#0000ff size='4'>圖書概覽</font>",SwingConstants.CENTER);</p><p> label.setForeground(Color.blue);</p><p> L=new JLabel("書庫現(xiàn)在共有圖書"+count+"本");</p>
84、<p> table=new JTable(ar,columnName);//ar存放表中的數(shù)據(jù),columnname表示列名</p><p> JScrollPane scrollpane = new JScrollPane(table);</p><p> jpS.add(jbt1);</p><p> jpS.add(jbt2);</p
85、><p> JPanel jpanel=new JPanel();</p><p> jpanel.add(label);</p><p> JPanel pp4=new JPanel();</p><p> JPanel jpE=new JPanel();</p><p> cp.add(jpanel,&quo
86、t;North");</p><p> JPanel jp=new JPanel();</p><p> p.add(L,"North");</p><p> p.add(scrollpane);</p><p> cp.add(pp4,"West");</p><
87、p> cp.add(p,"Center");</p><p> cp.add(jpS,"South");</p><p> cp.add(jpE,"East");</p><p> Toolkit kit=Toolkit.getDefaultToolkit();</p><
88、p> Dimension screen=kit.getScreenSize();</p><p> int x=screen.width;/*取得顯示器窗口的寬度*/</p><p> int y=screen.height;/*取得顯示器窗口的高度*/</p><p> f.setSize(400,330);</p>
89、<p> int xcenter=(x-350)/2;</p><p> int ycenter=(y-330)/2;</p><p> f.setLocation(xcenter,ycenter);/*顯示在窗口中央*/</p><p> f.setVisible(true);</p><p> jbt1.addAct
90、ionListener(this);//注冊監(jiān)聽器</p><p> jbt2.addActionListener(this);</p><p> /* f.addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p>&
91、lt;p> System.exit(0);</p><p><b> }</b></p><p><b> }</b></p><p><b> );*/</b></p><p><b> }</b></p><p>
92、;<b> int i=0;</b></p><p> public void showRecord()</p><p><b> { </b></p><p> while(i>=0)</p><p><b> {</b></p><p&
93、gt; ar[i][0]="";</p><p> ar[i][1]="";</p><p> ar[i][2]="";</p><p> ar[i][3]="";</p><p> ar[i][4]="";</p>&
94、lt;p> ar[i][5]="";</p><p><b> i--;</b></p><p><b> }</b></p><p><b> i=0;</b></p><p><b> try{</b></p&
95、gt;<p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> }catch(ClassNotFoundException e){System.out.println("加載驅(qū)動程序失敗!");}</p><p><b> try{</b><
96、;/p><p> String url = "jdbc:odbc:mytest";//直接使用當(dāng)前類目錄下的數(shù)據(jù)庫文件</p><p> Connection con=DriverManager.getConnection(url);</p><p> String s="select * from book ";</
97、p><p> Statement sql=con.createStatement();</p><p> ResultSet rs=sql.executeQuery(s);</p><p> while(rs.next())</p><p><b> {</b></p><p> Strin
98、g bname=rs.getString(1);</p><p> String bno=rs.getString(2);</p><p> String price=rs.getString(3);</p><p> String writer=rs.getString(4);</p><p> String publish=rs.
99、getString(5);</p><p> String indate=rs.getString(6);</p><p> ar[i][0]=bname;</p><p> ar[i][1]=bno;</p><p> ar[i][2]=price;</p><p> ar[i][3]=writer;<
100、;/p><p> ar[i][4]=publish;</p><p> ar[i][5]=indate;</p><p><b> i++;</b></p><p><b> }</b></p><p> count=""+i+""
101、;;</p><p> L.setText("書庫現(xiàn)在共有圖書"+count+"本");</p><p> f.repaint();</p><p> con.close();</p><p> }catch(SQLException g)</p><p><b&g
102、t; {</b></p><p> System.out.println("E Code"+g.getErrorCode());</p><p> System.out.println("E M"+g.getMessage());</p><p><b> }</b></p>
103、;<p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> { </b></p><p> String cmd=e.getActionCommand();</p><p>
104、 if(cmd.equals("確定"))</p><p><b> {</b></p><p><b> f.hide();</b></p><p><b> } </b></p><p> if(cmd.equals("返回"
105、;))</p><p> f.hide(); </p><p><b> }</b></p><p> public static void main(String []arg){</p><p> BookBrower a=new BookBrower();</p><p> a.sh
106、owRecord();</p><p><b> }</b></p><p><b> }</b></p><p> (2)圖書入庫:程序名BookIn.java</p><p> class BookIn implements ActionListener</p>&l
107、t;p><b> { </b></p><p> JFrame f3;</p><p> Container cp;</p><p> JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;</p><p> JButton jbt1,jbt2;//按鈕:確定、取消、</p
108、><p> JLabel label;//標(biāo)簽</p><p> JTextField tf1,tf2,tf3,tf4,tf5,tf6; //定義文本框</p><p> JLabel label1,label2,label3,label4;</p><p> String sno;</p><p>
109、<b> BookIn()</b></p><p><b> { </b></p><p> f3=new JFrame();</p><p> cp=f3.getContentPane(); // 初始化面板、按鈕、標(biāo)簽、文本框</p><p> jp1=new JPanel();
110、 </p><p> jp2=new JPanel();</p><p> jp3=new JPanel();</p><p> jp4=new JPanel();</p><p> jpanelWest=new JPanel();</p><p> jp=new JPanel();</p>
111、<p> jbt1=new JButton("確定"); </p><p> jbt2=new JButton("取消");</p><p> label=new JLabel("<html><font color=#CC00FF size='4'>圖書入庫</font&
112、gt;",SwingConstants.CENTER);</p><p> label.setForeground(Color.blue);</p><p> tf1=new JTextField(20);</p><p> tf2=new JTextField(20);</p><p> tf3=new JTextFiel
113、d(20);</p><p> tf4=new JTextField(20);</p><p> tf5=new JTextField(20);</p><p> tf6=new JTextField(20);</p><p> jp1.add(jbt1);</p><p> jp1.add(jbt2);&l
114、t;/p><p> sno=tf4.getText();</p><p> jp1.add(new JLabel("您好"+sno+"歡迎登陸學(xué)生信息系統(tǒng)"));</p><p> JPanel jpanel=new JPanel();</p><p> jpanel.add(label);<
115、/p><p> JPanel pp4=new JPanel();</p><p> JPanel jpane4=new JPanel();</p><p> cp.add(jpanel,"North");</p><p> JPanel pp2=new JPanel(new GridLayout(6,1));</
116、p><p> JPanel pp3=new JPanel();</p><p> pp4.setLayout(new GridLayout(6,1));</p><p> pp4.add(new JLabel("圖書名",SwingConstants.CENTER));</p><p> pp2.add(tf1);&l
117、t;/p><p> pp4.add(new JLabel("圖書號",SwingConstants.CENTER));</p><p> pp2.add(tf2);</p><p> pp4.add(new JLabel("單 價(jià)",SwingConstants.CENTER));</p><p>
118、 pp2.add(tf3);</p><p> pp4.add(new JLabel("作 者",SwingConstants.CENTER));</p><p> pp2.add(tf4);</p><p> pp4.add(new JLabel("出版社",SwingConstants.CENTER));<
119、/p><p> pp2.add(tf5);</p><p> pp4.add(new JLabel("入庫時(shí)間",SwingConstants.CENTER));</p><p> pp2.add(tf6);</p><p> pp3.add(jbt1);</p><p> pp3.add(j
120、bt2);</p><p> cp.add(pp4,"West");</p><p> cp.add(pp2,"Center");</p><p> cp.add(pp3,"South");</p><p> cp.add(jpane4,"East");&
121、lt;/p><p> Toolkit kit=Toolkit.getDefaultToolkit();</p><p> Dimension screen=kit.getScreenSize();</p><p> int x=screen.width;/*取得顯示器窗口的寬度*/</p><p> int y=screen.h
122、eight;/*取得顯示器窗口的高度*/</p><p> f3.setSize(350,330);</p><p> int xcenter=(x-350)/2;</p><p> int ycenter=(y-330)/2;</p><p> f3.setLocation(xcenter,ycenter); f3.se
123、tVisible(true);</p><p> jbt1.addActionListener(this);//注冊監(jiān)聽器</p><p> jbt2.addActionListener(this);</p><p> public void insertRecord()</p><p><b> { </b>&
124、lt;/p><p> if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||</p><p> tf4.getText().equals("")||tf5.getText().equals("&
125、quot;)||tf6.getText().equals(""))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(f3,"請?zhí)顚憟D書資料");</p><p><b> return;</b></p&g
126、t;<p><b> }</b></p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> }catch(ClassNotFoundException e){Syst
127、em.out.println("加載驅(qū)動程序失敗!");}</p><p><b> try{</b></p><p> String url = "jdbc:odbc:mytest";//直接使用當(dāng)前類目錄下的數(shù)據(jù)庫文件</p><p> Connection con=DriverManager.
128、getConnection(url);</p><p> Statement sql;</p><p> String s="insert into book values('"+tf1.getText()+"','"+tf2.getText()+"','"+</p>
129、<p> tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";</p><p> String query="select * from book
130、 where 圖書號='"+tf2.getText()+"'";</p><p> sql=con.createStatement(); </p><p> ResultSet rs=sql.executeQuery(query);//返回查詢結(jié)果集</p><p> boolean moreRecord
131、s=rs.next();//判斷結(jié)果集是否有數(shù)據(jù)</p><p> if(moreRecords)</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(f3,"圖書號已經(jīng)被使用,請重新輸入");</p><p> con.clos
132、e();</p><p> tf2.setText("");</p><p><b> return;</b></p><p><b> }</b></p><p> int insert=sql.executeUpdate(s);</p><p>
133、; if(insert==1)</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null,"圖書信息錄入成功!");</p><p> tf1.setText("");</p><p> tf2.setT
134、ext("");</p><p> tf3.setText("");</p><p> tf4.setText("");</p><p> tf5.setText("");</p><p> tf6.setText("");</p
135、><p><b> }</b></p><p> }catch(SQLException g)</p><p><b> {</b></p><p> System.out.println("E Code"+g.getErrorCode());</p><
136、p> System.out.println("E M"+g.getMessage());</p><p><b> }</b></p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館圖書借閱管理信息系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫原理課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---圖書館管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 圖書館管理信息系統(tǒng)課程設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)(圖書館)
- 數(shù)據(jù)庫課程設(shè)計(jì)----圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)(圖書館管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書管理信息系統(tǒng)
- 《管理信息系統(tǒng)》課程設(shè)計(jì)--圖書館管理信息系統(tǒng)設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)--圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 圖書館管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
評論
0/150
提交評論