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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告</b></p><p>  -------圖書(shū)館管理信息系統(tǒng)</p><p><b>  目 錄</b></p><p>  一、系統(tǒng)開(kāi)發(fā)平臺(tái)1</p><p><b>  二、數(shù)據(jù)庫(kù)規(guī)劃2</b></p>&

2、lt;p>  2.1 任務(wù)陳述2</p><p>  2.2 任務(wù)目標(biāo)2</p><p><b>  三、系統(tǒng)定義2</b></p><p>  3.1 系統(tǒng)邊界2</p><p>  3.2 用戶(hù)視圖2</p><p><b>  四、需求分析2</b>&

3、lt;/p><p>  4.1 用戶(hù)需求說(shuō)明2</p><p>  4.1.1 數(shù)據(jù)需求2</p><p>  4.1.2 事務(wù)需求2</p><p>  4.2 系統(tǒng)需求說(shuō)明2</p><p>  五、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)2</p><p><b>  5.1 ER圖2</b

4、></p><p>  5.2 數(shù)據(jù)字典2</p><p><b>  5.3 關(guān)系表2</b></p><p>  六、數(shù)據(jù)庫(kù)物理設(shè)計(jì)3</p><p><b>  6.1 索引3</b></p><p><b>  6.2 視圖3</b&g

5、t;</p><p>  6.3 安全機(jī)制3</p><p><b>  6.4 其他3</b></p><p>  七、應(yīng)用程序設(shè)計(jì)3</p><p>  7.1 功能模塊3</p><p>  7.2 界面設(shè)計(jì)3</p><p>  7.3 事務(wù)設(shè)計(jì)3<

6、;/p><p><b>  八、測(cè)試和運(yùn)行3</b></p><p><b>  九、總結(jié)4</b></p><p><b>  附. 參考文獻(xiàn)4</b></p><p><b>  一、系統(tǒng)開(kāi)發(fā)平臺(tái)</b></p><p>&l

7、t;b>  題目:圖書(shū)管理系統(tǒng)</b></p><p>  開(kāi)發(fā)工具:EasyEclipse Desktop Java 1.3.1.1</p><p>  數(shù)據(jù)庫(kù):MySQL Server 5.1</p><p>  數(shù)據(jù)庫(kù)管理工具:SQLyog</p><p><b>  操作系統(tǒng):win7</b>&

8、lt;/p><p><b>  二、數(shù)據(jù)庫(kù)規(guī)劃</b></p><p><b>  2.1 任務(wù)陳述</b></p><p>  圖書(shū)館在正常運(yùn)營(yíng)中面對(duì)大量書(shū)籍、讀者信息以及兩者間相互聯(lián)系產(chǎn)生的借書(shū)信息、還書(shū)信息。單純靠管理員人工記錄不僅耗時(shí)耗力而且信息不完整,易出錯(cuò)。因此需要對(duì)書(shū)籍資源、讀者資源、借書(shū)信息、還書(shū)信息進(jìn)行管理,

9、及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更 ,收集并保存各個(gè)環(huán)節(jié)中產(chǎn)生的信息,然后以適當(dāng)?shù)男问较褡x者和管理員顯示,以保證圖書(shū)管理的高效。</p><p><b>  2.2 任務(wù)目標(biāo)</b></p><p><b>  三、系統(tǒng)定義</b></p><p><b>  3.1 系統(tǒng)邊界</b></p>

10、<p>  本系統(tǒng)用于圖書(shū)管理員對(duì)書(shū)籍信息,讀者信息,及兩者間聯(lián)系產(chǎn)生的借閱歸還信息進(jìn)行管理。用于讀者對(duì)自己的個(gè)人信息,借閱信息的管理。所以,系統(tǒng)的邊界在書(shū)籍信息,讀者信息,和管理員信息的輸入。</p><p><b>  書(shū)籍信息</b></p><p>  isbn:同一種書(shū)籍的類(lèi)編號(hào),相同isbn的書(shū)籍有0到n本(n大于0)。</p>

11、<p>  id:唯一指明具體一本書(shū)的編號(hào),用于定位是哪一本書(shū)。</p><p><b>  書(shū)名:書(shū)的全名</b></p><p>  作者:書(shū)籍的作者姓名</p><p>  入庫(kù)日期:書(shū)籍進(jìn)入圖書(shū)館的時(shí)間</p><p>  入庫(kù)數(shù):進(jìn)入圖書(shū)館的同一isbn的書(shū)籍的數(shù)目。用于自動(dòng)生成書(shū)籍id</p&

