圖書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告_第1頁(yè)
圖書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告_第2頁(yè)
圖書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告_第3頁(yè)
圖書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告_第4頁(yè)
圖書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩57頁(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)介

年4月19日?qǐng)D書管理系統(tǒng)java課程設(shè)計(jì)報(bào)告文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。焦作大學(xué)信息工程學(xué)院《Java實(shí)訓(xùn)》報(bào)告題目:圖書管理系統(tǒng)班級(jí):網(wǎng)絡(luò)(1)班姓名:張輝學(xué)號(hào):12月22日摘要隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)已被廣泛的應(yīng)用于社會(huì)的各個(gè)領(lǐng)域,成為推動(dòng)社會(huì)發(fā)展的技術(shù)動(dòng)力。而在計(jì)算機(jī)應(yīng)用中,軟件的作用十分突出,軟件已經(jīng)發(fā)展成為信息技術(shù)的核心,主導(dǎo)著信息產(chǎn)品的開發(fā)和信息技術(shù)市場(chǎng)的進(jìn)一步的開拓。軟件產(chǎn)業(yè)已成為社會(huì)信息化進(jìn)程中的一個(gè)戰(zhàn)略性產(chǎn)業(yè)。在軟件技術(shù)的應(yīng)用中軟件的開發(fā)技術(shù)特別是應(yīng)用型軟件產(chǎn)品的開發(fā)技術(shù)成了重中之重。不斷開發(fā)適應(yīng)用戶需求、市場(chǎng)需要的新型軟件產(chǎn)品。特別是在校園里,各種軟件的應(yīng)用無(wú)處不在,為我們的學(xué)習(xí)和生活提供了方便。學(xué)校的圖書館不但給我們提供看書學(xué)習(xí)的地方,還給我們提供了一套功能齊全的圖書館系統(tǒng),方便我們搜索書籍、借閱圖書。我們本次的Java課程設(shè)計(jì)的最終目標(biāo)是實(shí)現(xiàn)一個(gè)圖書館管理系統(tǒng),使其具有一般圖書管理系統(tǒng)所具有的功能,能夠?qū)崿F(xiàn)管理員日志、管理員添加、管理員退出、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫(kù)、書籍查詢、書籍借閱與歸還等功能。因?yàn)镴ava是一門很優(yōu)秀的編程語(yǔ)言,具有面向?qū)ο蟆⑴c平臺(tái)無(wú)關(guān)、安全、穩(wěn)定和多線程等特點(diǎn),因此用Java編程為我們本次程序的編寫提供了方便。在設(shè)計(jì)中我們主要進(jìn)行了數(shù)據(jù)庫(kù)及類的設(shè)計(jì),把整系統(tǒng)分成了15個(gè)類和5個(gè)表。經(jīng)過(guò)應(yīng)用awt、swing、sql、util等包,合理的添加了按鈕、菜單、文本框、文本區(qū)、表格等組件類,還包含窗口、面板等容器類,經(jīng)過(guò)設(shè)計(jì)者合理的布局,完成了窗體的設(shè)計(jì),并經(jīng)過(guò)建立JDBC-ODBC橋接器連接到Access數(shù)據(jù)庫(kù)后,向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句實(shí)現(xiàn)程序與數(shù)據(jù)庫(kù)中表間的消息通信,從而實(shí)現(xiàn)了相應(yīng)的圖書館管理系統(tǒng)的功能。本文主要分為緒論、系統(tǒng)功能介紹、數(shù)據(jù)庫(kù)需求分析、系統(tǒng)功能實(shí)現(xiàn)、結(jié)論、致謝、參考文獻(xiàn)7大塊。在緒論中介紹了本次課設(shè)選題的緣由及思想。系統(tǒng)功能介紹中詳細(xì)介紹了本圖書管理系統(tǒng)的整體思想及其具體功能。在數(shù)據(jù)庫(kù)需求分析中詳細(xì)說(shuō)明了數(shù)據(jù)庫(kù)的需求分析、概念設(shè)計(jì)及表的設(shè)計(jì)。在系統(tǒng)功能實(shí)現(xiàn)中主要經(jīng)過(guò)抓圖來(lái)體現(xiàn)設(shè)計(jì)的結(jié)果。總之,我們的整體設(shè)計(jì)思想均在報(bào)告中體現(xiàn)。關(guān)鍵詞:圖書館管理系統(tǒng),Java程序設(shè)計(jì)語(yǔ)言,Access數(shù)據(jù)庫(kù)目錄摘要 I第1章緒論 1第2章系統(tǒng)功能介紹 22.1系統(tǒng)功能總框圖 22.2模塊功能介紹 22.2.1管理員模塊功能介紹 22.2.2讀者管理 32.2.3書籍管理模塊功能介紹 32.2.4書籍借閱與歸還功能介紹 42.2.5借閱超時(shí)功能介紹 42.3組內(nèi)任務(wù)分工 4第3章數(shù)據(jù)庫(kù)設(shè)計(jì) 53.1數(shù)據(jù)庫(kù)需求分析 53.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 53.3數(shù)據(jù)庫(kù)表的設(shè)計(jì) 6第4章系統(tǒng)功能實(shí)現(xiàn) 84.1管理員模塊功能實(shí)現(xiàn) 84.1.1管理員登陸 84.1.2管理日志 104.1.3管理員添加功能實(shí)現(xiàn) 114.1.4管理員切換 134.2讀者管理模塊功能實(shí)現(xiàn) 144.2.1讀者添加 144.2.2讀者修改 154.2.3讀者查詢 174.2.4讀者刪除 184.3書籍管理模塊功能實(shí)現(xiàn) 194.3.1新書入庫(kù)實(shí)現(xiàn) 194.3.2查詢功能實(shí)現(xiàn) 214.4書籍借閱與歸還功能實(shí)現(xiàn) 234.4.1借閱書籍功能實(shí)現(xiàn) 234.4.2歸還書籍功能實(shí)現(xiàn) 254.5借閱超時(shí)功能實(shí)現(xiàn) 28結(jié)論 30致謝 31參考文獻(xiàn) 32第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)越高。書籍做為人類的精神食糧,在現(xiàn)代社會(huì)中越來(lái)越受到重視,大量的書籍出現(xiàn)在市場(chǎng)上,人們有了各種各樣不同的選擇。與此同時(shí),為了管理大量的圖書,圖書管理系統(tǒng)也大量的出現(xiàn),隨著圖書的大量增加,其管理難度也越來(lái)越大,如何優(yōu)化管理也就成為了一個(gè)大眾化的問(wèn)題。現(xiàn)已有的圖書管理系統(tǒng),其功能已十分強(qiáng)大,為了便于管理員對(duì)圖書管理系統(tǒng)進(jìn)行妥善的管理和讀者的查詢,圖書管理系統(tǒng)為管理員提供了管理日志、管理員添加、管理員切換、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫(kù)等功能,為讀者提供了書籍查詢、讀者借閱信息查詢、圖書網(wǎng)上續(xù)借等很多功能。大學(xué)為我們提供了自由的學(xué)習(xí)環(huán)境,使我們有更多的時(shí)間到圖書館借閱書籍,讓我們能夠隨時(shí)掌握各方面的知識(shí),不斷提高自我、充實(shí)自我,但由于圖書館藏書成千上萬(wàn),我們很難一本一本的去查找自己感興趣的書籍,因此我們會(huì)經(jīng)常見到學(xué)校為我們提供的圖書管理系統(tǒng),用時(shí)間長(zhǎng)了便對(duì)此產(chǎn)生了興趣,正好本次課程設(shè)計(jì)為我們提供了良好的機(jī)會(huì),讓我們親自設(shè)計(jì)并實(shí)現(xiàn)了圖書管理系統(tǒng)的部分功能。設(shè)計(jì)一個(gè)圖書管理系統(tǒng)必不可少的必須對(duì)全管書籍進(jìn)行分類匯總。而這就是我們所說(shuō)的數(shù)據(jù)庫(kù)設(shè)計(jì)的第一階段:需求分析。在這一階段除了對(duì)具體情況諸如實(shí)行對(duì)管理員的管理、對(duì)讀者的管理、書籍管理、書籍的借閱與歸還、借閱超時(shí)等功能的實(shí)現(xiàn),還需要對(duì)用戶的需求進(jìn)行調(diào)查和分析,否則就失去了設(shè)計(jì)這個(gè)系統(tǒng)的意義了。對(duì)于界面的設(shè)計(jì)我們應(yīng)該追求的是:美觀、易讀性強(qiáng)、清晰度高;原則是:不能因?yàn)榭桃庾非竺烙^而以整個(gè)界面的清晰度的犧牲作為代價(jià),不能為了清晰度而拋棄對(duì)易讀性的追求。再設(shè)計(jì)的過(guò)程中我們應(yīng)該根據(jù)實(shí)際的情況進(jìn)行設(shè)計(jì),做到具體問(wèn)題具體分析,不刻意追求原則。在對(duì)應(yīng)的界面與Access數(shù)據(jù)庫(kù)建立連接,并實(shí)現(xiàn)對(duì)應(yīng)的SQL語(yǔ)句進(jìn)行實(shí)現(xiàn)將產(chǎn)生的結(jié)果顯示出來(lái)。并運(yùn)用捕捉異常的方法,將異常信息顯示出來(lái)。實(shí)現(xiàn)SQL語(yǔ)句的時(shí)候借助前臺(tái)開發(fā)工具中關(guān)于數(shù)據(jù)處理的控件來(lái)完成。對(duì)于讀者而言她們的需求是了解圖書的基本情況,自己的借閱情況??偠灾褪菍?shí)現(xiàn)對(duì)各個(gè)信息表的查詢。對(duì)于圖書管理員而言要實(shí)現(xiàn)的功能相對(duì)而言比較多,例如實(shí)現(xiàn)新書入庫(kù)、Access數(shù)據(jù)庫(kù)表的創(chuàng)立、系統(tǒng)的維護(hù)等等,這些都需要設(shè)計(jì)和實(shí)現(xiàn)的。第2章系統(tǒng)功能介紹2.1系統(tǒng)功能總框圖圖書館管理系統(tǒng)功能總框圖,如圖2-1所示。圖書館管理系統(tǒng)圖書館管理系統(tǒng)管理員讀者管理書籍管理書籍借閱歸還管理員管理日志管理員添加管理員切換讀者添加讀者信息修改讀者刪除新書入庫(kù)書籍查詢借閱書籍歸還書籍借閱超時(shí)讀者信息查詢圖2-1系統(tǒng)功能框架圖2.2模塊功能介紹2.2.1管理員模塊功能介紹1.管理員登陸此模塊主要是利用MenuBar添加菜單條,利用Menu和MenuItem添加菜單和菜單的各個(gè)參數(shù),經(jīng)過(guò)事件ActionEvent能夠?qū)崿F(xiàn)進(jìn)入各個(gè)模塊如管理日志、管理員添加、管理員切換、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫(kù)、書籍查詢、借閱書籍、歸還書籍、借閱超時(shí)及退出的功能。2.管理日志此模塊能夠清楚的顯示出書籍借閱與歸還的信息,包括書號(hào)、書名、圖書證號(hào)、借/還、操作日期、已付款額。讀者能夠經(jīng)過(guò)此模塊實(shí)現(xiàn)的功能清楚的了解圖書被借閱和歸還的詳細(xì)信息,從而給讀者帶來(lái)了很多方便。3.管理員添加功能介紹此模塊功能是增加新管理員的登陸帳戶。在圖書館管理系統(tǒng)中必須有每一個(gè)管理者的帳戶讓其能夠正常進(jìn)行新圖書證的辦理、借閱書籍和歸還書籍等系統(tǒng)管理。因此在管理員功能模塊中增加了管理員添加這個(gè)功能。4.管理員切換此模塊的主要功能是進(jìn)行管理員之間的切換,即單擊管理員菜單下的管理員切換,就會(huì)退出當(dāng)前管理員界面,從而出現(xiàn)管理員切換窗口,而另一管理員就能夠在管理員切換窗口中的用戶名和密碼兩欄中經(jīng)過(guò)輸入自己的用戶名和密碼直接進(jìn)入該系統(tǒng)。2.2.2讀者管理1.讀者添加此模塊主要的實(shí)現(xiàn)功能是添加新的讀者信息,即當(dāng)有新的讀者要看查看本圖書館中的書藉,能夠經(jīng)過(guò)此功能實(shí)現(xiàn),當(dāng)數(shù)據(jù)庫(kù)中存在其新信息,即成為本圖書館的新一位讀者。其中信息分別包括圖書證號(hào)、學(xué)生姓名、性別、系別、班級(jí),同時(shí)可有三項(xiàng)功能在此處實(shí)現(xiàn),即添加、重置以及返回。2.讀者修改此模塊主要的實(shí)現(xiàn)功能對(duì)有信息更新的讀者進(jìn)行即時(shí)修改,以隨時(shí)更新讀者在數(shù)據(jù)庫(kù)中的信息。本模塊經(jīng)過(guò)圖書證號(hào)確定讀者,可對(duì)讀者信息的新圖書證號(hào)、學(xué)短姓名、性別、系別、班級(jí)。此處可分別實(shí)現(xiàn)對(duì)該功能的修改、重置、返回。3.讀者查詢此模塊主要可對(duì)所要了解的讀者信息。即把讀者的信息從數(shù)據(jù)庫(kù)調(diào)出來(lái),顯示在該窗口中的文字區(qū)域。查詢方式分別有按圖書證查詢、按姓名查詢、按班級(jí)查詢、按年級(jí)查詢,并可經(jīng)過(guò)辦理入相應(yīng)的關(guān)鍵字,更加縮小查詢范圍。此處可實(shí)現(xiàn)查詢和返回功能。4.讀者刪除此模塊能夠刪除一些不再使用本系統(tǒng)的讀者資料,從而達(dá)到對(duì)數(shù)據(jù)庫(kù)中的清理,即清除一些不必要資料,此處有四種刪除途徑,分別為按圖書證號(hào)刪除、按姓名刪除、按班級(jí)刪除、安年級(jí)刪除,并可經(jīng)過(guò)所輸入的關(guān)鍵字盡快找到所要?jiǎng)h除的資料。此處可分別實(shí)現(xiàn)對(duì)該功能的修改、重置、返回。2.2.3書籍管理模塊功能介紹1.新書入庫(kù)功能介紹此模塊主要的實(shí)現(xiàn)功能是將新來(lái)的圖書輸入到圖書館管理系統(tǒng)的書庫(kù)當(dāng)中,其中主要按如下信息往書庫(kù)中輸入,這部分的操作主要是便于書庫(kù)合理的管理,有利于讀者能夠?qū)π聲幸粋€(gè)更詳細(xì)的了解。其中包括如下信息:新書書號(hào)、新書名稱、新書出版日期、新書出版社、入庫(kù)數(shù)量、編寫作者、新書單價(jià)。2.書籍查詢功能介紹在圖書館管理系統(tǒng)中書籍查詢是最基本的功能,讀者能夠根據(jù)自己的需求來(lái)查詢想要借閱的書籍。本系統(tǒng)是用Java應(yīng)用程序和Access數(shù)據(jù)庫(kù)一起開發(fā)的其中利用Java來(lái)編程實(shí)現(xiàn)功能的代碼和布置運(yùn)行界面。界面是由檢索項(xiàng)、檢索詞和顯示文本區(qū)三個(gè)部分組成的用戶根據(jù)自己的需要在檢索項(xiàng)中選擇自己所要按什么字段進(jìn)行查詢,其中書籍查詢功能的檢索項(xiàng)中能夠按書號(hào)查詢、按書名查詢、按作者名查詢、按出版社查詢、按入庫(kù)時(shí)間查詢等基礎(chǔ)查詢。選擇檢索項(xiàng)后用戶只要在檢索詞中添寫自己所要查詢的內(nèi)容并確定鍵確認(rèn)后用戶要查詢的內(nèi)容就能夠在顯示文本區(qū)中顯示出來(lái)。用戶能夠根據(jù)顯示的信息得知自己所要借閱書籍的情況。2.2.4書籍借閱與歸還功能介紹1.借閱書籍功能介紹此模塊主要實(shí)現(xiàn)讀者可憑有效的圖書證號(hào),借閱圖書館內(nèi)未借出的圖書。輸入圖書證號(hào)后,可顯示了該圖書證持有者的全部信息(包括借書證號(hào)、姓名、性別、所在班級(jí)、所屬系部、當(dāng)前可借閱圖書個(gè)數(shù)),供讀者確認(rèn)信息。經(jīng)過(guò)輸入有效的圖書編號(hào),查詢?cè)搱D書的全部信息(包括書號(hào)、書名、作者、出版社、是否借出、價(jià)格)。借閱成功后,將該圖書證號(hào)、書號(hào)、借閱日期、應(yīng)還日期信息插入到數(shù)據(jù)庫(kù)的表中進(jìn)行記錄。2.歸還書籍功能介紹此模塊主要實(shí)現(xiàn)讀者憑所要?dú)w還圖書的圖書證號(hào)歸還圖書。輸入所要?dú)w還的圖書編號(hào)后,可顯示了該圖書證持有者的全部信息(包括借書證號(hào)、姓名、性別、所在班級(jí)、所屬系部、當(dāng)前可借閱圖書個(gè)數(shù)),供讀者確認(rèn)信息。還書成功后,從數(shù)據(jù)庫(kù)中刪除該書的借出記錄,并修改數(shù)據(jù)庫(kù)中的相應(yīng)信息。2.2.5借閱超時(shí)功能介紹此模塊主要實(shí)現(xiàn)顯示過(guò)期圖書的信息(包括圖書證號(hào)、書號(hào)、借閱日期、應(yīng)還日期)提醒讀者還書。2.3組內(nèi)任務(wù)分工組內(nèi)分工情況如下表2-1所示。表2-1組內(nèi)分工情況表組長(zhǎng)鄒剛讀者添加、查詢、修改、刪除。組員羅姍姍書籍借閱與歸還模塊、借書超期限子系統(tǒng)。李呈呈管理員添加、新書入庫(kù)、按指定條件進(jìn)行圖書查詢。劉蘭蘭數(shù)據(jù)庫(kù)創(chuàng)立、登陸界面設(shè)計(jì)、管理員模塊。第3章數(shù)據(jù)庫(kù)設(shè)計(jì)在此圖書館管理系統(tǒng)中,使用到了一個(gè)重要的連接,即與數(shù)據(jù)庫(kù)Accesss相連。數(shù)據(jù)庫(kù)中存有圖書館中所信息,包括讀者信息、管理員資料、借閱與退還記錄。所有與管理有關(guān)的數(shù)據(jù)皆在其中,是保證系統(tǒng)能夠正常實(shí)現(xiàn)各種功能的一架橋。3.1數(shù)據(jù)庫(kù)需求分析⒈Admi表,即管理員表,記錄了用戶名和密碼。⒉Admirz表,即管理日志表,記錄了書號(hào)、書名、圖書證號(hào)、借/還、操作日期、已付款額。⒊book表,即圖書表,記錄了書號(hào)、書名、作者、出版社、入庫(kù)時(shí)間、是否借出、價(jià)格。⒋borrowbook表,即借閱表,記錄了圖書證號(hào)、書號(hào)、借閱日期、應(yīng)還日期。⒌person表,即讀者表,記錄了圖書證號(hào)、姓名、性別、系別、班級(jí)。3.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)圖書館管理系統(tǒng)E-R圖,如圖3-1。mmn讀者圖書管理員性別系別班級(jí)姓名圖書證號(hào)書號(hào)書名作者出版社會(huì)化密碼用戶名管理管理mnm借閱1入庫(kù)時(shí)間是否借出價(jià)格圖3-1圖書館管理系統(tǒng)E-R圖3.3數(shù)據(jù)庫(kù)表的設(shè)計(jì)⒈Admi表表中記錄了能夠使管理員進(jìn)入該系統(tǒng)的用戶名及密碼,如表3-1所示。表3-1管理員信息表字段名稱數(shù)據(jù)類型長(zhǎng)度備注用戶名文本10密碼文本15⒉Admirz表表中記錄借還書日志,用于存下所有對(duì)圖書操作的記錄,以便以后能夠翻閱和查找,如表3-2所示。表3-2管理日志表字段名稱數(shù)據(jù)類型長(zhǎng)度備注書號(hào)文本10書名文本15作者文本15出版社文本15入庫(kù)時(shí)間DATE15已付款額文本10⒊book表表中記錄了庫(kù)內(nèi)所有圖書的所有資料,如表3-3。表3-3圖書表字段名稱數(shù)據(jù)類型長(zhǎng)度備注書號(hào)文本10書名文本15作者文本15出版社文本15入庫(kù)時(shí)間DATE15是否借出文本10價(jià)格文本10⒋person表表中記錄庫(kù)中所有讀者的相關(guān)信息,如表3-4所示。表3-4讀者表字段名稱數(shù)據(jù)類型長(zhǎng)度備注圖書證號(hào)文本10姓名文本15性別文本15系別文本15班級(jí)文本15⒌borrowbook表表內(nèi)記錄了此時(shí)圖書的借閱情況,如表3-5所示。表3-5借閱表字段名稱數(shù)據(jù)類型長(zhǎng)度備注圖書證號(hào)文本10書號(hào)文本15借閱日期DATE15應(yīng)還日期DATE15第4章系統(tǒng)功能實(shí)現(xiàn)4.1管理員模塊功能實(shí)現(xiàn)4.1.1管理員登陸此模塊是整個(gè)系統(tǒng)最主要的部分,管理員能夠經(jīng)過(guò)此模塊實(shí)現(xiàn)進(jìn)入其余各個(gè)模塊如管理日志、管理員添加、管理員切換、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫(kù)、書籍查詢、借閱書籍、歸還書籍、借閱超時(shí)及退出的功能。圖書管理系統(tǒng)管理員界面如圖4-1所示。圖4-1圖書管理系統(tǒng)管理員主要程序代碼如下: publicvoidactionPerformed(ActionEvente) { if(e.getSource()==itemAdmiqh) { this.dispose(); Inwinin=newIn("系統(tǒng)登陸"); } if(e.getSource()==itemtc) { System.exit(0); } if(e.getSource()==itemAdmixj) { CreatAdmicreatAdmi=newCreatAdmi("管理員添加"); } if(e.getSource()==itemAdmirz) { WinTablewintable=newWinTable("管理日志"); } if(e.getSource()==itemBookrk) { AddInfyaddInfy=newAddInfy(); } if(e.getSource()==itemPersonlr) { Winpersonaddwinperson=newWinpersonadd("讀者添加"); } if(e.getSource()==itemPersoncx) { Winpersonsearchwinperson=newWinpersonsearch("讀者信息查詢"); } if(e.getSource()==itemPersonxg) { Winpersonmodifywinperson=newWinpersonmodify("讀者信息修改"); } if(e.getSource()==itemPersonsc) { Winpersondeletewinperson=newWinpersondelete("讀者刪除"); } if(e.getSource()==itemBookcx) { Windowjjok=newWindowjj(); } if(e.getSource()==itemchaoshi) { daywin=newday(); } if(e.getSource()==itemBorrowjs) { Borrowbookwin=newBorrowbook(); } if(e.getSource()==itemBorrowhs) { Returnbookwin=newReturnbook(); } }4.1.2管理日志此模塊經(jīng)過(guò)定義類WinTable繼承頂層容器JFrame,再添加普通容器JScrollPane、Jpanel,然后經(jīng)過(guò)BorderLayout布局創(chuàng)立界面,最后主要經(jīng)過(guò)數(shù)組利用while循環(huán)在連接好的數(shù)據(jù)庫(kù)中查找表Admirz中的內(nèi)容,從而實(shí)現(xiàn)了能夠清楚的顯示出書籍借閱與歸還信息的功能。管理日志界面如圖4-2所示。圖4-2管理日志主要程序代碼如下:WinTable(Strings) { super(s); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptione) { System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123"); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMAdmirz"); while(rs.next()) { k++; } } catch(SQLExceptione) { System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123"); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMAdmirz"); a=newObject[k][6]; while(rs.next()) { for(intj=0;j<6;j++) { if(j<5) a[i][j]=rs.getString(j+1); else { a[i][j]=rs.getDouble(j+1); i++; } } } con.close(); } catch(SQLExceptione) { System.out.println(""+e); } table=newJTable(a,name); Containercon=getContentPane(); getContentPane().add(newJScrollPane(table),BorderLayout.CENTER); setBounds(120,125,700,500); setVisible(true); validate(); addWindowListener(newDisposeListener()); }}4.1.3管理員添加功能實(shí)現(xiàn)功能介紹:該程序主要實(shí)現(xiàn)管理員的添加,以便于讓實(shí)行對(duì)圖書管理員的管理。按照標(biāo)簽提示輸入信息,然后點(diǎn)擊確定按鈕。首先判斷管理員名文本框中輸入的文本信息是否符合大于3個(gè)字符并小于10個(gè)字符的規(guī)則,如果不符合規(guī)則,則提示錯(cuò)誤,如果符合規(guī)則,再到Admi表中進(jìn)行查詢,如果相同則用提示框提示錯(cuò)誤。若無(wú)相同則可注冊(cè)。但還需要保證前后兩次的密碼相同,才能成功注冊(cè),管理員登陸窗口如圖4-3所示。圖4-3管理員添加成功界面主要程序代碼如下:publicvoidactionPerformed(ActionEventc) { Stringb=textUser.getText(); Stringd=textPassword1.getText(); Stringg=textPassword2.getText(); if(c.getSource()==buttonqk) { textUser.setText(null); textPassword1.setText(null); textPassword2.setText(null); } if(c.getSource()==buttonEnter||c.getSource()==textPassword2) { if(b.length()<3||b.length()>10) { JOptionPane.showMessageDialog(null,"用戶名應(yīng)在3~10個(gè)字符之間"); textUser.setText(null); } else { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptione) { System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123"); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMAdmiWHERE用戶名="+"'"+b+"'"); if(rs.next()) { Stringuser=rs.getString(1); if(b.equals(user)) { JOptionPane.showMessageDialog(null,"此管理員已被注冊(cè)","警告",JOptionPane.WARNING_MESSAGE); } } else { if(d.equals(g)) {sql.executeUpdate("INSERTINTOAdmiVALUES"+"("+"'"+b+"'"+","+"'"+d+"'"+")"); this.dispose(); JOptionPane.showMessageDialog(null,"管理員注冊(cè)成功"); } elseJOptionPane.showMessageDialog(null,"兩次輸入密碼不一致","警告",JOptionPane.ERROR_MESSAGE); } con.close(); } catch(SQLExceptione) { System.out.println(""+e); } }} }4.1.4管理員切換此模塊功能是退出當(dāng)前管理員界面,進(jìn)入管理員切換窗口,另一用戶能夠經(jīng)過(guò)輸入自己的用戶名和密碼直接進(jìn)入該系統(tǒng)。但此用戶名和密碼都必須與已經(jīng)連接好的數(shù)據(jù)庫(kù)中表Admi中的用戶名和密碼相吻合。管理員切換界面如圖4-4所示。圖4-4管理員切換主要程序代碼如下:publicvoidwindowClosing(WindowEvente) { e.getWindow().dispose(); }4.2讀者管理模塊功能實(shí)現(xiàn)4.2.1讀者添加功能介紹:添加新的讀者,使其能夠進(jìn)入圖書系統(tǒng)閱覽圖書,讀者添加如圖4-5所示。圖4-5讀者添加主要程序代碼如下:publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button1)//添加 { Stringch=text1.getText(); if(ch.length()!=5){ JOptionPane.showMessageDialog(null,"請(qǐng)輸入5位圖書證號(hào)!"); text1.setText(null); } else{ ……//連接數(shù)據(jù)庫(kù) Stringnumber,name,sex,dept,classes,record,insertStr; number=text1.getText(); name=text2.getText(); if(box1.getState()==true) { sex=box1.getLabel(); } else { sex=box2.getLabel(); } dept=text3.getText(); classes=text4.getText(); rs=sql.executeQuery("SELECT*FROMpersonWHERE圖書證號(hào)="+"'"+number+"'");if(rs.next()){JOptionPane.showMessageDialog(null,"此圖書證號(hào)已存在","警告",JOptionPane.WARNING_MESSAGE);text1.setText(null); } record="("+"'"+number+"'"+","+"'"+name+"'"+","+"'"+sex+"'"+","+"'"+dept+"'"+","+"'"+classes+"'"+")"; insertStr="INSERTINTOpersonVALUES"+record; sql.executeUpdate(insertStr); JOptionPane.showMessageDialog(null,"添加成功!"); con.close();}4.2.2讀者修改功能介紹:對(duì)讀者需要修改的資料進(jìn)行重定義,讀者信息修改如圖4-6所示。圖4-6讀者信息修改主要程序代碼如下:publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button1)//修改 { Stringch=text1.getText(); if(ch.length()!=5){ JOptionPane.showMessageDialog(null,"請(qǐng)輸入5位圖書證號(hào)!"); text1.setText(null); }else{ try { ……//連接數(shù)據(jù)庫(kù) Stringnumber,name,sex,dept,classes,newnum,record,updateStr; newnum=text5.getText(); number=text1.getText(); name=text2.getText(); if(box1.getState()==true) { sex=box1.getLabel(); } else { sex=box2.getLabel(); } dept=text3.getText(); classes=text4.getText(); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)="+"'"+newnum+"'"); if(rs.next()){ rs1=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)="+"'"+number+"'"); if(rs1.next()){ JOptionPane.showMessageDialog(null,"此圖書證號(hào)已存在","警告",JOptionPane.WARNING_MESSAGE); text1.setText(null); }else {updateStr="UPDATEpersonSET圖書證號(hào)="+"'"+number+"'"+","+"姓名="+"'"+name+"'"+","+"性別="+"'"+sex+"'"+","+"系別="+"'"+dept+"'"+","+"班級(jí)="+"'"+classes+"'"+"WHERE圖書證號(hào)="+"'"+newnum+"'"; sql.executeUpdate(updateStr); JOptionPane.showMessageDialog(null,"修改成功!"); } } else { JOptionPane.showMessageDialog(null,"查無(wú)此人!"); } ……//連接數(shù)據(jù)庫(kù) con.close(); }4.2.3讀者查詢功能介紹:能夠?qū)?shù)據(jù)庫(kù)中已有的讀者信息進(jìn)行查詢。讀者查詢?nèi)鐖D4-7。圖4-7讀者信息查詢主要程序代碼如下:publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button1||e.getSource()==text){//查詢 area.setText(null); if((str=="按圖書證號(hào)查詢"||str==null)&&text.getText()!=null) { booleanflag=true,f=true; Stringnum=text.getText(); ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)="+"'"+num+"'"); while(rs.next()) { f=false; Stringnumber=rs.getString("圖書證號(hào)"); Stringname=rs.getString("姓名"); Stringsex=rs.getString("性別"); Stringdept=rs.getString("系別"); Stringclasses=rs.getString("班級(jí)"); if(flag){ area.append("圖書證號(hào)為"+num+"的學(xué)生信息如下:"); flag=false; } area.append("\n姓名:"+name+"性別:"+sex+"系別:"+dept+"班級(jí):"+classes+"\n"); } if(f){area.append("查無(wú)此人!");} } catch(SQLExceptionc) { System.out.println(c); } }4.2.4讀者刪除功能介紹:刪除數(shù)據(jù)庫(kù)中已有信息。讀者刪除如圖4-8所示。圖4-8讀者刪除主要程序代碼如下:if(e.getSource()==button1){//刪除area.setText(null);if((str=="按圖書證號(hào)刪除"||str==null)&&text.getText()!=null){Stringnum=text.getText();try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptionc){System.out.println(""+c);}……//連接數(shù)據(jù)庫(kù)rs=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)="+"'"+num+"'");if(rs.next()){area.append("該信息已刪除!");}StringdelStr="DELETEFROMpersonWHERE圖書證號(hào)="+"'"+num+"'"; sql.executeQuery(delStr);con.close();}catch(SQLExceptionc){System.out.println(c);}}4.3書籍管理模塊功能實(shí)現(xiàn)4.3.1新書入庫(kù)實(shí)現(xiàn)功能介紹:此界面主要完成的功能是往數(shù)據(jù)庫(kù)book表中添加新書的記錄,在book表中可查看最新的記錄。在新書信息輸入的過(guò)程中,會(huì)出現(xiàn)一些異常處理,如某個(gè)字段的信息沒(méi)有填寫;新書信息輸入字段的過(guò)程中,輸入的字段類型與給定的字段類型與輸入不匹配(如:貨幣、日期);輸入的信息長(zhǎng)度超過(guò)給定的字段長(zhǎng)度等。如果填寫的內(nèi)容正確則能夠成功將新書添加入庫(kù),新書入庫(kù)窗口如圖4-9所示。圖4-9添加新書入庫(kù)界面主要程序代碼如下:publicvoidactionPerformed(ActionEventc){ if(c.getSource()==button2) { this.dispose();} if(c.getSource()==button1) { ……//連接數(shù)據(jù)庫(kù)rs=stm.executeQuery("select書號(hào)frombookwhere書號(hào)='"+textField1.getText()+"'");if(rs.next()){JOptionPane.showMessageDialog(null,"此書號(hào)已存在!","警告",JOptionPane.WARNING_MESSAGE); return; } floatm; Stringstr1,str2,str3,str4,str6,str7,str8,str9,str10; str1=textField1.getText(); …… str10="未借出"; m=Float.parseFloat(str9); str="("+"'"+str1+"','"+str3+"','"+str8+"','"+str6+"','"+str7+"','"+str10+"',"+m+")";Stringinsert="INSERTINTObook(書號(hào),書名,作者,出版社,入庫(kù)時(shí)間,是否借出,價(jià)格)VALUES"+str; stm.executeUpdate(insert); textField1.setText(""); …… JOptionPane.showMessageDialog(null,"增加信息成功!"); con.close(); }catch(Exceptione){JOptionPane.showMessageDialog(null,"請(qǐng)認(rèn)真檢查各項(xiàng)!然后重試.","異常警告",JOptionPane.WARNING_MESSAGE);} }4.3.2查詢功能實(shí)現(xiàn)功能介紹:本系統(tǒng)包含兩項(xiàng)一是檢索項(xiàng)令一個(gè)是檢索詞,在檢索項(xiàng)中用戶能夠根據(jù)自己的需求來(lái)選擇所要查詢的項(xiàng)目并在檢索詞中添寫自己所要查詢的內(nèi)容。本系統(tǒng)副帶四個(gè)按鈕:確定、取消、查看全庫(kù),該圖書館管理系統(tǒng)的查詢界面如圖4-10所示。圖4-10查詢系統(tǒng)界面在該系統(tǒng)中為了用戶使用方便還設(shè)有查看全庫(kù)一項(xiàng),用戶能夠經(jīng)過(guò)這一功能來(lái)查看全庫(kù)的圖書,所查詢的內(nèi)容將在下方的文本區(qū)中顯示,其界面4-11所示。圖4-11查看全庫(kù)信息使用檢索詞必須得滿足一定的查詢條件才能夠執(zhí)行,用戶必須得在檢索項(xiàng)中選擇查詢方式并添好檢索詞才可查詢否則系統(tǒng)會(huì)顯示未找到您要查找的內(nèi)容并給以提示,如圖4-12所示。圖4-12檢索項(xiàng)按書號(hào)查詢主要程序代碼如下:publicvoiditemStateChanged(ItemEvente) { area.setText(null); Stringname=choice1.getSelectedItem(); area.append("請(qǐng)您在檢索項(xiàng)中輸入您要查找的內(nèi)容:"); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button2)//取消鍵 {text1.setText(null);} elseif(e.getSource()==button3)//返回鍵 {this.dispose();}elseif(e.getSource()==button4)//查看全庫(kù) {Connectioncon; Statementsql;ResultSetrs; try//建立數(shù)據(jù)源 {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundExceptionc) {System.out.println(""+c);}try { con=DriverManager.getConnection("jdbc:odbc:sun","",""); sql=con.createStatement(); rs=sql.executeQuery("select*frombook"); while(rs.next()) { Stringbookname=rs.getString("書名"); Stringauther=rs.getString("作者"); Stringchubanshe=rs.getString("出版社"); Stringbookno=rs.getString("書號(hào)"); Stringdata=rs.getString("入庫(kù)時(shí)間"); Stringyesorno=rs.getString("是否借出"); area.append("\n書號(hào):"+bookno); area.append("書名:"+bookname); area.append("作者:"+auther); area.append("出版社:"+chubanshe); area.append("\n入庫(kù)時(shí)間:"+data); area.append("是否借出:"+yesorno); } con.close(); } catch(SQLExceptionc) {System.out.println(""+c);} } 4.4書籍借閱與歸還功能實(shí)現(xiàn)4.4.1借閱書籍功能實(shí)現(xiàn)輸入圖書證號(hào)“0001”后點(diǎn)擊查看按鈕,可顯示該讀者信息,若輸入圖書證號(hào)錯(cuò)誤,點(diǎn)擊查看按鈕則會(huì)彈出借書證錯(cuò)誤對(duì)話框,如圖4-13所示。輸入圖書編號(hào)“0000003”按回車鍵,可顯示該圖書信息,若輸入圖書編號(hào)錯(cuò)誤,按回車鍵則會(huì)彈出圖書編號(hào)錯(cuò)誤對(duì)話框,如圖4-14所示。點(diǎn)擊借閱按鈕則會(huì)彈出圖書借閱成功對(duì)話框。借閱書籍功能的具體實(shí)現(xiàn)如圖4-15所示。圖4-13借書證錯(cuò)誤圖4-14圖書編號(hào)錯(cuò)誤圖4-15借閱書籍主要程序代碼如下:publicvoidactionPerformed(ActionEvente) { if(e.getSource()==tj) { if(!tscard.getText().equals(null)&&!tsid.getText().equals(null)) { Stringstr1,str2; str1=tsid.getText(); str2=tscard.getText(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptionc) { System.out.println(""+c); } ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)="+"'"+str2+"'"); Stringls1=null,ls2=null,ls3=null; intis1=0; if(rs.next()) { ls2=str2; } con.close(); ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECT*FROMbookwhere書號(hào)="+"'"+str1+"'"); if(rs.next()) { if(rs.getString("是否借出").equals("未借出")) ls1=str1; ls3=rs.getString("書名"); } con.close(); ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECTcount(書號(hào))FROMborrowbookwhere圖書證號(hào)="+"'"+str1+"'"); rs.next(); is1=rs.getInt(1); con.close(); ……//連接數(shù)據(jù)庫(kù) if(ls1==str1&&ls2==str2&&is1<5) {Dateda=newDate(); inty=da.getYear()+1900; intm=da.getMonth()+1; intd=da.getDate(); Stringjyrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d); ……//計(jì)算借閱時(shí)間 Stringyhrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d); Stringinsertstr="INSERTINTOborrowbookVALUES('"+ls2+"','"+ls1+"','"+jyrq+"','"+yhrq+"')"; Stringupdatestr="UPDATEbookSET是否借出='借出'WHERE書號(hào)="+"'"+str1+"'"; Stringinsertstr2="INSERTINTOAdmirzVALUES('"+ls1+"','"+ls3+"','"+ls2+"','借書','"+jyrq+"',0)"; sql.executeUpdate(insertstr); sql.executeUpdate(insertstr2); sql.executeUpdate(updatestr);JOptionPane.showMessageDialog(this,"借閱成功請(qǐng)?jiān)?+yhrq+"之前退還,否則將支付滯納金","圖書借閱成功",JOptionPane.WARNING_MESSAGE);tsid.setText(null); tscard.setText(null); } 4.4.2歸還書籍功能實(shí)現(xiàn)輸入圖書編號(hào)“0000003”點(diǎn)擊回車鍵,則該界面右側(cè)會(huì)顯示借書者的信息,若圖書編號(hào)錯(cuò)誤則會(huì)彈出圖書編號(hào)錯(cuò)告對(duì)話框,如圖4-16所示。點(diǎn)擊還書按鈕會(huì)彈出歸還成功對(duì)話框。歸還書籍功能的具體實(shí)現(xiàn),如圖4-17所示。4-16圖書編號(hào)錯(cuò)誤4-17歸還書籍主要程序代碼如下:publicvoidactionPerformed(ActionEvente){if(e.getSource()==tj){ Stringnum=tsid.getText(); intjc; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptionc) { System.out.println(""+c); } try { Stringtsz=null; ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECT*FROMpersonwhere圖書證號(hào)=(SELECT圖書證號(hào)FROMborrowbookwhere書號(hào)="+"'"+num+"')"); if(rs.next()) { tsz=rs.getString("圖書證號(hào)"); } con.close(); ……//連接數(shù)據(jù)庫(kù) rs=sql.executeQuery("SELECT*FROMvbbookwhere書號(hào)="+"'"+num+"'"); Dateda=newDate(); inty=da.getYear()+1900; intm=da.getMonth()+1; intd=da.getDate(); Stringczrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d); floatmoney; Stringsm=null; intday=0; if(rs.next()) { sm=rs.getString("書名"); Stringyhrq=rs.getString("應(yīng)還日期"); y=(y-Integer.parseInt(yhrq.substring(0,4))); intmm=Integer.parseInt(yhrq.substring(5,7)); day=y; d=Integer.parseInt(yhrq.substring(8,10))-d; if(y!=0) mm=mm+12; while(m>mm) {…//計(jì)算還書時(shí)間 } day=day+d; if(day>0) { JOptionPane.showMessageDialog(this,"您比應(yīng)還日期晚了"+String.valueOf(day)+"天歸還,請(qǐng)交付相應(yīng)滯納金","延期還書",JOptionPane.WARNING_MESSAGE); money=day/10; tsid.setText(null); }}4.5借閱超時(shí)功能實(shí)現(xiàn)數(shù)據(jù)庫(kù)borrowbook(借書表)表中的“應(yīng)還日期”字段中的時(shí)間與當(dāng)前時(shí)間相比較,若比當(dāng)前時(shí)間早則說(shuō)明該書借閱超時(shí),那么該條記錄將在此被顯示出來(lái)。借閱超時(shí)功能具體實(shí)現(xiàn)如圖4-18所示。圖4-18借閱超時(shí)主要程序代碼如下:……//連接數(shù)據(jù)庫(kù) Datenowtime=newDate();//當(dāng)前日期 SimpleDateFormatmatter1=newSimpleDateFormat("yyyy-MM-dd"); Stringstime=matter1.format(nowtime); Stringdyear=stime.substring(0,4); year2=Integer.parseInt(dyear);//年 Stringdmoon=stime.substring(5,7); moon2=Integer.parseInt(dmoon);//月 Stringdday=stime.substring(8,10); day2=Integer.parseInt(dday);//日 rs=sql.executeQuery("SELECT*FROMborrowbook"); while(rs.next()){x=x+1;} rs.beforeFirst(); a=newObject[x][4]; while(rs.next

溫馨提示

  • 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)論