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

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論