12、gt;<p>  簡(jiǎn)介:簡(jiǎn)要介紹書(shū)籍的信息,以方便讀者查看,檢索。</p><p><b>  讀者信息:</b></p><p>  id:唯一指明具體一個(gè)讀者的編號(hào),用于定位是哪一個(gè)讀者</p><p>  密碼:用于匹配確認(rèn)輸入的id是否是本館的讀者</p><p><b>  姓名:讀者的

13、姓名</b></p><p><b>  性別:讀者的性別</b></p><p><b>  年齡:讀者的年齡</b></p><p>  借書(shū)數(shù):讀者已經(jīng)借的書(shū)籍?dāng)?shù)量,達(dá)到一定數(shù)量后不允許借書(shū)</p><p><b>  管理員信息</b></p>

14、<p>  id:唯一指明具體一個(gè)管理員的編號(hào),用于定位是哪一個(gè)管理員</p><p>  密碼:用于匹配確認(rèn)輸入的id是本館的管理員</p><p><b>  姓名:管理員姓名</b></p><p><b>  性別:管理員性別</b></p><p><b>  年齡:

15、管理員年齡</b></p><p><b>  3.2 用戶(hù)視圖 </b></p><p>  用戶(hù)視圖是從系統(tǒng)用戶(hù)的角度分析系統(tǒng)所要實(shí)現(xiàn)的功能,是系統(tǒng)數(shù)據(jù)在用戶(hù)層面上的映射。本系統(tǒng)的用戶(hù)有管理員和讀者兩部分。根據(jù)我從實(shí)際經(jīng)驗(yàn)以及從網(wǎng)上查找的資料分析以后,對(duì)用戶(hù)角度的視圖進(jìn)行如下定義。</p><p>  管理員視圖:管理員具有系統(tǒng)

16、的最高權(quán)限,可以對(duì)數(shù)據(jù)庫(kù)內(nèi)所有信息進(jìn)行增刪改查操作。負(fù)責(zé)對(duì)圖書(shū),讀者及管理員自己個(gè)人信息的管理。他的視圖如下:</p><p>  1、圖書(shū)管理:包括圖書(shū)的錄入、查詢(xún)、修改和刪除。</p><p>  2、管理員信息管理:添加、查詢(xún)、修改,刪除所有管理員的信息。</p><p>  3、讀者管理:包括讀者信息的添加、查詢(xún)、修改、刪除等。</p><

17、;p>  4、系統(tǒng)數(shù)據(jù)處理:數(shù)據(jù)查詢(xún),包括查看當(dāng)前在館書(shū)籍信息、當(dāng)前所有違章</p><p>  罰款信息、所有被預(yù)約圖書(shū)信息等。</p><p>  5、管理員的個(gè)人功能:包括查看個(gè)人信息、修改密碼、重新登陸、退出系</p><p><b>  統(tǒng)等。</b></p><p>  6、圖書(shū)流通中的借書(shū)操作:借書(shū)時(shí)

18、需要輸入用戶(hù)號(hào)和圖書(shū) ISBN。如果該圖</p><p>  書(shū)可借,則正常借書(shū),提示“借閱成功”;如果該書(shū)不可借,則彈出窗口提示。</p><p>  7、圖書(shū)流通中的還書(shū)操作:還書(shū)時(shí)需要輸入用戶(hù)號(hào)和圖書(shū) ISBN。若正常還</p><p>  書(shū),點(diǎn)擊確定即可;若讀者違章,可填寫(xiě)違章記錄,并處以罰款。</p><p><b> 

19、 讀者視圖:</b></p><p>  1、圖書(shū)檢索功能(包括簡(jiǎn)單檢索和高級(jí)檢索):可以檢索所有書(shū)籍信息和特定輸入要求的書(shū)籍,點(diǎn)擊搜索到的信息后可以顯示該書(shū)的詳細(xì)信息。然后進(jìn)行預(yù)訂操作。被預(yù)訂和借閱的書(shū)籍顯示不可借閱。</p><p>  2、查看個(gè)人信息、修改密碼等個(gè)人信息。</p><p>  3、查看個(gè)人借閱歷史。</p><

20、p>  4、續(xù)借已借圖書(shū):在查看個(gè)人借閱歷史模塊里實(shí)現(xiàn),當(dāng)前已借未還未續(xù)借</p><p>  的每本書(shū)后面都有一個(gè)續(xù)借按鈕,選中后點(diǎn)擊可以實(shí)現(xiàn)該書(shū)的續(xù)借。</p><p>  5、圖書(shū)預(yù)約:可查看自己的預(yù)約信息及處理情況,也可以取消已有的預(yù)約,表示不再預(yù)約本書(shū)。</p><p>  6、查看違章欠款記錄。</p><p><b&

