版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、安安 徽徽 農(nóng)農(nóng) 業(yè)業(yè) 大大 學(xué)學(xué) 課程實踐(設(shè)計)報課程實踐(設(shè)計)報 告告 實踐項目名稱 圖書管理系統(tǒng)的設(shè)計 項目組成人員 院 系 信 年級專業(yè) 0 指 導(dǎo) 教 師 傅 目錄 1 1 課程設(shè)計背景(課程設(shè)計背景(包包括:現(xiàn)狀、括:現(xiàn)狀、研研究目的等)究目的等) .3 3 2 2 需求分析需求分析(包括:功包括:功能能分析、操作流程分析分析、操作流程分析等等) .3 3 . 8 11 11 1 課程設(shè)計背景課程設(shè)計背景 圖書館信息化管理從最初的對圖書館業(yè)務(wù)管理實行信息化管 理發(fā)展到對圖書館各個業(yè)務(wù)流程和網(wǎng)絡(luò)化管理,并建立大規(guī)模 的以個體文獻(xiàn)目錄聯(lián)機(jī)查詢?yōu)橹鞯馁Y源共享系統(tǒng);而圖書館的 正常運(yùn)營
2、中總是面對大量的讀者信息,圖書信息及兩者相互作 用產(chǎn)生的借書信息,所以要對讀者資源,讀者資源,借書信息 進(jìn)行管理,本系統(tǒng)的開發(fā)就是在于提高圖書管理的工作效率! 2 需求分析(包括:功能分析、操作流程分析等)需求分析(包括:功能分析、操作流程分析等) 2.1需求分析 一般通用的圖書館借閱管理系統(tǒng)包括系統(tǒng)管理、讀者管理、編 目、圖書流通、統(tǒng)計、查詢等功能。比較先進(jìn)的能夠在一個界 面下實現(xiàn)圖書、音像、期刊的管理,設(shè)置假期、設(shè)置暫離鎖 (提高安全性)、暫停某些讀者的借閱權(quán)、導(dǎo)入導(dǎo)出讀者、交 換marc數(shù)據(jù)、升級輔助編碼庫等。此外隨著internet應(yīng)用的 發(fā)展,一個完善的系統(tǒng)還應(yīng)該提供無縫接入inte
3、rnet的功能, 通過ie瀏覽器讓讀者使用借閱資料查詢、更換密碼、預(yù)約、資 料檢索等功能。有些系統(tǒng)還能提供讀者自助服務(wù),可以開放一 些客戶機(jī)讓讀者自行管理密碼、查詢自己的借閱史、預(yù)約資料、 檢索資料等。 在構(gòu)造系統(tǒng)時,首先從需求出發(fā)構(gòu)造數(shù)據(jù)庫表,然后再由數(shù)據(jù) 庫結(jié)合需求劃分系統(tǒng)功能模塊。這樣,就把一個大的系統(tǒng)分解 成了幾個小系統(tǒng)。這里把系統(tǒng)的層次劃分為了兩個部分:一個 是一般用戶態(tài):即圖書有服務(wù)子系統(tǒng);另一個是管理員界面: 提供圖書的管理和維護(hù)功能。對于不同子系統(tǒng)之間的功換,采 用了登錄功能和用戶注銷功能。 系統(tǒng)劃分了子系統(tǒng)后,下一步的工作是繼續(xù)劃分子系統(tǒng)的小 模塊。先考慮在進(jìn)入子系統(tǒng)時應(yīng)該做
4、什么,進(jìn)入系統(tǒng)之后又應(yīng) 該做什么,提供那些服務(wù)等。例如,對于圖書信息服務(wù)子系統(tǒng), 在用戶進(jìn)入時首先得調(diào)用相關(guān)數(shù)據(jù)庫表,找出用戶的圖書借閱 情況;進(jìn)入系統(tǒng)后,子系統(tǒng)得提供圖書查詢、圖書借閱和還書 功能。另外,針對本系統(tǒng)的特殊情況,同時也考慮系統(tǒng)的可移 植性,在系統(tǒng)中增加了數(shù)據(jù)庫路徑的維護(hù)部分。 但由于本人技術(shù)有限,下面只做了部分設(shè)計但由于本人技術(shù)有限,下面只做了部分設(shè)計 3 設(shè)計與實現(xiàn)(包括:前臺頁面、數(shù)據(jù)庫、業(yè)務(wù)邏輯等設(shè)計)設(shè)計與實現(xiàn)(包括:前臺頁面、數(shù)據(jù)庫、業(yè)務(wù)邏輯等設(shè)計) 3.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 3.1.1 概念結(jié)構(gòu)設(shè)計(e-r圖) 概念結(jié)構(gòu)設(shè)計是將分析得到的用戶需求抽象為概念模型的 過程,
5、即在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各 種實體以及它們之間的相互關(guān)系的模型。這樣才能更好地、更 準(zhǔn)確地用某一dbms實現(xiàn)這些需求,它是整個數(shù)據(jù)庫設(shè)計的關(guān) 鍵。概念結(jié)構(gòu)的主要特點是能真實、充分地反映現(xiàn)實世界,易 于理解,易于更改,易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型 轉(zhuǎn)換。描述概念模型的有力工具是e-r模型。 er 圖:圖: 管理 管理 管理 管理 管理 管理員 圖書類型 書架 圖書 圖書館信 息 借閱信息 屬于 屬于 部分實體部分實體 er 圖:圖: 圖書 書名 作者 書類 書架號 價格 管理員 管理員號 管理員名 密碼 圖書編 號 借閱次數(shù) 3.1.2 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的
6、任務(wù)就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本e- r圖轉(zhuǎn)換為與選用dbms產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯 結(jié)構(gòu)。設(shè)計邏輯結(jié)構(gòu)時一般要分三步進(jìn)行,首先是將概念結(jié)構(gòu) 轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,其次是將轉(zhuǎn)換來的關(guān)系、 網(wǎng)狀、層次模型向特定dbms支持下的數(shù)據(jù)模型轉(zhuǎn)換,最后是 對數(shù)據(jù)模型進(jìn)行優(yōu)化。 基于b/s的簡易圖書借閱管理系統(tǒng)采用的是將e-r圖向關(guān)系數(shù) 據(jù)模型轉(zhuǎn)換。以下是由概念模型向邏輯模型轉(zhuǎn)化的關(guān)系模式: 管理員(管理員編號,管理員名稱,管理員密碼) 圖書(圖書編碼,圖書名稱,圖書類別,書架,作者,價格, 借閱次數(shù)) 3.2.1物理結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計是對于給定的邏輯數(shù)據(jù)模型,選取
7、一個 最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)。數(shù)據(jù)庫的物理結(jié)構(gòu)指的是數(shù)據(jù)庫 在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法,它依賴于給定的計算機(jī) 系統(tǒng) 表2.2管理員信息表(new_userlist) 字段名注釋類型長度允許空默認(rèn)值 userid 管理員 編號 int4 自動增長 (1,1) username 管理員 名稱 varch ar 50null userpwd 管理員 密碼 varch ar 50null 表2.3圖書信息表(new_booklist) 字段名 注釋 類 型 長度 允 許空 默認(rèn)值 bookid圖書編 碼 varc har 50 bookna me 圖書名 稱 varc har 50 null
8、booktyp e 圖書類 別 int 4 null bookcase書架int 100 null auother作者varc har 80 null price價格mon ey 8null borrows um 借閱次 數(shù) int 4 null 數(shù)據(jù)庫表: 3.3.1系統(tǒng)功能設(shè)計圖書管理模塊功能(時間技術(shù)有限目前只有 此功能) 圖書類型管理:是對圖書進(jìn)行分類管理,對圖書類型的添 加、刪除、修改等功能。 圖書信息管理:管理員對圖書信息的詳細(xì)錄入,修改圖書 信息和刪除圖書信息等功能。 34系統(tǒng)界面設(shè)計與實現(xiàn) 3.4.1系統(tǒng)登錄界面 系統(tǒng)首頁,同時也是登錄界面,在此界面中,管理可以根 據(jù)自身情況登
9、錄到系統(tǒng)中 ,管理員登錄界面如下圖所示: 相關(guān)代碼: 用戶登陸界面 管理員登陸: 管理員姓名 管理員密碼 用戶身份驗證 !- -jspdl-0 顯示圖書列表 圖書列表 圖書編號 書名 作者 書類 書架號 價格 借閱次數(shù) % new_booklistbean records=conn.getallrecords(); if(records!=null) for(int i=0;irecords.length;i+) out.println(); out.println(+recordsi.getbookid()+); out.println(+recordsi.getbookname()+);
10、out.println(+recordsi.getauother()+); out.println(+recordsi.getbooktype()+); out.println(+recordsi.getbookcase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowsum()+); out.println(); % 更多操作: 添加圖書 返回 刪除圖書 管理員添加圖書記錄: 相關(guān)代碼: jspdl-3 添加圖書記錄 添加新記錄 圖書編號 * 書名 * 作者 書類 書架號 * 價格 * 借閱次數(shù)
11、* % if(book.getbookid()!=0 % jspdl-4 刪除圖書記錄 圖書列表 圖書編號 書名 作者 書類 書架號 價格 借閱次數(shù) 選擇 % new_booklistbean records=conn.getallrecords(); if(records!=null) for(int i=0;irecords.length;i+) out.println(); out.println(+recordsi.getbookid()+); out.println(+recordsi.getbookname()+); out.println(+recordsi.getauother
12、()+); out.println(+recordsi.getbooktype()+); out.println(+recordsi.getbookcase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowsum()+); % input type=checkbox name= value= / % out.println(); % % string check=new stringrecords.length; for(int i=0;icheck.length;i+) checki=reques
13、t.getparameter(check+i); if(checki=null) checki=; if(checki.equals(+i) if(conn.deleterecord(recordsi) out.println(刪除成功); response.setheader(refresh,1); % 與系統(tǒng)相關(guān)的bean代碼: new_booklistbean package beans; public class new_booklistbean private string bookid;/表示書編號; private string bookname;/書名; private str
14、ing auother;/作者名; private int booktype;/書類; private int bookcase;/書架號; private int price;/書價; private int borrowsum;/書被借的次數(shù); public string getbookid() return bookid; public void setbookid(string bookid) this.bookid = bookid; public string getbookname() return bookname; public void setbookname(string
15、 bookname) this.bookname = bookname; public string getauother() return auother; public void setauother(string auother) this.auother = auother; public int getbooktype() return booktype; public void setbooktype(int booktype) this.booktype = booktype; public int getbookcase() return bookcase; public vo
16、id setbookcase(int bookcase) this.bookcase = bookcase; public int getprice() return price; public void setprice(int price) this.price = price; public int getborrowsum() return borrowsum; public void setborrowsum(int borrowsum) this.borrowsum = borrowsum; connbean package beans; import java.sql.*; /導(dǎo)
17、入jdbc; public class connbean private string driver=sun.jdbc.odbc.jdbcodbcdriver;/默認(rèn)驅(qū)動程序為jdbc-odbc驅(qū)動; private string jdbcurl=jdbc:odbc:;/jdbcurl private string database=new_booklist;/數(shù)據(jù)庫或數(shù)據(jù)源 private string username=root;/用戶名 private string password=123456;/密碼 private connection connection=null; publi
18、c connection getconnection() try class.forname(driver);/注冊驅(qū)動程序; connection=drivermanager.getconnection(jdbc:odbc:new_booklist,);/ 建立連接; catch(classnotfoundexception e1) e1.printstacktrace(); catch(sqlexception e2) e2.printstacktrace(); return connection; public void closeconnection(connection connec
19、tion)/關(guān)閉連接; try if(connection!=null) connection.close(); connection=null; catch(sqlexception e3) e3.printstacktrace(); public void closepstmt(preparedstatement pstmt)/關(guān)閉執(zhí)行語句; try if(pstmt!=null) pstmt.close(); pstmt=null; catch(sqlexception e) e.printstacktrace(); public void closeresultset(resultse
20、t rs)/關(guān)閉結(jié)果集語句; try if(rs!=null) rs.close(); rs=null; catch(sqlexception e) e.printstacktrace(); public string getdriver() /獲取驅(qū)動程序 return driver; public void setdriver(string driver) this.driver = driver; public string getdatabase() return database; public void setdatabase(string database) this.datab
21、ase = database; public string getpassword() return password; public void setpassword(string password) this.password = password; public string getjdbcurl() return jdbcurl; public void setjdbcurl(string url) this.jdbcurl = url; public string getusername() return username; public void setusername(strin
22、g username) this.username = username; new_librarybean package beans; import java.sql.connection; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class new_librarydbean extends connbean private
23、 connection connection=null; public new_booklistbean getallrecords()/獲取所有記錄 resultset rs=null; preparedstatement pstmt=null; collection list=new arraylist(); try connection=getconnection(); pstmt=connection.preparestatement(select * from new_booklist);/數(shù)據(jù) 表new_booklist rs=pstmt.executequery(); while
24、(rs.next() new_booklistbean new_booklist=new new_booklistbean(); new_booklist.setbookid(rs.getstring(1); new_booklist.setbookname(rs.getstring(2); new_booklist.setauother(rs.getstring(3); new_booklist.setbooktype(rs.getint(4); new_booklist.setbookcase(rs.getint(5); new_booklist.setprice(rs.getint(6)
25、; new_booklist.setborrowsum(rs.getint(7); list.add(new_booklist); catch(sqlexception e) e.printstacktrace(); finally closepstmt(pstmt); closeconnection(connection); new_booklistbean records=(new_booklistbean)list.toarray(new new_booklistbean0); return records; public new_booklistbean queryarecord(st
26、ring sqlstr)/查詢一條記錄 resultset rs=null; preparedstatement pstmt=null; new_booklistbean new_booklist=new new_booklistbean(); try connection=getconnection(); pstmt=connection.preparestatement(sqlstr); rs=pstmt.executequery(); if(rs.next() new_booklist.setbookid(rs.getstring(1); new_booklist.setbookname
27、(rs.getstring(2); new_booklist.setauother(rs.getstring(3); new_booklist.setbooktype(rs.getint(4); new_booklist.setbookcase(rs.getint(5); new_booklist.setprice(rs.getint(6); new_booklist.setborrowsum(rs.getint(7); catch(sqlexception e) e.printstacktrace(); finally closeresultset(rs); closepstmt(pstmt
28、); closeconnection(connection); return new_booklist; public boolean insertrecord(new_booklistbean record)/插入記錄 preparedstatement pstmt=null; string insstr=insert into new_booklist values (?,?,?,?,?); if(record=null) return false; try connection=getconnection(); pstmt=connection.preparestatement(inss
29、tr); pstmt.setstring(1, record.getbookid(); pstmt.setstring(2, record.getbookname(); pstmt.setstring(3, record.getauother(); pstmt.setint(4, record.getbooktype(); pstmt.setint(5, record.getbookcase(); pstmt.setint(6, record.getprice(); pstmt.setint(7, record.getborrowsum(); pstmt.execute(); catch(sqlexception e) e.printstacktrace(); finally closepstmt(pstmt); closeconnection(connection); return true; public boolean deleterecord(new_booklistbean record)/刪除記錄; preparedstatement pstmt=null; string delstr=delete from n
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職園藝技術(shù)(園藝產(chǎn)品銷售)試題及答案
- 2025年高職(康復(fù)工程技術(shù))康復(fù)工程綜合測試試題及答案
- 2025年中職(電梯維保)電梯日常維護(hù)保養(yǎng)階段測試題及答案
- 2025年大學(xué)大三(口腔醫(yī)學(xué)技術(shù))義齒修復(fù)工藝試題及答案
- 2025年中職(化學(xué)工藝)化工生產(chǎn)管理期中測試試題及答案
- 2025年中職護(hù)理(養(yǎng)老院護(hù)理)試題及答案
- 2025年中職汽車運(yùn)用與維修(汽車大修工藝)試題及答案
- 2025年中職(國土資源調(diào)查)土地分類基礎(chǔ)試題及答案
- 2025年高職作物生產(chǎn)(應(yīng)用技巧實操)試題及答案
- 2025年高職(樂器維修)琵琶修復(fù)技術(shù)綜合測試題及答案
- 粉塵清掃安全管理制度完整版
- 云南省2025年高二上學(xué)期普通高中學(xué)業(yè)水平合格性考試《信息技術(shù)》試卷(解析版)
- 2025年山東青島西海岸新區(qū)“千名人才進(jìn)新區(qū)”集中引才模擬試卷及一套完整答案詳解
- 四川省成都市樹德實驗中學(xué)2026屆九年級數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 與業(yè)主溝通技巧培訓(xùn)
- 普惠托育服務(wù)機(jī)構(gòu)申請表、承諾書、認(rèn)定書
- 幼兒園小班數(shù)學(xué)《好吃的》課件
- 《海洋生物學(xué)》課程教學(xué)大綱
- 對公賬戶收款變更協(xié)議書
- 低壓控制基本知識培訓(xùn)課件
- 2025至2030中國養(yǎng)老健康行業(yè)深度發(fā)展研究與企業(yè)投資戰(zhàn)略規(guī)劃報告
評論
0/150
提交評論