

版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)館圖書(shū)借閱管理信息系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)---圖書(shū)館管理信息系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告——圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告——圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告--圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告
- 管理信息系統(tǒng)課程設(shè)計(jì)---圖書(shū)館管理信息系統(tǒng)
- 圖書(shū)館管理信息系統(tǒng)課程設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)(圖書(shū)館)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)----圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)(圖書(shū)館管理系統(tǒng))
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書(shū)管理信息系統(tǒng)
評(píng)論
0/150
提交評(píng)論