21、gt;  四、需求分析</b></p><p>  4.1 用戶(hù)需求說(shuō)明</p><p>  4.1.1 數(shù)據(jù)需求</p><p>  系統(tǒng)可以瀏覽、操作、管理各個(gè)分館的圖書(shū)信息。對(duì)應(yīng)書(shū)籍實(shí)體的圖書(shū)信息包括圖書(shū)的編號(hào),ISBN ,名稱(chēng),作者,書(shū)名,內(nèi)容簡(jiǎn)介,入庫(kù)時(shí),圖書(shū)館購(gòu)進(jìn)圖書(shū)總數(shù),書(shū)籍當(dāng)前在庫(kù)數(shù)目等。除了如入庫(kù)時(shí)間等一些從服務(wù)器自動(dòng)獲取的信息外,

22、其他的信息都要根據(jù)管理員和讀者的操作來(lái)修改數(shù)據(jù)庫(kù),以便及時(shí)修改圖書(shū)的信息。</p><p>  此外管理員還需要維護(hù)圖書(shū)館管理員信息、讀者信息、不良記錄信息。</p><p>  圖書(shū)館管理員信息和讀者信息包括:用戶(hù)編號(hào)、用戶(hù)密碼、用戶(hù)名字、用戶(hù)年齡、用戶(hù)性別。其中讀者可以修改除編號(hào)外的其他信息。管理員不能添加讀者,讀者只能自己注冊(cè)。讀者只有在注冊(cè)后才可進(jìn)行借書(shū)、還書(shū)、留言等一系列操作。&

23、lt;/p><p>  借書(shū)信息有管理員錄入,讀者只能查看自己的借書(shū)信息。管理員可以查看所有讀者的借書(shū)信息。借書(shū)信息包括讀者的id,書(shū)籍的id,借閱日期,和書(shū)籍的isbn。其中讀者id,書(shū)籍id,書(shū)籍isbn有管理員輸入,日期由系統(tǒng)自動(dòng)生成。</p><p>  還書(shū)信息由管理員錄入。管理員可以查看所有還書(shū)信息。還書(shū)信息包括讀者id,書(shū)籍id,書(shū)籍isbn,還書(shū)日期,違章信息。其中讀者id,書(shū)

24、籍id,由管理員輸入且不能為空,日期由系統(tǒng)自動(dòng)生成。違章信息由管理員輸入,可以為空,為空表示讀者借書(shū)期間沒(méi)有違章,則讀者還書(shū)后不會(huì)再看到該書(shū)的違章信息。</p><p>  借書(shū)信息包括借書(shū)記錄號(hào)、用戶(hù)號(hào)書(shū)籍編號(hào)、借閱日期、是否續(xù)借、是否歸還等信息。對(duì)于讀者的不良記錄,系統(tǒng)將予以存儲(chǔ)。存儲(chǔ)的信息有不良記錄編號(hào)、借閱編號(hào)、不良記錄描述。對(duì)應(yīng)于用戶(hù)請(qǐng)求記錄實(shí)體的請(qǐng)求信息包括請(qǐng)求信息編號(hào)、用戶(hù)編號(hào)、請(qǐng)求描述、請(qǐng)求發(fā)出時(shí)

25、間、該請(qǐng)求是否實(shí)現(xiàn)等內(nèi)容。</p><p>  4.1.2 事務(wù)需求</p><p><b>  1數(shù)據(jù)錄入</b></p><p>  讀者注冊(cè)時(shí)錄入自己的詳細(xì)情況;</p><p>  錄入新進(jìn)圖書(shū)的各項(xiàng)信息;</p><p>  管理員錄入書(shū)籍借閱信息</p><p>

26、;  管理員錄入用戶(hù)的不良記錄</p><p>  讀者預(yù)約時(shí)添加預(yù)約信息</p><p><b>  2數(shù)據(jù)更新/刪除</b></p><p>  更新/刪除管理員的個(gè)人信息;</p><p>  更新/刪除用戶(hù)的個(gè)人信息;</p><p>  更新/刪除圖書(shū)的基本信息;</p>

27、<p>  更新/刪除圖書(shū)的借閱信息;</p><p>  更新/刪除圖書(shū)的預(yù)約信息;</p><p>  更新/刪除違章信息;</p><p><b>  3數(shù)據(jù)查詢(xún)</b></p><p>  查詢(xún)用戶(hù)的個(gè)人信息;</p><p>  查詢(xún)管理員的個(gè)人信息;</p>&

