




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、安安 徽徽 農(nóng)農(nóng) 業(yè)業(yè) 大大 學(xué)學(xué) 課程實(shí)踐(設(shè)計(jì))報(bào)課程實(shí)踐(設(shè)計(jì))報(bào) 告告 實(shí)踐項(xiàng)目名稱 圖書(shū)管理系統(tǒng)的設(shè)計(jì) 項(xiàng)目組成人員 院 系 信 年級(jí)專業(yè) 0 指 導(dǎo) 教 師 傅 目錄 1 1 課程設(shè)計(jì)背景(課程設(shè)計(jì)背景(包包括:現(xiàn)狀、括:現(xiàn)狀、研研究目的等)究目的等) .3 3 2 2 需求分析需求分析(包括:功包括:功能能分析、操作流程分析分析、操作流程分析等等) .3 3 2.12.1 需求分析.3 3 3 設(shè)計(jì)與實(shí)設(shè)計(jì)與實(shí)現(xiàn)現(xiàn)(包括:前臺(tái)頁(yè)(包括:前臺(tái)頁(yè)面面、數(shù)據(jù)庫(kù)、業(yè)務(wù)邏輯等設(shè)計(jì))、數(shù)據(jù)庫(kù)、業(yè)務(wù)邏輯等設(shè)計(jì)) .4 4 3.13.1 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì).4 3.1.1 概念結(jié)構(gòu)設(shè)計(jì).4 3.1.
2、2 邏輯結(jié)構(gòu)設(shè)計(jì) . 7 3.2.1 物理結(jié)構(gòu)設(shè)計(jì). 8 3.3.1 系統(tǒng)功能設(shè)計(jì)圖書(shū)管理模塊功11 34 系統(tǒng)界面設(shè)計(jì)與實(shí)現(xiàn).11 3.4.1 系統(tǒng)登錄界面11 1 課程設(shè)計(jì)背景課程設(shè)計(jì)背景 圖書(shū)館信息化管理從最初的對(duì)圖書(shū)館業(yè)務(wù)管理實(shí)行信息化管 理發(fā)展到對(duì)圖書(shū)館各個(gè)業(yè)務(wù)流程和網(wǎng)絡(luò)化管理,并建立大規(guī)模 的以個(gè)體文獻(xiàn)目錄聯(lián)機(jī)查詢?yōu)橹鞯馁Y源共享系統(tǒng);而圖書(shū)館的 正常運(yùn)營(yíng)中總是面對(duì)大量的讀者信息,圖書(shū)信息及兩者相互作 用產(chǎn)生的借書(shū)信息,所以要對(duì)讀者資源,讀者資源,借書(shū)信息 進(jìn)行管理,本系統(tǒng)的開(kāi)發(fā)就是在于提高圖書(shū)管理的工作效率! 2 需求分析(包括:功能分析、操作流程分析等)需求分析(包括:功能分析、
3、操作流程分析等) 2.1需求分析 一般通用的圖書(shū)館借閱管理系統(tǒng)包括系統(tǒng)管理、讀者管理、編 目、圖書(shū)流通、統(tǒng)計(jì)、查詢等功能。比較先進(jìn)的能夠在一個(gè)界 面下實(shí)現(xiàn)圖書(shū)、音像、期刊的管理,設(shè)置假期、設(shè)置暫離鎖 (提高安全性)、暫停某些讀者的借閱權(quán)、導(dǎo)入導(dǎo)出讀者、交 換MARC數(shù)據(jù)、升級(jí)輔助編碼庫(kù)等。此外隨著Internet應(yīng)用的 發(fā)展,一個(gè)完善的系統(tǒng)還應(yīng)該提供無(wú)縫接入Internet的功能, 通過(guò)IE瀏覽器讓讀者使用借閱資料查詢、更換密碼、預(yù)約、資 料檢索等功能。有些系統(tǒng)還能提供讀者自助服務(wù),可以開(kāi)放一 些客戶機(jī)讓讀者自行管理密碼、查詢自己的借閱史、預(yù)約資料、 檢索資料等。 在構(gòu)造系統(tǒng)時(shí),首先從需求出發(fā)
4、構(gòu)造數(shù)據(jù)庫(kù)表,然后再由數(shù)據(jù) 庫(kù)結(jié)合需求劃分系統(tǒng)功能模塊。這樣,就把一個(gè)大的系統(tǒng)分解 成了幾個(gè)小系統(tǒng)。這里把系統(tǒng)的層次劃分為了兩個(gè)部分:一個(gè) 是一般用戶態(tài):即圖書(shū)有服務(wù)子系統(tǒng);另一個(gè)是管理員界面: 提供圖書(shū)的管理和維護(hù)功能。對(duì)于不同子系統(tǒng)之間的功換,采 用了登錄功能和用戶注銷功能。 系統(tǒng)劃分了子系統(tǒng)后,下一步的工作是繼續(xù)劃分子系統(tǒng)的小 模塊。先考慮在進(jìn)入子系統(tǒng)時(shí)應(yīng)該做什么,進(jìn)入系統(tǒng)之后又應(yīng) 該做什么,提供那些服務(wù)等。例如,對(duì)于圖書(shū)信息服務(wù)子系統(tǒng), 在用戶進(jìn)入時(shí)首先得調(diào)用相關(guān)數(shù)據(jù)庫(kù)表,找出用戶的圖書(shū)借閱 情況;進(jìn)入系統(tǒng)后,子系統(tǒng)得提供圖書(shū)查詢、圖書(shū)借閱和還書(shū) 功能。另外,針對(duì)本系統(tǒng)的特殊情況,同時(shí)
5、也考慮系統(tǒng)的可移 植性,在系統(tǒng)中增加了數(shù)據(jù)庫(kù)路徑的維護(hù)部分。 但由于本人技術(shù)有限,下面只做了部分設(shè)計(jì)但由于本人技術(shù)有限,下面只做了部分設(shè)計(jì) 3 設(shè)計(jì)與實(shí)現(xiàn)(包括:前臺(tái)頁(yè)面、數(shù)據(jù)庫(kù)、業(yè)務(wù)邏輯等設(shè)計(jì))設(shè)計(jì)與實(shí)現(xiàn)(包括:前臺(tái)頁(yè)面、數(shù)據(jù)庫(kù)、業(yè)務(wù)邏輯等設(shè)計(jì)) 3.1數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 3.1.1 概念結(jié)構(gòu)設(shè)計(jì)(E-R圖) 概念結(jié)構(gòu)設(shè)計(jì)是將分析得到的用戶需求抽象為概念模型的 過(guò)程,即在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各 種實(shí)體以及它們之間的相互關(guān)系的模型。這樣才能更好地、更 準(zhǔn)確地用某一DBMS實(shí)現(xiàn)這些需求,它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān) 鍵。概念結(jié)構(gòu)的主要特點(diǎn)是能真實(shí)、充分地反映現(xiàn)實(shí)世界,易 于理解,易于
6、更改,易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型 轉(zhuǎn)換。描述概念模型的有力工具是E-R模型。 Er 圖:圖: 管理 管理 管理 管理 管理 管理員 圖書(shū)類型 書(shū)架 圖書(shū) 圖書(shū)館信 息 借閱信息 屬于 屬于 部分實(shí)體部分實(shí)體 ER 圖:圖: 圖書(shū) 書(shū)名 作者 書(shū)類 書(shū)架號(hào) 價(jià)格 管理員 管理員號(hào) 管理員名 密碼 圖書(shū)編 號(hào) 借閱次數(shù) 3.1.2 邏輯結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E- R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯 結(jié)構(gòu)。設(shè)計(jì)邏輯結(jié)構(gòu)時(shí)一般要分三步進(jìn)行,首先是將概念結(jié)構(gòu) 轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,其次是將轉(zhuǎn)換來(lái)的關(guān)系、 網(wǎng)狀、層次模型向
7、特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換,最后是 對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。 基于B/S的簡(jiǎn)易圖書(shū)借閱管理系統(tǒng)采用的是將E-R圖向關(guān)系數(shù) 據(jù)模型轉(zhuǎn)換。以下是由概念模型向邏輯模型轉(zhuǎn)化的關(guān)系模式: 管理員(管理員編號(hào),管理員名稱,管理員密碼) 圖書(shū)(圖書(shū)編碼,圖書(shū)名稱,圖書(shū)類別,書(shū)架,作者,價(jià)格, 借閱次數(shù)) 3.2.1物理結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì)是對(duì)于給定的邏輯數(shù)據(jù)模型,選取一個(gè) 最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)。數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)指的是數(shù)據(jù)庫(kù) 在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法,它依賴于給定的計(jì)算機(jī) 系統(tǒng) 表2.2管理員信息表(new_userlist) 字段名注釋類型長(zhǎng)度允許空默認(rèn)值 userId 管理員 編號(hào)
8、 int4 自動(dòng)增長(zhǎng) (1,1) userName 管理員 名稱 varch ar 50Null userPwd 管理員 密碼 varch ar 50Null 表2.3圖書(shū)信息表(new_booklist) 字段名 注釋 類 型 長(zhǎng)度 允 許空 默認(rèn)值 bookid圖書(shū)編 碼 varc har 50 bookNa me 圖書(shū)名 稱 varc har 50 null bookTyp e 圖書(shū)類 別 int 4 null bookcase書(shū)架int 100 null auother作者varc har 80 null price價(jià)格mon ey 8null borrowS um 借閱次 數(shù) int
9、 4 null 數(shù)據(jù)庫(kù)表: 3.3.1系統(tǒng)功能設(shè)計(jì)圖書(shū)管理模塊功能(時(shí)間技術(shù)有限目前只有 此功能) 圖書(shū)類型管理:是對(duì)圖書(shū)進(jìn)行分類管理,對(duì)圖書(shū)類型的添 加、刪除、修改等功能。 圖書(shū)信息管理:管理員對(duì)圖書(shū)信息的詳細(xì)錄入,修改圖書(shū) 信息和刪除圖書(shū)信息等功能。 34系統(tǒng)界面設(shè)計(jì)與實(shí)現(xiàn) 3.4.1系統(tǒng)登錄界面 系統(tǒng)首頁(yè),同時(shí)也是登錄界面,在此界面中,管理可以根 據(jù)自身情況登錄到系統(tǒng)中 ,管理員登錄界面如下圖所示: 相關(guān)代碼: 用戶登陸界面 管理員登陸: 管理員姓名 管理員密碼 用戶身份驗(yàn)證 !- -JSPdl-0 顯示圖書(shū)列表 圖書(shū)列表 圖書(shū)編號(hào) 書(shū)名 作者 書(shū)類 書(shū)架號(hào) 價(jià)格 借閱次數(shù) % new_
10、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()+); out.println(+recordsi.getbookType()+); out.println(+recordsi.getbookCase()+);
11、out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowSum()+); out.println(); % 更多操作: 添加圖書(shū) 返回 刪除圖書(shū) 管理員添加圖書(shū)記錄: 相關(guān)代碼: JSPdl-3 添加圖書(shū)記錄 添加新記錄 圖書(shū)編號(hào) * 書(shū)名 * 作者 書(shū)類 書(shū)架號(hào) * 價(jià)格 * 借閱次數(shù) * % if(book.getbookID()!=0 % JSPdl-4 刪除圖書(shū)記錄 圖書(shū)列表 圖書(shū)編號(hào) 書(shū)名 作者 書(shū)類 書(shū)架號(hào) 價(jià)格 借閱次數(shù) 選擇 % new_booklistBean records=conn.getAll
12、Records(); if(records!=null) for(int i=0;irecords.length;i+) out.println(); out.println(+recordsi.getbookID()+); out.println(+recordsi.getbookName()+); out.println(+recordsi.getauother()+); out.println(+recordsi.getbookType()+); out.println(+recordsi.getbookCase()+); out.println(+recordsi.getprice()
13、+); out.println(+recordsi.getborrowSum()+); % input type=checkbox name= value= / % out.println(); % % String check=new Stringrecords.length; for(int i=0;icheck.length;i+) checki=request.getParameter(check+i); if(checki=null) checki=; if(checki.equals(+i) if(conn.deleteRecord(recordsi) out.println(刪除
14、成功); response.setHeader(refresh,1); % 與系統(tǒng)相關(guān)的bean代碼: New_booklistBean package beans; public class new_booklistBean private String bookID;/表示書(shū)編號(hào); private String bookName;/書(shū)名; private String auother;/作者名; private int bookType;/書(shū)類; private int bookCase;/書(shū)架號(hào); private int price;/書(shū)價(jià); private int borrowSum;
15、/書(shū)被借的次數(shù); public String getbookID() return bookID; public void setbookID(String bookID) this.bookID = bookID; public String getbookName() return bookName; public void setbookName(String bookName) this.bookName = bookName; public String getauother() return auother; public void setauother(String auothe
16、r) this.auother = auother; public int getbookType() return bookType; public void setbookType(int bookType) this.bookType = bookType; public int getbookCase() return bookCase; public void setbookCase(int bookCase) this.bookCase = bookCase; public int getprice() return price; public void setprice(int
17、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)入jdbc; public class ConnBean private String driver=sun.jdbc.odbc.JdbcOdbcDriver;/默認(rèn)驅(qū)動(dòng)程序?yàn)閖dbc-odbc驅(qū)動(dòng); private String
18、jdbcurl=jdbc:odbc:;/jdbcurl private String database=new_booklist;/數(shù)據(jù)庫(kù)或數(shù)據(jù)源 private String userName=root;/用戶名 private String password=;/密碼 private Connection connection=null; public Connection getConnection() try Class.forName(driver);/注冊(cè)驅(qū)動(dòng)程序; connection=DriverManager.getConnection(jdbc:odbc:new_bookl
19、ist,);/ 建立連接; catch(ClassNotFoundException e1) e1.printStackTrace(); catch(SQLException e2) e2.printStackTrace(); return connection; public void closeConnection(Connection connection)/關(guān)閉連接; try if(connection!=null) connection.close(); connection=null; catch(SQLException e3) e3.printStackTrace(); pub
20、lic void closePstmt(PreparedStatement pstmt)/關(guān)閉執(zhí)行語(yǔ)句; try if(pstmt!=null) pstmt.close(); pstmt=null; catch(SQLException e) e.printStackTrace(); public void closeResultSet(ResultSet rs)/關(guān)閉結(jié)果集語(yǔ)句; try if(rs!=null) rs.close(); rs=null; catch(SQLException e) e.printStackTrace(); public String getDriver()
21、/獲取驅(qū)動(dòng)程序 return driver; public void setDriver(String driver) this.driver = driver; public String getDatabase() return database; public void setDatabase(String database) this.database = database; public String getPassword() return password; public void setPassword(String password) this.password = pass
22、word; public String getJdbcurl() return jdbcurl; public void setJdbcurl(String url) this.jdbcurl = url; public String getUserName() return userName; public void setUserName(String userName) this.userName = userName; New_libraryBean package beans; import java.sql.Connection; import java.sql.PreparedS
23、tatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; public class new_libraryDBean extends ConnBean private Connection connection=null; public new_booklistBean getAllRecords()/獲取所有記錄 ResultSet rs=null; PreparedStatement pstmt=nul
24、l; Collection list=new ArrayList(); try connection=getConnection(); pstmt=connection.prepareStatement(select * from new_booklist);/數(shù)據(jù) 表new_booklist rs=pstmt.executeQuery(); while(rs.next() new_booklistBean new_booklist=new new_booklistBean(); new_booklist.setbookID(rs.getString(1); new_booklist.setb
25、ookName(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); list.add(new_booklist); catch(SQLException e) e.printStackTrace(); finally close
26、Pstmt(pstmt); closeConnection(connection); new_booklistBean records=(new_booklistBean)list.toArray(new new_booklistBean0); return records; public new_booklistBean queryARecord(String sqlStr)/查詢一條記錄 ResultSet rs=null; PreparedStatement pstmt=null; new_booklistBean new_booklist=new new_booklistBean();
27、 try connection=getConnection(); pstmt=connection.prepareStatement(sqlStr); rs=pstmt.executeQuery(); if(rs.next() 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
28、(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); closeConnection(connection); return new_booklist; public boolean insertRecord(new_booklistBean record)/插入記錄 PreparedSta
29、tement pstmt=null; String insStr=insert into new_booklist values (?,?,?,?,?); if(record=null) return false; try connection=getConnection(); pstmt=connection.prepareStatement(insStr); pstmt.setString(1, record.getbookID(); pstmt.setString(2, record.getbookName(); pstmt.setString(3, record.getauother(
30、); 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 del
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司房屋安全管理辦法
- 智慧場(chǎng)館業(yè)務(wù)管理辦法
- 自動(dòng)化專業(yè)學(xué)生的就業(yè)前景與職業(yè)發(fā)展
- 退役磷酸鐵鋰正極衍生磷化鐵活性材料在鋰氧氣電池中的應(yīng)用探究
- 金融基礎(chǔ)理論課程知識(shí)體系優(yōu)化
- 堿溶處理對(duì)硅藻土保水滲透性能的作用機(jī)制探討
- 餐飲業(yè)新店開(kāi)業(yè)策劃全攻略
- 功能文體學(xué)視角下的歐洲小說(shuō)人物塑造深度解讀
- 高校心理危機(jī)干預(yù)機(jī)制建設(shè)與實(shí)施研究
- 晉江市封控區(qū)管理辦法
- 2025至2030中國(guó)氨基吡啶行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025-2030中國(guó)商業(yè)展示道具市場(chǎng)應(yīng)用前景及投資價(jià)值評(píng)估報(bào)告
- 2025年甘肅省武威市民勤縣西渠鎮(zhèn)人民政府選聘專業(yè)化管理村文書(shū)筆試參考題庫(kù)及1套完整答案詳解
- 防洪防汛安全知識(shí)試題及答案
- T/CCMA 0137-2022防撞緩沖車
- 工地意外死亡賠償協(xié)議書(shū)6篇
- 江蘇省2025年中職職教高考文化統(tǒng)考數(shù)學(xué)試題答案
- 浙江省公路工程監(jiān)理用表-監(jiān)理旁站記錄2025
- 產(chǎn)科促宮縮藥
- 2024年貴州省余慶縣事業(yè)單位公開(kāi)招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 蜜雪冰城商業(yè)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論