數(shù)據(jù)庫(kù)課設(shè)計(jì)-圖書管理系統(tǒng).doc_第1頁(yè)
數(shù)據(jù)庫(kù)課設(shè)計(jì)-圖書管理系統(tǒng).doc_第2頁(yè)
數(shù)據(jù)庫(kù)課設(shè)計(jì)-圖書管理系統(tǒng).doc_第3頁(yè)
數(shù)據(jù)庫(kù)課設(shè)計(jì)-圖書管理系統(tǒng).doc_第4頁(yè)
數(shù)據(jù)庫(kù)課設(shè)計(jì)-圖書管理系統(tǒng).doc_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除華 北 科 技 學(xué) 院數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)說明書學(xué)號(hào): 班級(jí): 計(jì)科 姓名: 設(shè)計(jì)題目: 圖書管理系統(tǒng) 設(shè)計(jì)地點(diǎn):_大軟_ _設(shè)計(jì)時(shí)間: 2015.12.28 至 2016.01.08 成績(jī)?cè)u(píng)定:1、工作量: A( ),B( ),C( ),D( ),F( )2、難易度: A( ),B( ),C( ),D( ),F( )3、答辯情況:基本操作: A( ),B( ),C( ),D( ),F( )代碼理解: A( ),B( ),C( ),D( ),F( )4、報(bào)告規(guī)范度: A( ),B( ),C( ),D( ),F( )5、學(xué)習(xí)態(tài)度: A( ),B( ),C( ),D( ),F( )總評(píng)成績(jī):_指導(dǎo)教師:_崔新偉_目錄1 引 言11.1課程設(shè)計(jì)選題11.2課程設(shè)計(jì)的目的11.3本選題的設(shè)計(jì)背景12 系統(tǒng)分析與設(shè)計(jì)12.1 系統(tǒng)的需求分析12.1.1 功能需求12.1.2 性能需求22.2 系統(tǒng)的開發(fā)運(yùn)行環(huán)境22.3 系統(tǒng)總體設(shè)計(jì)33 數(shù)據(jù)庫(kù)設(shè)計(jì)43.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)43.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)53.2.1 關(guān)系模型53.2.3 視圖的設(shè)計(jì)53.3 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)53.3.1表53.3.2 視圖73.3.3 安全性設(shè)計(jì)83.3.4 完整性設(shè)計(jì)93.3.5 索引設(shè)計(jì)103.3.5 觸發(fā)器103.3.6 存儲(chǔ)過程114 主要功能的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)114.1 登錄模塊114.2 讀者信息模塊124.3 管理員模塊134.4 讀者管理模塊134.5 書籍管理模塊154.6 借書模塊16結(jié)論18參 考 文 獻(xiàn)18附錄 19此文檔僅供學(xué)習(xí)與交流1 引 言1.1課程設(shè)計(jì)選題圖書管理系統(tǒng)1.2課程設(shè)計(jì)的目的通過數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì),熟悉了SQL SERVER數(shù)據(jù)庫(kù)管理系統(tǒng)的結(jié)構(gòu)與組成;掌握了SQL SERVER數(shù)據(jù)庫(kù)管理系統(tǒng)的應(yīng)用技術(shù)和的使用;應(yīng)用SQL server2008和eclipse開發(fā)工具實(shí)踐了圖書管理系統(tǒng)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)方法、開發(fā)過程和SQL SERVER數(shù)據(jù)庫(kù)的管理與維護(hù)。最終達(dá)到掌握數(shù)據(jù)庫(kù)管理系統(tǒng)的使用和開發(fā),提高分析問題、解決問題和實(shí)踐應(yīng)用能力。1.3本選題的設(shè)計(jì)背景數(shù)據(jù)庫(kù)技術(shù)和Internet的飛速發(fā)展,使他們已經(jīng)成為現(xiàn)代信息技術(shù)的重要組成部分,是現(xiàn)在計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。對(duì)于擁有龐大人員的學(xué)校的管理來講,數(shù)據(jù)的有效使用是一個(gè)學(xué)校能否進(jìn)行有效管理的一個(gè)關(guān)鍵。學(xué)校作為一個(gè)學(xué)習(xí)的地方,一定會(huì)有一個(gè)圖書館。有圖書館就必定要有管理,這樣學(xué)校圖書管理系統(tǒng)就顯得更為重要。學(xué)校圖書管理系統(tǒng)適應(yīng)于絕大多數(shù)的學(xué)校圖書館的管理。應(yīng)用此系統(tǒng)可以將眾多的學(xué)生信息和圖書信息進(jìn)行有效的管理,提高學(xué)校的效率。2 系統(tǒng)分析與設(shè)計(jì)2.1 系統(tǒng)的需求分析2.1.1 功能需求1. 讀者基本信息的輸入,包括讀者借書證號(hào)、讀者姓名、讀者性別、出生日期、讀者系部、讀者專業(yè)、借閱數(shù)量。2. 讀者基本信息的查詢,包括讀者借書證號(hào)、讀者姓名、讀者性別、出生日期、讀者系部、讀者專業(yè)、借閱數(shù)量。3. 書籍基本信息的錄入,括書籍編號(hào)、書籍名稱、作者姓名、出版社名稱、出版日期、單價(jià)、復(fù)本量、庫(kù)存量、類別。4. 書籍信息的查詢,包括書籍編號(hào)、書籍名稱、作者姓名、出版社名稱、出版日期、單價(jià)、復(fù)本量、庫(kù)存量、類別。5. 借閱書籍信息的錄入,包括讀者借閱證號(hào)、書籍編號(hào)、條形碼、借書日期等。6. 借閱書籍信息的查詢,包括讀者借閱證號(hào)、書籍編號(hào)、條形碼、借書日期等。7. 歷史借閱書籍的查看,查詢超過期限為歸還圖書的人的借閱證號(hào)、圖書的編號(hào)、借書日期及歸還日期。8. 讀者可查看個(gè)人信息以及圖書信息。9. 管理可查看增加讀者信息、圖書信息、以及借閱信息。2.1.2 性能需求1. 性能方面:學(xué)校的圖書館可以同時(shí)供學(xué)校的500人訪問,在校的學(xué)生或老師,都可以在圖書館借閱書籍。2. 可修改性方面:隨著計(jì)算機(jī)技術(shù)的提高,圖書管理系統(tǒng)可以根據(jù)學(xué)校的需要進(jìn)行升級(jí),從而提高它的實(shí)用性。3. 可用性方面:如果系統(tǒng)出現(xiàn)問題,可以用最短的時(shí)間進(jìn)行恢復(fù),同時(shí),每過一段時(shí)間,可以對(duì)系統(tǒng)進(jìn)行故障檢測(cè)。4. 安全性方面:該系統(tǒng)設(shè)有一個(gè)級(jí)別最高的管理員,可以對(duì)系統(tǒng)進(jìn)行所有的操作,然后在低一級(jí)就是讀者,對(duì)個(gè)人信息和書籍信息有查閱權(quán) 。5. 用戶操作方面:不同的角色有不同的權(quán)限,登陸進(jìn)去過后,會(huì)有不同的界面,方面進(jìn)行各種操作。2.2 系統(tǒng)的開發(fā)運(yùn)行環(huán)境本系統(tǒng)開發(fā)平臺(tái):eclipse + sql server 2 本系系統(tǒng)運(yùn)行平臺(tái):windows 72.3 系統(tǒng)總體設(shè)計(jì)該系統(tǒng)主要是應(yīng)用于學(xué)校圖書館的管理 。管理員通過不同權(quán)限的賬號(hào)登陸進(jìn)入不同的頁(yè)面,行使不同的權(quán)力 ,管理員可以對(duì)讀者信息的查詢、添加,圖書基本信息的查詢、入庫(kù)、更新等。同時(shí),使用該系統(tǒng)需要提供良好的用戶界面,因此,還設(shè)計(jì)好了友好的用戶界面??傮w結(jié)構(gòu)如下圖:圖書管理系統(tǒng)歷 史 借 閱書 籍 管 理借 閱 記 錄讀 者 管 理歷史借閱查詢借閱記錄查詢借閱記錄添加讀者信息添加讀者信息查詢書籍信息查詢書籍信息添加3 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能充分滿足各種信息的輸出和輸入,現(xiàn)設(shè)計(jì)如下面所示的數(shù)據(jù)結(jié)構(gòu):1. 讀者信息讀者的借閱證號(hào)、讀者姓名、讀者性別、出生年月、所在系部、所在專業(yè)、借閱數(shù)量2. 圖書信息圖書編號(hào)、書名、作者、出版社、單價(jià)、復(fù)本量、庫(kù)存量、類別3. 借閱信息讀者的借閱證號(hào)、圖書編號(hào)、條碼號(hào)、借閱日期4. 歷史借閱信息讀者的借閱證號(hào)、讀者的借閱證號(hào)、條碼號(hào)、借閱日期、歸還日期總體E-R圖:3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)3.2.1 關(guān)系模型根據(jù)概念模型的E-R圖,適當(dāng)?shù)倪M(jìn)行優(yōu)化后,可以得到以下三個(gè)關(guān)系模式:1. 讀者信息(讀者借書證號(hào),讀者姓名,讀者性別,出生年月,所在系部,所在專業(yè),借閱數(shù)量)2. 圖書信息(圖書編號(hào),書名,作者,出版社,單價(jià),復(fù)本量,庫(kù)存量,類別)3. 借閱信息(借閱證號(hào),圖書編號(hào),條碼號(hào),借閱日期,歸還日期)3.2.3 視圖的設(shè)計(jì)1. 為了方便讀者和管理員查詢書籍是否可借,建立一個(gè)視圖A,查詢圖書館內(nèi)圖書的庫(kù)存量,其字段信息包括:圖書編號(hào)、書籍名稱、庫(kù)存量。具體實(shí)現(xiàn)如下: Create view A(ISBN,Bname,Invnum) As select ISBN,Bname,Invnum From Book2. 為了方便管理員對(duì)于讀者借書情況的查看,以及便于挺醒超期為歸還同學(xué),建立一個(gè)視圖B,查看借書超過兩個(gè)月為歸還的讀者的借閱證號(hào),具體實(shí)現(xiàn)如下: Create view B(Lno) As select Lno From Lend Where (GETDATE()-Bordate)603.3 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)3.3.1表1. 讀者信息表 包括讀者的借閱證號(hào)Lno,讀者的姓名Rname,讀者性別Sex,出生日期Brithday,所在系部Dept,所屬專業(yè)Spec以及借閱數(shù)量Bornum。 2. 圖書信息表 包括圖書編號(hào)ISBN,圖書名稱Bname,作者Author,出版社Press,單價(jià)Price,復(fù)本量Copynum,庫(kù)存量Invnum,類別Btype。 3. 借閱信息表 包括讀者的借閱證號(hào)Lno,圖書的編號(hào)ISBN,圖書的條碼號(hào)Barno,借閱日期Bordate。 4. 歷史借閱信息表 包括讀者的借閱證號(hào)Lno,圖書的編號(hào)ISBN,圖書的條碼號(hào)Barno,借閱日期Bordate,歸還日期Retdate。 3.3.2 視圖視圖A 視圖B 3.3.3 安全性設(shè)計(jì)為了確保圖書管理信息的安全,設(shè)置兩個(gè)一個(gè)用戶。第一個(gè)為學(xué)生用戶Eoot1,給予權(quán)限可以查看圖書信息表。第二個(gè)用戶為管理員用戶Eoot2,給予權(quán)限可以查看,修改,刪除讀者信息表、圖書信息表、借閱表、歷史借閱表。具體實(shí)現(xiàn)如下:3.3.4 完整性設(shè)計(jì)本數(shù)據(jù)庫(kù)系統(tǒng)的基本表有讀者信息表Reader,圖書信息表Book,借閱表Lend,歷史借閱表HistoryLend。所以在建立表以及添加信息時(shí)須有參照完整性與用戶定義完整性。具體參照如下:1. 借閱書籍必須是圖書館已有的書籍,同時(shí),在記錄讀者借閱書籍時(shí),要是持有圖書證號(hào)的才可以,所以在建立借閱信息表時(shí)必須參照書籍信息表中的書籍編號(hào)(ISBN)和讀者信息中的讀者圖書證號(hào)(Lno)。 2. 在歷史借閱表中的還書記錄,必須是圖書館借出去的書,而且借書者必須是在圖書館有記錄的,所以,在建立還書記錄時(shí),借閱記錄必須參照書籍信息表中的書籍編號(hào)(ISBN)和讀者信息中的讀者圖書證號(hào)(Lno)。3. 在借閱表中的借閱記錄,必須是從圖書館借出去的書,并且借書者必須是圖書館有記錄的,所以,在建立還書記錄時(shí),借閱記錄必須參照書籍信息表中的書籍編號(hào)(ISBN)和讀者信息中的讀者圖書證號(hào)(Lno)。4. 另外,用戶定義完整性需要對(duì)表有所約束。讀者信息表中的性別,只可填為男或女,不能其他內(nèi)容。5. 圖書館每人最多借出5本書,所以讀者信息表中的借閱數(shù)量需約束小于等于五。部分代碼如下: 參照完整性: Check約束3.3.5 索引設(shè)計(jì) 此數(shù)據(jù)庫(kù)中,除了每個(gè)表中的主鍵自動(dòng)建立索引外,我還設(shè)計(jì)了兩個(gè)索引。1. 因?yàn)樽x者借書有時(shí)并未歸還而又想借書,圖書管理員好查詢記錄,所以建立一個(gè)索引。在讀者表中按照讀者借書數(shù)量的多少進(jìn)行排序,便于管理員查看提醒。2. 便于管理員查看并給予讀者挺醒圖書歸還,建立一個(gè)索引,在Lend表中對(duì)借閱日期進(jìn)行排序,便于查看哪位讀者的借書時(shí)間快要到期。實(shí)現(xiàn)如下: 3.3.5 觸發(fā)器 建立一個(gè)觸發(fā)器。當(dāng)讀者借閱圖書,在借閱表中添加一條信息后,讀者信息表中的借閱數(shù)量加一。具體實(shí)現(xiàn)如下:create trigger jiluon Lend after insertasbegindeclare Lno char(12)select Lno=Lno from insertedupdate Reader set Bornum=Bornum+1 where Lno=Lnoprint修改成功endgo3.3.6 存儲(chǔ)過程為了方便管理員管理查詢讀者信息。建立一個(gè)存儲(chǔ)過程,通過輸入讀者的借書證號(hào),顯示讀者的姓名與系部。代碼如下:-存儲(chǔ)過程create procedure chaxun(Lno char(12),Rname varchar(8) output,Dept varchar(20)output)as select Rname=Rname,Dept=Deptfrom Readerwhere Lno=Lno-驗(yàn)證存儲(chǔ)過程declare Rname varchar(8)declare Dept varchar(20)exec chaxun201205033101,Rname output,Dept outputselect Rname as 姓名,Dept as 系別4 主要功能的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 登錄模塊1. 界面,登陸界面如下: 2. 功能 本模塊可以供不同用戶進(jìn)行登錄,用戶根據(jù)自己的身份選擇為讀者或者管理員。然后輸入用戶名和密碼進(jìn)行登陸,進(jìn)入界面,選擇相關(guān)操作。讀者的用戶名和密碼為讀者的姓名和借閱證號(hào)。4.2 讀者信息模塊1. 登陸學(xué)生界面 選擇讀者身份,輸入用戶名和密碼后進(jìn)入學(xué)生查看信息界面,顯示讀者本人的信息。 2.選擇查看,查看圖書信息。 4.3 管理員模塊在登陸界面選擇管理員登陸,賬戶密碼為“admin”“123456”進(jìn)入管理員界面4.4 讀者管理模塊1. 選擇讀者管理,分為添加讀者與查詢讀者。 選擇添加讀者,添加學(xué)生信息。輸入姓名,學(xué)號(hào),性別,出生日期,系部,專業(yè),借書數(shù)量。點(diǎn)擊添加學(xué)生便可把新增的學(xué)生信息添加到數(shù)據(jù)庫(kù)中并保存。2. 讀者管理下選擇查詢讀者,有兩個(gè)子菜單,分為名稱查詢和全部查詢。 名稱查詢輸入讀者的姓名,點(diǎn)擊查詢,根據(jù)姓名查詢出讀者的個(gè)人信息。3. 選擇全部查詢,查詢所有讀者的信息。 查詢結(jié)果界面顯示讀者的姓名,學(xué)號(hào),性別,出生日期,系部,專業(yè),借書數(shù)量。界面下方有四個(gè)按鈕,分別翻看查詢其他讀者信息。4.5 書籍管理模塊1. 選擇書籍管理信息,分為添加書籍信息,和查詢圖書信息 選擇添加圖書信息,轉(zhuǎn)到添加界面,輸入書名,編號(hào),作者,出版社,單價(jià),復(fù)本量,庫(kù)存量,類別。點(diǎn)擊添加圖書,將信息添加到數(shù)據(jù)庫(kù)并保存。2. 選擇查詢圖書,分為名稱查詢和全部查詢。 名稱查詢界面,輸入書名點(diǎn)擊查詢進(jìn)行查找圖書的信息。3. 選擇全部查詢 顯示圖書的基本信息,并在下方設(shè)有四個(gè)按鈕,點(diǎn)擊翻看查詢其他圖書的信息。4.6 借書模塊1. 借書模塊分為借書情況和超期為歸還,分別根據(jù)數(shù)據(jù)庫(kù)的Lend表與HistoryLend表設(shè)定。 選擇借書情況查看讀者借書的借閱證號(hào),圖書的編號(hào),圖書的條碼號(hào),以及借書時(shí)間。界面還有一個(gè)添加的選項(xiàng)框。點(diǎn)擊添加進(jìn)行添加借書記錄。2. 選擇超期為歸還查看借書超過兩個(gè)月為歸還的讀者的借書證號(hào),圖書編號(hào),條碼號(hào),借書日期和歸還日期。通過查詢HistoryLend的借書日期和還書日期,通過計(jì)算顯示出超過兩個(gè)月還未歸還圖書的讀者的借書證號(hào),圖書編號(hào),條碼號(hào),借書日期和歸還日期。 結(jié)論此次的課程設(shè)計(jì)的主要內(nèi)容是圖書借閱管理系統(tǒng)。主要分為圖書管理、讀者管理、圖書借閱三個(gè)模塊。這個(gè)系統(tǒng)主要的是面向圖書管理員和讀者設(shè)計(jì)的,即系統(tǒng)的操作人員是管理員,和不同的讀者。系統(tǒng)的設(shè)計(jì)使用的Java語(yǔ)言。用Java語(yǔ)言和數(shù)據(jù)庫(kù)相連接共同實(shí)現(xiàn)本系統(tǒng)的功能。這次的課程設(shè)計(jì)的主要目的是對(duì)數(shù)據(jù)庫(kù)課程的知識(shí)的熟練應(yīng)用,在此次設(shè)計(jì)中,將數(shù)據(jù)庫(kù)理論知識(shí)與實(shí)際需求相結(jié)合進(jìn)行設(shè)計(jì)。數(shù)據(jù)庫(kù)的設(shè)計(jì)遵循了實(shí)體完整性、參照完整性和用戶自定義完整性,整體上能夠完成所需求的功能。通過此次的課程設(shè)計(jì),深刻體會(huì)到對(duì)數(shù)據(jù)庫(kù)理論知識(shí)的掌握不夠扎實(shí),尤其是對(duì)于觸發(fā)器、存儲(chǔ)過程的設(shè)計(jì)和使用存在很大的問題。在完成本次的設(shè)計(jì)后,對(duì)這些知識(shí)有了進(jìn)一步的掌握和理解。同時(shí)也更加熟練地掌握了一些java的知識(shí)。在這次課程設(shè)計(jì)的結(jié)果中,我所做的圖書管理系統(tǒng)能夠初步的實(shí)現(xiàn)一些功能,例如讀者和管理的查詢信息,管理員的添加信息等。但仍有很多不足,比如并沒有詳細(xì)的設(shè)置刪除等設(shè)置,同時(shí)對(duì)于超過借書期限而為歸還的同學(xué)也沒有設(shè)定罰款計(jì)算。對(duì)于這次課設(shè),我覺得培養(yǎng)了我的動(dòng)手操作能力,從數(shù)據(jù)庫(kù)的設(shè)計(jì)到實(shí)現(xiàn)再到用戶界面的完成,更加熟練地讓我掌握了所學(xué)的知識(shí),真正的做到了學(xué)以致用。我希望能有更多的這樣的鍛煉機(jī)會(huì),同時(shí)能夠有更多的時(shí)間去修改完善我所做的系統(tǒng)。也希望能有機(jī)會(huì)小組合作,做些更加復(fù)雜全面的能夠更好的運(yùn)用在實(shí)際生活中的數(shù)據(jù)庫(kù)系統(tǒng)。參 考 文 獻(xiàn)1王春玲, 許福,范春梅. 數(shù)據(jù)庫(kù)原理及應(yīng)用教程:人民郵電出版社, 2014.2耿祥義, 張躍平. Java大學(xué)實(shí)用教程(第三版):電子工業(yè)出版社, 2012.附錄1. 圖書館管理系統(tǒng)設(shè)計(jì)中的java界面與數(shù)據(jù)庫(kù)的鏈接重要代碼如下: import java.sql.*; public class lianjie1 public static Connection getConn()Connection conn = null;try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); System.out.println(驅(qū)動(dòng)加載成功!);conn = DriverManager.getConnection(jdbc:sqlserver:/localhost:1434;DatabaseName=tsgl,sa,111); /字符串中不允許有空格System.out.println(數(shù)據(jù)庫(kù)連接成功!); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return conn; public static void main(String args) getConn();2. 登陸界面的基礎(chǔ)代碼如下: import java.awt.event.*; import javax.swing.*;public class denglu extends JFrame implements ActionListenerprivate JTextField textName;private JPasswordField textPassword;JComboBox cbSF;/選擇身份下拉框private JTextField textCheck;/顯示提示結(jié)果private JButton ok;public denglu() super(圖書管理系統(tǒng));JPanel panel = new JPanel();JLabel labelName = new JLabel(用戶名:, JLabel.CENTER);textName = new JTextField(15);panel.add(labelName);panel.add(textName);JLabel labelPassword = new JLabel(密 碼:);textPassword = new JPasswordField(15);panel.add(labelPassword);panel.add(textPassword);StringstrSF=讀者,管理員;cbSF=new JComboBox(strSF);panel.add(new JLabel(身 份:);panel.add(cbSF);ok = new JButton(登 錄);panel.add(ok);/ 創(chuàng)建驗(yàn)證文本框textCheck = new JTextField(20);textCheck.setEditable(false);textCheck.setVisible(false);panel.add(textCheck);getContentPane().add(panel);textName.addActionListener(this);ok.addActionListener(this); public void actionPerformed(ActionEvent e) if (e.getSource() = ok) /判斷觸發(fā)事件的是否為登錄按鈕String name = textName.getText();String ps = new String(textPassword.getPassword();String sf=(String)cbSF.getSelectedItem();if(管理員.equals(sf) /如果下拉選項(xiàng)選擇的是教師if (name.equals(admin) & ps.equals(123456) /若正確,調(diào)用教師界面(目前還沒編寫教師界面,下面這行語(yǔ)句先注釋)new TeacherMain(); else textCheck.setText(用戶名與密碼不正確,教師登錄失敗!);textCheck.setVisible(true);this.setSize(250, 160);textName.grabFocus();else if(讀者.equals(sf) /如果下拉選項(xiàng)選擇的是學(xué)生/調(diào)用登錄業(yè)務(wù)處理類,判斷登錄學(xué)生用戶是否正確if (LoginManager.login(name,ps) /因上行語(yǔ)句注釋,為保證語(yǔ)句邏輯正確性,暫時(shí)添加下行語(yǔ)句/if (name.equals(李紅梅) & ps.equals(201205033101) /若學(xué)生用戶信息正確,調(diào)用學(xué)生界面new Student(name); else textCheck.setText(用戶名與密碼不正確,學(xué)生登錄失敗!);textCheck.setVisible(true);this.setSize(250, 160);textName.grabFocus();/ public static void main(String args) denglu frame = new denglu();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(250, 140);frame.setVisible(true);3. 登陸界面與數(shù)據(jù)庫(kù)鏈接的重要代碼: import java.sql.*; public class LoginManager public static boolean login(String name,String ps)Connection connect = null;PreparedStatement psmt = null;ResultSet rs = null;connect = lianjie1.getConn();String sql=select * from reader where Rname=? and Lno=?;try psmt = connect.prepareStatement(sql);psmt.setString(1,name);psmt.setString(2,ps);rs=psmt.executeQuery();if(rs.next()return true;return false; catch (SQLException e) e.printStackTrace();finallytry if(rs!=null) rs.close();if(psmt!=null)psmt.close();if(connect!=null)connect.close(); catch (SQLException e) e.printStackTrace();return false;public static void main(String args) System.out.println(login(李紅梅,201205033101);/System.out.println(login(aaa,1); 4. 借書信息按照表格全部輸出的代碼如下:import java.awt.BorderLayout;import java.awt.Color;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.table.DefaultTableCellRenderer;class jieshu extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;int w,h;JPanel pNorth;/定義面板容器類對(duì)象JScrollPane pCenter;/定義滾動(dòng)面板對(duì)象JLabel Label_grb;/定義一個(gè)標(biāo)簽對(duì)象MyTable table;/定義一個(gè)表格 Object a;/定義一個(gè)二維數(shù)組 Object name=借書證號(hào),圖書編號(hào),條碼號(hào),借書日期;/定義數(shù)組 Connection con;/定義一個(gè)與數(shù)據(jù)庫(kù)連接的對(duì)象 Statement sql; /定義一個(gè)向數(shù)據(jù)庫(kù)發(fā)送語(yǔ)句的對(duì)象 ResultSet rs;/結(jié)果集(ResultSet)是數(shù)據(jù)中查詢結(jié)果返回的一種對(duì)象 JMenu ji; JMenuItem jie; JMenuBar menubar; JLabel result; / /構(gòu)造函數(shù)/ jieshu() jie=new JMenuItem(添加借書記錄); ji=new JMenu(添加); menubar=new JMenuBar(); ji.add(jie); menubar.add(ji); setJMenuBar(menubar); result=new JLabel(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); add(result); validate(); jie.addActionListener(this); w=Toolkit.getDefaultToolkit().getScreenSize().width;/獲取屏幕寬度 h=Toolkit.getDefaultToolkit().getScreenSize().height;/獲取屏幕高度 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); catch(ClassNotFoundException e)/捕獲異常 System.out.println(+e); try con=DriverManager.getConnection(jdbc:sqlserver:/localhost:1434;DatabaseName=tsgl,sa,111); sql=con.createStatement(); catch(SQLException e)/捕獲異常 System.out.println(e); try rs=sql.executeQuery(SELECT * FROM Lend); a=new Object1004; int i=0; while(rs.next() ai0=rs.getString(1); ai1=rs.getString(2); ai2=rs.getString(3); ai3=rs.getString(4); i+; catch(SQLException e1)/捕獲異常 System.out.println(e1); try con.close(); catch(SQLException e1)/捕獲異常 System.out.println(e1); table=new MyTable(a,name);/創(chuàng)建網(wǎng)格對(duì)象 table.setRowHeight(20);/設(shè)置行高 DefaultTableCellRenderer r = new DefaultTableCellRenderer();/處于正在編輯或者在最頂層放置的組件 r.setHorizontalAlignment(JLabel.CENTER);/設(shè)置文本對(duì)齊方式為居中 table.setDefaultRenderer(Object.class, r); pCenter=new JScrollPane(table);/為表table創(chuàng)建一個(gè)滾動(dòng)面板對(duì)象 getContentPane().add(pCenter,BorderLayout.CENTER);/將其添加到布局中部 setTitle(借書情況);/設(shè)置標(biāo)題 pNorth=new JPanel(); Label_grb=new JLabel(借書情況); Label_grb.setForeground(Color.red); pNorth.add(Label_grb); getContentPane().add(pNorth,BorderLayout.NORTH); setBounds(w-640)/2,(h-350)/2,640,350); validate(); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); public void actionPerformed(ActionEvent e) if(e.getSource()=jie) new addjieshu(); public static void main(String args) jieshu win=new jieshu(); /class MyTable extends JTable/private static final long serialVersionUID = 1L;/構(gòu)造函數(shù)/MyTable(Object a,Object lm)/ super(a,lm);/設(shè)置單元格不能編輯的函數(shù)/public boolean isCellEditable(int row,int column)/return false;/ /5. 添加信息:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Addbook extends JFrameJTextField BnameText,ISBNText,AuthorText,PressText,PriceText,CopynumText,InvnumText,BtypeText;JButton addbook;JLabel tsLabel;/提示添加結(jié)果標(biāo)簽public Addbook()super(添加圖書信息界面);this.setLayout(new FlowLayout();this.add(new JLabel(書名:);BnameText=new JTextField(,15);this.add(BnameText);this.add(new JLabel(編號(hào):);ISBNText=new JTextField(,15);this.add(ISBNText);this.add(new JLabel(作者:);AuthorText=new JTextField(,15);this.add(AuthorText);this.add(new JLabel(出版社:);PressText=new JTextField(,14);this.add(PressText);this.add(new JLabel(單價(jià):);PriceText=new JTextField(,15);this.add(PriceText);this.add(new JLabel(復(fù)本量:);CopynumText=new JTextField(,14);this.add(CopynumText);this.add(new JLabel(庫(kù)存量:);InvnumText=new JTextField(,14);this.add(InvnumText);this.add(new JLabel(類別:);BtypeText=new JTextField(,14);this.add(BtypeText);this.add(addbook=new JButton(添加圖書);this.add(tsLabel=new JLabel();addbook.addActionListener(new MyListener();this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setSize(250, 400);this.setVisible(true);public static void main(String args) new Addbook();public class MyListener implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=addbook)String Bname=BnameText.getText();String ISBN=ISBNText.getText();String Author=AuthorText.getText();String Press=PressText.getText();String Copynum=CopynumText.getText();String Invnum=InvnumText.getText();String Price=PriceText.getText();/Float Price=Float.parseFloat(PriceText.getText();/Double Copynum=Double.parseDouble(CopynumText.getText();/Double Invnum=Double.parseDouble(InvnumText.getText();String Btype=BtypeText.getText();/下面代碼注釋需要AddbookManager類編完,才可去掉/判斷是否存在該圖書,以防止重復(fù)添加if(AddbookManager.isAdd(ISBN)tsLabel.setText(編號(hào)為+ISBN+已經(jīng)存在!);else/判斷添加是否成功if(AddbookManager.add(Bname,ISBN,Author,Press,Price,Copynum,Invnum,Btype)0)tsLabel.setText(添加成功!);elsetsLabel.setText(添加失?。?;6. 查詢信息:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SelectAll extends JFrame implements ActionListenerJButton firstB,previousB,nextB,finalB;/4個(gè)按鈕JPanel jp;/卡片面板CardLayout cl;/卡片式布局pu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論