28、lt;p>  查詢(xún)圖書(shū)的基本信息;</p><p>  查詢(xún)圖書(shū)的完整信息;</p><p>  查詢(xún)圖書(shū)的借閱信息;</p><p>  查詢(xún)用戶(hù)的預(yù)約信息;</p><p>  查詢(xún)用戶(hù)的不良記錄信息;</p><p><b>  4.1.3系統(tǒng)用例</b></p><

29、;p><b>  參與者</b></p><p><b>  系統(tǒng)用例:</b></p><p><b>  用例總圖:</b></p><p>  4.2 系統(tǒng)需求說(shuō)明 </p><p>  4.2.1 性能: </p><p>  單個(gè)記錄查詢(xún)

30、時(shí)間少于 2 秒</p><p>  多個(gè)記錄查詢(xún)時(shí)間少于 3 秒</p><p>  更新/保存記錄時(shí)間少于 2 秒</p><p><b>  4.2.2安全性:</b></p><p><b>  輸入錯(cuò)誤要有提示</b></p><p>  刪除信息是要保證詢(xún)問(wèn)是否刪

31、除相關(guān)信息</p><p><b>  4.2.3運(yùn)行需求</b></p><p>  4.2.5.1 用戶(hù)界面</p><p>  用戶(hù)界面要大方,易于操作</p><p>  4.2.5.2 接口</p><p>  運(yùn)行于Windows 操作系統(tǒng)之上</p><p>

32、  4.2.53 故障處理</p><p>  正常使用時(shí)不應(yīng)出錯(cuò),</p><p>  用戶(hù)輸入錯(cuò)誤需要給出提示和必要的指導(dǎo)</p><p>  保證數(shù)據(jù)庫(kù)的事務(wù)性,在遇到不可恢復(fù)的錯(cuò)誤時(shí)要回滾之前的操作</p><p><b>  五、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)</b></p><p><b>

33、  5.1 ER圖</b></p><p><b>  實(shí)體1書(shū)籍</b></p><p>  實(shí)體2用戶(hù)(讀者和管理員)</p><p><b>  聯(lián)系1歸還</b></p><p><b>  聯(lián)系2預(yù)約</b></p><p><

34、;b>  聯(lián)系3借閱</b></p><p><b>  5.2 數(shù)據(jù)字典</b></p><p>  根據(jù)以上的E-R圖進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),用表格的形式顯示表的名稱(chēng),數(shù)據(jù)類(lèi)型和說(shuō)明</p><p><b>  實(shí)體1書(shū)籍</b></p><p><b>  實(shí)體2讀者

35、</b></p><p><b>  聯(lián)系1歸還</b></p><p><b>  聯(lián)系2預(yù)約</b></p><p><b>  聯(lián)系3借閱</b></p><p><b>  5.3 關(guān)系表</b></p><p>

36、; ?。?)book(book_id,book_isbn,book_name,book_author, book_introduction , book_date ,book_amount,book_in)</p><p>  主鍵:book_id</p><p>  (2)reader(reader_id,reader _password,reader _name, reader _ag

37、e,reader _sex,pre_num,borrow_num)</p><p>  主鍵:user_id</p><p> ?。?)admin(admin_name,admin_age,admin_sex,admin_id,admin_password)</p><p>  主鍵:admin_id</p><p>  (4)borrow(

38、reader_id , book_id , bor_date , book_isbn)</p><p>  主鍵:book_id,reader_id</p><p>  (5)pre(reader_id,book_id,book_isbn,book_name,pre_date)</p><p>  主鍵:reader_id,book_id</p>&l

39、t;p>  (6)ret(reader_id,book_id,ret_date,violate_info)</p><p>  主鍵:reader_id,book_id</p><p><b>  六、數(shù)據(jù)庫(kù)物理設(shè)計(jì)</b></p><p><b>  6.1 索引</b></p><p> 

40、 由于系統(tǒng)所使用的數(shù)據(jù)不是很多,在已有的測(cè)試數(shù)據(jù)下對(duì)書(shū)籍,讀者信息的搜索排序的性能能夠滿足系統(tǒng)的要求。所以雖然建立索引可以改善系統(tǒng)的性能,但是在這個(gè)系統(tǒng)條件下建立索引對(duì)性能的改進(jìn)不是很大。所以本系統(tǒng)未建立索引。</p><p><b>  6.2 安全機(jī)制</b></p><p><b>  系統(tǒng)安全</b></p><p&g

41、t;  登錄的只能是本館的讀者或者管理員,且登錄需要有登錄密碼用于確認(rèn),如果不是本館用戶(hù)將無(wú)法進(jìn)入操作界面。</p><p>  有些操作需要用戶(hù)選擇才能進(jìn)行,如果用戶(hù)輸入有誤不能進(jìn)行操作且要提示用戶(hù)。</p><p><b>  數(shù)據(jù)安全</b></p><p>  在操作過(guò)程中如果出錯(cuò)則已經(jīng)進(jìn)行的數(shù)據(jù)庫(kù)操作需要回滾,保證回到錯(cuò)誤操作之前的狀

42、態(tài)。</p><p><b>  七、應(yīng)用程序設(shè)計(jì)</b></p><p><b>  7.1 功能模塊</b></p><p><b>  讀者部分:</b></p><p>  用戶(hù)注冊(cè)登錄:連接數(shù)據(jù)庫(kù),判斷用戶(hù)信息,向數(shù)據(jù)庫(kù)添加新的用戶(hù) </p><p

43、>  ?主界面:提供登錄后進(jìn)入各個(gè)功能模塊的入口</p><p>  ?個(gè)人信息:用于顯示服務(wù)器對(duì)用戶(hù)的提示及相關(guān)個(gè)人信息</p><p>  借閱信息:顯示讀者的借閱信息</p><p>  ?搜索模塊:用于顯示符合用戶(hù)需求的書(shū)籍信息,對(duì)讀者選中的書(shū)籍進(jìn)行預(yù)訂</p><p>  ?違章信息:在顯示讀者的違章信息</p&

44、gt;<p>  ?預(yù)定模塊:顯示讀者的預(yù)定信息</p><p><b>  管理員部分:</b></p><p>  用戶(hù)注冊(cè)登錄:連接數(shù)據(jù)庫(kù),判斷用戶(hù)信息,向數(shù)據(jù)庫(kù)添加新的用戶(hù) </p><p>  ?主界面:提供登錄后進(jìn)入各個(gè)功能模塊的入口</p><p>  ?用戶(hù)管理:用于查找顯示,刪除,修

45、改讀者和管理員信息</p><p>  借閱管理:顯示所有讀者的借閱信息,用于進(jìn)行借書(shū)還書(shū)的操作界面</p><p>  ?書(shū)籍管理:用于顯示館內(nèi)所有書(shū)籍信息,并可進(jìn)行搜索,按條件刪除操作</p><p>  ?違章管理:顯示/搜索所有讀者的違章信息,并能進(jìn)行刪除修改等操作</p><p><b>  7.2 界面設(shè)計(jì)</

46、b></p><p>  登錄界面:可以選擇讀者還是管理員登錄,如果登錄用戶(hù)不存在或者密碼錯(cuò)誤會(huì)彈出窗口提示用戶(hù)重新輸入</p><p>  可以點(diǎn)擊注冊(cè)按鈕注冊(cè)新的讀者,但是不能注冊(cè)新管理員。</p><p><b>  讀者個(gè)人信息</b></p><p>  讀者登錄后的界面,顯示讀者的所有個(gè)人信息,個(gè)人信息

47、可以修改</p><p>  讀者搜索:根據(jù)讀者輸入和選擇的搜索條件把符合條件的書(shū)籍在書(shū)籍信息內(nèi)顯示出來(lái),然后點(diǎn)擊具體一本書(shū)可以顯示書(shū)籍的詳細(xì)信息,并決定是否要預(yù)定。預(yù)定成功和失敗都要提示用戶(hù)</p><p>  管理員書(shū)籍管理:管理員登陸后這里顯示所有書(shū)籍的詳細(xì)信息,可以在書(shū)名和isbn后輸入搜索條件進(jìn)行輸入,若沒(méi)有輸入條件則默認(rèn)搜索所有書(shū)籍信息.選中書(shū)籍后可以刪除,刪除可以根據(jù)選擇刪除

48、</p><p>  相同isbn,相同作者或相同書(shū)名等的書(shū)籍</p><p>  管理員標(biāo)題欄工具欄和菜單欄:</p><p>  在標(biāo)題欄根據(jù)管理員輸入id顯示管理員名字和登陸時(shí)間,可以在工具欄選擇重新登陸或退出,在菜單欄進(jìn)行各個(gè)操作界面的替換.</p><p>  管理員借書(shū)和還書(shū)操作界面:</p><p>  

49、管理員在這里輸入借書(shū)和還書(shū)的信息,借書(shū)還書(shū)失敗會(huì)給出提示.</p><p><b>  7.3 事務(wù)設(shè)計(jì)</b></p><p>  事物設(shè)計(jì)的函數(shù)代碼和sql語(yǔ)句</p><p>  7.3.1管理員刪除書(shū)籍:</p><p>  if(getJCheckBox().isSelected()){</p>

50、<p>  sql="delete from book where book_isbn='"+isbn+"'";</p><p>  bookdb.Chuli(sql);</p><p><b>  }</b></p><p>  if(getJCheckBox1().isSel

51、ected()){</p><p>  sql="delete from book where book_author='"+author+"'";</p><p>  bookdb.Chuli(sql);</p><p><b>  }</b></p><p> 

52、 if(getJCheckBox2().isSelected()){</p><p>  sql="delete from book where book_press='"+press+"'";</p><p>  bookdb.Chuli(sql);</p><p><b>  }</b>

53、;</p><p>  if(getJCheckBox3().isSelected()){</p><p>  sql="delete from book where book_name='"+bookname+"'";</p><p>  bookdb.Chuli(sql);</p><p

54、><b>  }</b></p><p>  說(shuō)明:設(shè)置四個(gè)JCheckBox,根據(jù)管理員的選擇來(lái)生成sql語(yǔ)句,然后將sql語(yǔ)句作為一個(gè)數(shù)據(jù)庫(kù)處理類(lèi)BookDB的方法Chuli()的參數(shù)傳遞過(guò)去進(jìn)行數(shù)據(jù)庫(kù)操作。</p><p>  7.3.2讀者的書(shū)籍搜索代碼和sql語(yǔ)句</p><p><b>  /*</b>&

55、lt;/p><p>  * 這個(gè)方法用于根據(jù)用戶(hù)的輸入獲得查詢(xún)語(yǔ)句</p><p><b>  */</b></p><p>  public String getSql(){</p><p>  String sql="";</p><p>  String input=getJ

56、TextField().getText();</p><p>  String searchtype;</p><p>  String resulttype = null;</p><p>  String ordertype = null;</p><p>  int index1=getJComboBox().getSelectedIn

57、dex();</p><p>  int index2=getJComboBox1().getSelectedIndex();</p><p>  if(getJRadioButton().isSelected()){</p><p>  ordertype="asc";</p><p><b>  }</

58、b></p><p>  if(getJRadioButton1().isSelected()){</p><p>  ordertype="desc";</p><p><b>  }</b></p><p>  if(index2==0){</p><p>  //根

59、據(jù)isbn排序</p><p>  resulttype="book_isbn";</p><p><b>  }</b></p><p>  if(index2==1){</p><p>  resulttype="book_date";</p><p>

60、<b>  }</b></p><p>  if(index2==2){</p><p>  resulttype="book_in";</p><p><b>  }</b></p><p>  System.out.println("輸入框的輸入為"+in

61、put);</p><p>  if(index1==0){</p><p>  //根據(jù)isbn來(lái)查找</p><p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable from book w

62、here book_isbn='"+input+"' order by "</p><p>  +resulttype+" "+ordertype;</p><p><b>  }</b></p><p>  if(index1==1){</p><p>

63、<b>  //根據(jù)書(shū)名來(lái)查找</b></p><p>  if(getJRadioButton3().isSelected()){</p><p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subabl

64、e from book where book_name like '%"+input+"%' order by "+</p><p>  resulttype+" "+ordertype;</p><p>  System.out.println("根據(jù)書(shū)名精確:"+sql);</p>&l

65、t;p><b>  }</b></p><p>  if(getJRadioButton2().isSelected()){</p><p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable

66、 from book where book_name='"+input+"' order by "</p><p>  +resulttype+" "+ordertype;</p><p>  System.out.println("根據(jù)書(shū)名模糊:"+sql);</p><p>&

67、lt;b>  }</b></p><p><b>  }</b></p><p>  if(index1==2){</p><p><b>  //根據(jù)作者來(lái)查找</b></p><p>  if(getJRadioButton3().isSelected()){</p>

68、;<p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable from book where book_author like '%"+input+"%' order by "</p><

69、p>  +resulttype+" "+ordertype;</p><p>  System.out.println("根據(jù)作者模糊:"+sql);</p><p><b>  }</b></p><p>  if(getJRadioButton2().isSelected()){</p&g

70、t;<p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable from book where book_author='"+input+"' order by "</p><p> 

71、 +resulttype+" "+ordertype;</p><p>  System.out.println("根據(jù)作者精確:"+sql);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(inde

72、x1==3){</p><p>  if(getJRadioButton3().isSelected()){</p><p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable from book where book_

73、press like '%"+input+"%' order by "</p><p>  +resulttype+" "+ordertype;</p><p><b>  }</b></p><p>  if(getJRadioButton2().isSelected()){&

74、lt;/p><p>  sql="select book_id,book_name,book_author,book_introduction" +</p><p>  ",subable from book where book_press ='"+input+"' order by "</p><

75、;p>  +resulttype+" "+ordertype;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return sql;</p><p><b>  }</b></p>&

76、lt;p><b>  /*</b></p><p>  * 用用戶(hù)數(shù)據(jù)庫(kù)類(lèi)來(lái)獲得書(shū)籍信息,輸入為從頁(yè)面得到的查詢(xún)語(yǔ)句,輸出為在列表中顯示的書(shū)籍信息</p><p><b>  */</b></p><p>  public Vector executeSql(String sql){</p><p

77、>  Vector<Vector<String>> info=new Vector();</p><p>  Vector<String> ainfo=new Vector();</p><p><b>  try {</b></p><p>  statement=connection.createS

78、tatement();</p><p>  resultset=statement.executeQuery(sql);</p><p>  while(resultset.next()){</p><p>  ainfo.add(resultset.getString(1));</p><p>  ainfo.add(resultset.g

79、etString(2));</p><p>  ainfo.add(resultset.getString(3));</p><p>  ainfo.add(resultset.getString(4));</p><p>  ainfo.add(resultset.getString(5));</p><p>  info.add(ainf

80、o);</p><p>  ainfo=new Vector();</p><p><b>  }</b></p><p>  說(shuō)明:在讀者界面類(lèi)里面用getSql()方法獲得根據(jù)讀者選擇的搜索條件產(chǎn)生的搜索語(yǔ)句,然后將產(chǎn)生的搜索語(yǔ)句作為數(shù)據(jù)庫(kù)操作類(lèi)ReaderDB中的executeSql()方法的參數(shù)來(lái)獲得符合搜索條件的結(jié)果保存在一個(gè)Vect

81、or類(lèi)型變量中,返回給讀者的搜索界面。</p><p>  7.3.3管理員還書(shū)操作:</p><p>  public void returnBook(String reader,String book,Date date,String info){</p><p>  if(info.equals("")){</p><p

82、>  info="(NULL)";</p><p><b>  }</b></p><p>  System.out.println("還書(shū)時(shí)的違規(guī)信息"+info);</p><p>  sql="insert into ret(reader_id,book_id,ret_date,vi

83、olate_info) values('"+reader+"','"</p><p>  +book+"','"+date+"','"+info+"')";</p><p>  sql1="update book set boo

84、k_in=book_in+1 where book_isbn='"+book+"'";</p><p>  String sql2="delete from borrow where reader_id='"+reader+"' and book_id='"+book+"'";

85、</p><p>  String sql3="update book set borrowable='是' where book_id='"+book+"'";</p><p>  String sql4="update reader set borrow_num=borrow_num-1 where re

86、ader_id='"+reader+"'";</p><p><b>  try {</b></p><p>  statement=connection.createStatement();</p><p>  statement.executeUpdate(sql1);</p>&

87、lt;p>  statement.executeUpdate(sql);</p><p>  statement.executeUpdate(sql2);</p><p>  statement.executeUpdate(sql3);</p><p>  statement.executeUpdate(sql4);</p><p> 

88、 System.out.println("還書(shū)失敗的地方"+sql4);</p><p>  JOptionPane.showMessageDialog(null,"還書(shū)成功");</p><p>  System.out.println("更新完畢");</p><p>  } catch (SQLExc

89、eption e) {</p><p>  JOptionPane.showMessageDialog(null,"還書(shū)失敗,該書(shū)已被歸還");</p><p>  // TODO Auto-generated catch block</p><p>  說(shuō)明:管理員在進(jìn)行還書(shū)操作時(shí)調(diào)用的數(shù)據(jù)庫(kù)操作類(lèi)BookDB中的returnBook()方法,

90、由于還書(shū)操作要涉及到很多表的信息修改所以需要執(zhí)行多個(gè)sql語(yǔ)句。若其中的一個(gè)語(yǔ)句執(zhí)行失敗則所有操作都不能被執(zhí)行。</p><p>  此外所有的事物操作都定義為在三個(gè)數(shù)據(jù)庫(kù)操作類(lèi)(ReaderDB,DBHandler,BookDB)中的方法。三個(gè)操作類(lèi)分別用來(lái)處理讀者,管理員,書(shū)籍的有關(guān)操作。每個(gè)類(lèi)都有各自的數(shù)據(jù)庫(kù)連接方法,關(guān)閉方法,便于調(diào)用。</p><p><b>  八、測(cè)

91、試和運(yùn)行</b></p><p><b>  測(cè)試要點(diǎn):</b></p><p>  在所有代碼編寫(xiě)完成之后進(jìn)行系統(tǒng)測(cè)試工作。測(cè)試的主要工作在于:</p><p>  1.是否完成所要求的增刪改查功能</p><p>  2.界面組件的操作是否可以正常執(zhí)行</p><p>  3.數(shù)據(jù)

92、庫(kù)的操作是否正確運(yùn)行</p><p><b>  測(cè)試步驟:</b></p><p>  1.注冊(cè)三個(gè)讀者,id分別為001,002,003</p><p>  2.讀者和管理員的登錄操作,檢測(cè)輸入錯(cuò)誤提示</p><p>  3.管理員登錄進(jìn)行借閱,圖書(shū)搜索添加等操作。查看讀者,管理員信息,查看所有讀者的借閱記錄。&l

93、t;/p><p>  4.讀者登錄,修改個(gè)人信息,查看借閱記錄,搜索圖書(shū),預(yù)定操作等</p><p>  5.管理員登錄,進(jìn)行讀者刪除,讀者信息修改,圖書(shū)刪除,預(yù)定信息查看,刪除,還書(shū),違章信息查看等操作。</p><p><b>  測(cè)試結(jié)果:</b></p><p>  1.到系統(tǒng)提交時(shí),題目所要求的基本功能都實(shí)現(xiàn)了,包

94、括讀者信息,圖書(shū)信息,讀者和書(shū)籍間聯(lián)系信息如借閱,歸還,預(yù)定等操作的功能。</p><p>  2.界面設(shè)計(jì)沒(méi)有改善,不夠大方和明了,操作起來(lái)繁瑣</p><p>  3.輸入檢測(cè)不完整,例如用戶(hù)在修改信息時(shí)若輸入空時(shí)沒(méi)有提示輸入錯(cuò)誤信息,且會(huì)進(jìn)行錯(cuò)誤的數(shù)據(jù)庫(kù)操作</p><p><b>  九、總結(jié)</b></p><p&

95、gt;  至此,我的整個(gè)課程設(shè)計(jì)全部完成了。期間幾乎天天都在為完成設(shè)計(jì)進(jìn)行各種工作。感覺(jué)作為一個(gè)程序員真的很麻煩也很累,但是獨(dú)立完成工作后很有成就感。收獲有如下幾點(diǎn):</p><p>  1.在寫(xiě)代碼前進(jìn)行規(guī)劃和估計(jì),這樣能夠指導(dǎo)代碼編寫(xiě)的步驟和進(jìn)度,比憑感覺(jué)去編寫(xiě)代碼提高了很大的效率。</p><p>  2.第一次數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)沒(méi)有充分考慮需求,導(dǎo)致程序?qū)懙揭话氩虐l(fā)現(xiàn)功能太過(guò)簡(jiǎn)單,然后重

96、新進(jìn)行設(shè)計(jì)和修改花了很多時(shí)間。以后設(shè)計(jì)數(shù)據(jù)庫(kù)要盡量考慮充分所有可能的需求,詳細(xì)設(shè)計(jì)才能磨刀不誤砍柴工。</p><p>  3.在課程設(shè)計(jì)提交時(shí),實(shí)驗(yàn)老師說(shuō)了很多界面設(shè)計(jì)方面的意見(jiàn)和建議,這些都是在寫(xiě)代碼時(shí)沒(méi)有考慮到的但是很基礎(chǔ)的問(wèn)題,這些給我很多提示。</p><p>  4.這次課程設(shè)計(jì)寫(xiě)了四千七百多行的代碼,是我到目前為止所有個(gè)人完成的編程工作中最大的一次。還是很有成就感的。<

97、/p><p>  當(dāng)然這次課程設(shè)計(jì)也有很多不足的地方,主要有下面幾個(gè)方面:</p><p>  1.規(guī)劃時(shí)低估了需求,然后需要在數(shù)據(jù)庫(kù)中加進(jìn)很多新的東西,導(dǎo)致最后功能不完善,而且拖延了進(jìn)度。</p><p>  2.編寫(xiě)代碼時(shí)的類(lèi)劃分不清晰,有些方法已經(jīng)重復(fù)了,而且很多方法沒(méi)法重用??梢越梃b同學(xué)的編程方法。</p><p><b>  

98、附. 參考文獻(xiàn)</b></p><p>  1.《java基礎(chǔ)應(yīng)用案例開(kāi)發(fā)》 李剛生,王燚,焦玲 清華大學(xué)出版社</p><p>  2.《java課程設(shè)計(jì)教程》 機(jī)械工業(yè)出版社</p><p>  3.sql語(yǔ)句基礎(chǔ)教程 </p><p>  4.java數(shù)據(jù)庫(kù)連接方法CSDN博

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論