




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、福建信息職業技術學院畢業論文(設計)論文題目: 圖書管理系統 系 別: 軟件工程系 專 業: 班 級: 學 號: 學生姓名: 指導教師: 目錄1 概述11.1 課題背景12 系統分析22.1 系統的需求分析22.2.1 系統管理員業務流程分析32.3 數據流程分析42.3.1 圖書類別管理模塊42.3.2 圖書管理模塊52.3.3 讀者管理模塊52.3.4 圖書借閱模塊62.3.5 修改密碼模塊63 系統設計83.1 系統體系結構設計83.2 系統子模塊功能介紹83.3 數據庫設計93.3.1 數據庫概念設計e-r模型93.3.2 數據庫邏輯設計關系模型93.3.3 數據庫選型93.3.4 數
2、據庫表結構設計103.3.5 數據庫表間關系設計113.4 系統開發工具與開發模式的選擇123.4.1 系統開發工具124 系統實現134.1登陸模塊134.2 圖書類別管理模塊154.3 圖書管理模塊174.4 讀者管理模塊194.5 圖書借閱管理模塊225 系統測試255.1 測試目的255.2 測試方法255.3 測試結果256 總結26致 謝27參 考 文 獻28圖書管理系統摘 要:本文對圖書館管理系統的設計與開發過程進行了分析與敘述。依照系統開發的實際操作步驟,文章從系統概述、系統分析、系統設計和系統實現這四大章節對系統開發過程進行分別闡述。系統概述中主要進行了課題背景、課題意義和現
3、狀分析;系統分析中主要包括了系統設計前的需求分析、業務流程分析、數據流程分析和數據字典分析;而系統設計則是對系統體系結構、各功能模塊、數據庫結構設計等具體的系統實現過程進行剖析展示,在系統設計章節中有詳細的文字解釋并配有表圖說明。文章還列舉了關鍵的功能模塊實現代碼。本文力求可以為圖書館管理系統的開發設計找到一種切實可行的解決方案,在分析了目前國內外圖書館管理系統的現狀的基礎上,并經過反復摸索和學習研究后,借助編程語言jsp和sql 數據庫最終實現了圖書館管理的開發,并在一系列測試后,達成了人性化、所需功能完善、操作清晰的設計目標。關鍵詞:jsp;sql server 2005;圖書。1 概述1
4、.1 課題背景隨著社會的發展,人們對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據了一定的位置,如何科學地管理圖書館不但關系到讀者求知的方便程度,也關系到圖書館的發展,因此,開發一套完善的圖書館管理系統就必不可少了,本文介紹了在windows7及java、jsp、sql、myeclipse環境下采用“自上而下地總體規劃,自下而上地應用開發”的策略開發本系統的詳細過程,提出實現圖書館信息管理、資源共享的基本目標,從而推動邁向數字化圖書館的步伐,并闡述系統結構設計和功能設計,從圖書的入庫登記到查詢瀏覽,從借書證發放到圖書的
5、借閱,形成了一個整體自動化管理模式,從軟件工程的角度進行了科學而嚴謹的闡述。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數據的管理,現今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據調查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權限、以及借閱天數等用人工計算、手抄進行。數據信息處理工作量大,容易出錯;由于數據繁多,容易丟失,且不易查找。總的來說,缺乏系統,規范的信息管理手段。盡管有的圖書館有計算機,但是尚
6、未用于信息管理,沒有發揮它的效力,資源閑置比較突出,這就是圖書館管理系統的開發的基本環境。2 系統分析2.1 系統的需求分析本系統致力于建立靈活、方便的圖書館管理系統,主要有五大功能模塊:類別管理模塊、圖書管理模塊、讀者管理、借閱管理和歸還管理模塊。圖2.1 系統需求分析圖1. 圖書類別信息管理:作為一個社區的圖書館,涉及到的圖書是很多的,這就有必要對圖書進行分門別類,這樣有利于對圖書的查詢和管理,管理員登陸系統后可以對圖書類別進行添加,更新和刪除操作。2. 圖書信息管理:當管理員對圖書類別信息添加完成后,就可以開始進行圖書信息的錄入了。3. 讀者信息管理:管理員可以添加新的讀者信息,修改已經
7、存在的讀者信息,刪除讀者信息。4. 圖書借閱管理:管理員登陸系統后??梢怨芾碜x者的借閱信息。首先輸入讀者的借書證號,然后輸入要借閱的圖書和借閱時間,完成借閱的管理。5. 圖書歸還管理:當讀者看完了書或需要歸還時,管理員通過系統提供的接口完成圖書歸還操作。2.2.1 系統管理員業務流程分析系統管理員進入用戶登錄界面后,在登錄功能區輸入系統管理員的用戶賬號與密碼,登錄成功后跳轉到系統主窗體。系統可以查看圖書信息,并對其進行查找或刪除等操作;查看讀者信息,對不符合系統規定的進行刪除操作;添加圖書借閱信息,并對其進行編輯或刪除等操作。結束各項操作后退出,回到系統主窗體。圖2.2 系統管理員業務流程圖2
8、.3 數據流程分析2.3.1 圖書類別管理模塊圖書類別管理包括圖書類別信息的瀏覽、添加和刪除。如圖2.3所示。圖2.3 圖書類別管理模塊數據流程圖2.3.2 圖書管理模塊圖書信息包括圖書信息的瀏覽、添加和刪除。如圖2.4所示。圖2.4 圖書管理模塊數據流程圖2.3.3 讀者管理模塊讀者信息包括讀者信息的瀏覽、添加和刪除。如圖2.5所示。圖2.5 讀者信息管理模塊數據流程圖2.3.4 圖書借閱模塊借閱信息包括借閱信息的瀏覽、添加和刪除。如圖2.6所示。圖2.6 圖書借閱模塊數據流程圖2.3.5 修改密碼模塊系統管理員可以修改密碼也可從用戶中修改密碼。如圖2.3所示。圖2.7 修改密碼模塊數據流程
9、圖3 系統設計3.1 系統體系結構設計本系統的系統結構是按照了自上向下的設計理念完成的。第一層是用戶登錄界面。第二層是系統主頁,主要包括圖書類別管理,圖書信息管理、讀者管理、借閱信息管理、修改密碼等,用戶登錄成功后可以轉至各個管理功能。第三層即各個管理功能的所有功能。圖3.1 系統體系結構設計3.2 系統子模塊功能介紹(1)圖書類別管理模塊:主要功能是系統管理員登入后,添加、編輯和刪除圖書類別的功能。(2)圖書管理模塊:主要功能是系統管理員登入后,添加、編輯和刪除圖書信息的功能。(3)讀者管理模塊:主要功能是管理員登入后,維護讀者的信息。包括錄入新的讀者,刪除不符合規定的讀者,編輯現有的讀者信
10、息。(4)借閱管理模塊:主要功能是管理員登入后,維護圖書借閱的信息。包括增加新的,刪除不符合規定的借閱,編輯現有的借閱信息。(5)修改密碼模塊:主要功能是管理員為了保證安全性。重設密碼的功能3.3 數據庫設計3.3.1 數據庫概念設計e-r模型概念模型是對信息世界建模,其表示方法有很多,其中最為常用的是實體聯系模型,即er模型,它是用er圖來描述現實世界的概念模型。下面er圖清楚簡便的描述出了本系統實體與其屬性之間的關系。圖3.2 數據庫概念模型e-r圖3.3.2 數據庫邏輯設計關系模型圖書類別信息(id,類別名稱,備注信息);圖書信息(id,名稱,出版社,出版日期,isbn,頁碼,庫存,類別
11、id);讀者信息(id,姓名,性別,年齡,住址,聯系方式,借書證號);借閱信息(id,圖書id,讀者id,借閱數量,借閱時間,歸還時間);管理員信息(用戶名,密碼)。3.3.3 數據庫選型本系統使用sqlserver關系型數據庫。sqlserver是由微軟公司出品,基于關系型數據庫的大型數據庫系統,該版本數據庫具有獨立于硬件平臺、對稱的多處理器結構、搶占式多任務管理、完善的安全系統和容錯功能,更具有使用方便、可收縮性好與相關軟件集成程度高等優點。3.3.4 數據庫表結構設計本系統后臺數據庫中總共設計了5張數據表,分別為黑名稱圖書類別信息表(t_catelog)、圖書信息表(t_book)、讀者
12、信息表(t_user)、借閱表(t_jieyue)和管理員信息表(t_admin)。具體結構設計如下:(1)圖書類別信息表(t_catelog)圖書類別信息表主要用于存放圖書類別的信息,主要字段包括:id,類別名稱,備注信息等。表3.1 圖書類別信息表(t_catelog)字段名數據類型字段描述長度主鍵idintid4mingchengvarchar類別名稱50beizhuvarchar備注信息500(2)圖書信息表(t_book)圖書信息表主要用于存儲圖書信息,主要字段有id、圖書名稱、出版社、出版日期、isbn號、頁碼、庫存數量、類別id等。表3.2 圖書信息表(t_book)字段名數據類
13、型字段描述長度主鍵idint編號4namevarchar圖書名稱50chubanshevarchar出版社50chubanriqivarchar出版日期4isbnvarchar圖書isbn50pricevarchar單價50kucunint庫存數量50catalog_idvarchar類別id50(3)讀者信息表(t_user)讀者信息表主要用于存儲讀者信息,主要字段有姓名、性別、年齡、住址、聯系方式、借書證號等。 表3.3讀者信息表(t_user)字段名數據類型字段描述長度主鍵idint編號4namevarchar姓名50sexvarchar性別50ageint年齡4addressvarch
14、ar住址50telvarchar聯系方式50jiehaovarchar借書證號50(4)借閱信息表(t_jieyue)讀者信息表主要用于存讀者借閱圖書的信息,主要字段有id、圖書id、讀者id、借閱時間、歸還時間、借閱數量等。 表3.4借閱信息表(t_jieyue)字段名數據類型字段描述長度主鍵idint編號4book_idint圖書編號50user_idint讀者編號50jieyueshijianvarchar借閱時間4jieyueshuliangvarchar借閱數量50guihuanshijianvarchar歸還時間50beizhuvarchar備注50(5)管理員信息表(admin)
15、管理員信息表主要用于系統管理員的信息,主要字段包括:編號、登陸賬號、登陸密碼。表3.5 管理員信息表(admin)字段名數據類型字段描述長度主鍵idint編號10namevarchar登陸賬號50pwdvarchar登陸密碼503.3.5 數據庫表間關系設計圖3.3數據庫表間關系圖3.4 系統開發工具與開發模式的選擇3.4.1 系統開發工具本系統主要使用jsp、servlet技術對系統進行設計和開發。jsp,即java server page,java應用頁面程序。作為開發動態頁面的一種技術,jsp是當前大中型企業應用軟件首選的開發路線之一。而且jsp是j2ee的重要組成部分,開發人員可以在j
16、sp中獲得j2ee的眾多優點。學習jsp也是j2ee入門的必經之路。而相對于servlet這種java類,jsp又有著特定的優勢。從前面的例子可以看出,要完成一個簡單jsp頁面具有的功能,需要編寫大量的servlet代碼,而且,從代碼上根本看不出來生成的html文檔結構。另外,jsp中雙引號等特殊字符,在servlet中都需要進行轉義處理,又進一步降低了程序的可讀性。servlet不能有效地利用原型頁面。事實上,在jsp中,還可以使用標簽等特性,進一步將jsp中的 java代碼導致的不利因素削弱。4 系統實現4.1登陸模塊(1)登陸界面要想使用本系統,必須先登陸到系統中,在登陸頁面,首先將從前
17、臺頁面提交的用戶名和密碼進行接受,之后在后臺進行處理,按照用戶名在數據庫中進行查詢如果查到該用戶則將該用戶的權限和密碼全都取出來分別賦給兩個字符串變量,判斷從數據庫中讀出的密碼與登錄時輸入的密碼是否配比上,若兩個密碼相同則根據權限的值進入相應的頁面,否則輸出密碼錯誤。(2)登陸模塊關鍵代碼 public string login(string username,string userpw,int usertype)trythread.sleep(700); catch (interruptedexception e)/ todo auto-generated catch blocke.prin
18、tstacktrace();string result=no;if(usertype=0)/系統管理員登陸string sql=select * from t_admin where username=? and userpw=?;object params=username,userpw;db mydb=new db();mydb.dopstm(sql, params);try resultset rs=mydb.getrs();boolean mark=(rs=null|!rs.next()?false:true);if(mark=false) result=no;else result=
19、yes; tadmin admin=new tadmin(); admin.setuserid(rs.getint(userid); admin.setusername(rs.getstring(username); admin.setuserpw(rs.getstring(userpw); webcontext ctx = webcontextfactory.get(); httpsession session=ctx.getsession(); session.setattribute(usertype, 0); session.setattribute(admin, admin);rs.
20、close(); catch (sqlexception e)system.out.println(登錄失??!);e.printstacktrace();finallymydb.closed();if(usertype=1)string sql=select * from t_yuangong where del=no and loginname=? and loginpw=?;object params=username,userpw;db mydb=new db();trymydb.dopstm(sql, params);resultset rs=mydb.getrs();boolean
21、mark=(rs=null|!rs.next()?false:true);if(mark=false)result=no;if(mark=true)tyuangong yuangong=new tyuangong();yuangong.setid(rs.getint(id);yuangong.setname(rs.getstring(name);yuangong.setsex(rs.getstring(sex);yuangong.setage(rs.getstring(age);yuangong.settel(rs.getstring(tel);yuangong.setaddress(rs.g
22、etstring(address);yuangong.setloginname(rs.getstring(loginname);yuangong.setloginpw(rs.getstring(loginpw);result=yes; webcontext ctx = webcontextfactory.get(); httpsession session=ctx.getsession(); session.setattribute(usertype, 1); session.setattribute(yuangong, yuangong);rs.close();catch(exception
23、 e)e.printstacktrace();mydb.closed();if(usertype=2)return result;4.2 圖書類別管理模塊(1)圖書類別管理模塊界面管理員登陸系統后,點擊左面的菜單“圖書類別管理”,頁面調轉到圖書類別管理界面,錄入圖書類別的基本信息。如類別名稱、備注信息等,點擊保存按鈕,調用后臺的java類catelogservlett把圖書類別信息保存到數據庫。操作員管理界面如下圖。圖4.2 圖書類別管理模塊界面(2)圖書類別管理模塊關鍵代碼 public void catelogadd(httpservletrequest req,httpservletre
24、sponse res)string name=req.getparameter(name);string jieshao=req.getparameter(jieshao);string del=no;string sql=insert into t_catelog values(?,?,?);object params=name,jieshao,del;db mydb=new db();mydb.dopstm(sql, params);mydb.closed();req.setattribute(message, 操作成功);req.setattribute(path, catelog?ty
25、pe=catelogmana); string targeturl = /common/success.jsp;dispatch(targeturl, req, res);public void catelogdel(httpservletrequest req,httpservletresponse res)string sql=update t_catelog set del=yes where id=+integer.parseint(req.getparameter(id);object params=;db mydb=new db();mydb.dopstm(sql, params)
26、;mydb.closed();req.setattribute(message, 操作成功);req.setattribute(path, catelog?type=catelogmana); string targeturl = /common/success.jsp;dispatch(targeturl, req, res);public void catelogmana(httpservletrequest req,httpservletresponse res) throws servletexception, ioexceptionlist cateloglist=new array
27、list();string sql=select * from t_catelog where del=no;object params=;db mydb=new db();trymydb.dopstm(sql, params);resultset rs=mydb.getrs();while(rs.next()tcatelog catelog=new tcatelog();catelog.setid(rs.getint(id);catelog.setname(rs.getstring(name);catelog.setjieshao(rs.getstring(jieshao);catelogl
28、ist.add(catelog); rs.close();catch(exception e)e.printstacktrace();mydb.closed();req.setattribute(cateloglist, cateloglist);req.getrequestdispatcher(admin/catelog/catelogmana.jsp).forward(req, res);4.3 圖書管理模塊(1)圖書管理界面管理員登陸系統后,點擊左面的菜單“圖書管理”,頁面調轉到圖書管理界面,錄入圖書的基本信息。包括名稱、出版社、出版日期、isbn、庫存數量、單價等,點擊保存按鈕,調用后
29、臺的java類bookservet把圖書信息保存到數據庫。如下圖所示。圖4.3 圖書管理模塊界面(2)圖書管理模塊關鍵代碼 string name=req.getparameter(name);string zuozhe=req.getparameter(zuozhe);string chubanshe=req.getparameter(chubanshe);string chubanriqi=req.getparameter(chubanriqi);string isbm=req.getparameter(isbm);string price=req.getparameter(price);
30、string yeshu=req.getparameter(yeshu);string kucun=req.getparameter(kucun);string catelog_id=req.getparameter(catelog_id);string sql=insert into t_book values(?,?,?,?,?,?,?,?,?,?);object params=name,zuozhe,chubanshe,chubanriqi, isbm,price,yeshu,kucun, catelog_id,no;db mydb=new db();mydb.dopstm(sql, p
31、arams);mydb.closed();list booklist=new arraylist();string sql=select * from t_book where del=no;object params=;db mydb=new db();trymydb.dopstm(sql, params);resultset rs=mydb.getrs();while(rs.next()tbook book=new tbook();book.setid(rs.getint(id);book.setname(rs.getstring(name);book.setzuozhe(rs.getst
32、ring(zuozhe);book.setchubanshe(rs.getstring(chubanshe);book.setchubanriqi(rs.getstring(chubanriqi);book.setisbm(rs.getstring(isbm);book.setprice(rs.getstring(price);book.setyeshu(rs.getstring(yeshu);book.setkucun(rs.getstring(kucun);book.setcatelog_id(rs.getint(catelog_id);book.setdel(rs.getstring(d
33、el);booklist.add(book); rs.close();catch(exception e)e.printstacktrace();mydb.closed();req.setattribute(booklist, booklist);req.getrequestdispatcher(admin/book/bookmana.jsp).forward(req, res);4.4 讀者管理模塊(1)讀者模塊界面在該界面中首先輸入讀者基本信息。單擊“提交”按鈕,即可完成讀者錄入操作。如下圖4.4所示。圖4.4 讀者模塊界面(2) 讀者管理關鍵代碼 public void service(
34、httpservletrequest req,httpservletresponse res)throws servletexception, ioexception string type=req.getparameter(type);if(type.endswith(usermana)usermana(req, res);if(type.endswith(useradd)useradd(req, res);if(type.endswith(userdel)userdel(req, res);if(type.endswith(userall)userall(req, res);public
35、void useradd(httpservletrequest req,httpservletresponse res)string name=req.getparameter(name);string sex=req.getparameter(sex);string age=req.getparameter(age);string address=req.getparameter(address);string tel=req.getparameter(tel);string email=req.getparameter(email);string jiehao=req.getparamet
36、er(jiehao);string del=no;string sql=insert into t_user values(?,?,?,?,?,?,?,?);object params=name,sex,age,address,tel,email,jiehao,del;db mydb=new db();mydb.dopstm(sql, params);mydb.closed();req.setattribute(message, 操作成功);req.setattribute(path, user?type=usermana); string targeturl = /common/succes
37、s.jsp;dispatch(targeturl, req, res);public void userdel(httpservletrequest req,httpservletresponse res)string sql=update t_user set del=yes where id=+integer.parseint(req.getparameter(id);object params=;db mydb=new db();mydb.dopstm(sql, params);mydb.closed();req.setattribute(message, 操作成功);req.setat
38、tribute(path, user?type=usermana); string targeturl = /common/success.jsp;dispatch(targeturl, req, res);4.5 圖書借閱管理模塊(1)圖書借閱模塊界面管理員登陸系統后,點擊左面的菜單“圖書借閱管理”,頁面調轉到圖書借閱管理界面,錄入圖書借閱的基本信息。如圖書id、讀者id、借閱數量、借閱時間等,點擊保存按鈕,調用后臺的java類jieyueservlett把圖書借閱信息保存到數據庫。圖書借閱管理界面如下圖所示。圖4.5 圖書借閱模塊界面(2)借閱管理關鍵代碼 string user_id=r
39、eq.getparameter(user_id);string book_id=req.getparameter(book_id);string jieyueshuliang=req.getparameter(jieyueshuliang);string jieyueshijian=req.getparameter(jieyueshijian);string shifouguihuan=否;string guihuanshijian=;string del=no;string sql=insert into t_jieyue values(?,?,?,?,?,?,?);object param
40、s=integer.parseint(user_id), integer.parseint(book_id), integer.parseint(jieyueshuliang), jieyueshijian, shifouguihuan, guihuanshijian, del;db mydb=new db();mydb.dopstm(sql, params);mydb.closed();list jieyuelist=new arraylist();string sql=select * from t_jieyue where del=no;object params=;db mydb=ne
41、w db();trymydb.dopstm(sql, params);resultset rs=mydb.getrs();while(rs.next()tjieyue jieyue=new tjieyue();jieyue.setid(rs.getint(id);jieyue.setuser_id(rs.getint(user_id);jieyue.setbook_id(rs.getint(book_id);jieyue.setjieyueshuliang(rs.getint(jieyueshuliang);jieyue.setjieyueshijian(rs.getstring(jieyue
42、shijian);jieyue.setshifouguihuan(rs.getstring(shifouguihuan);jieyue.setguihuanshijian(rs.getstring(guihuanshijian);jieyue.setdel(rs.getstring(del);jieyue.setuser(liuservice.getuser(rs.getint(user_id);jieyue.setbook(liuservice.getbook(rs.getint(book_id);jieyuelist.add(jieyue); rs.close();catch(exception e)e.printstacktrace();mydb.closed();5 系統測試5.1 測試目的系統測試是為了發現錯誤而執行程序的過程。它不僅是軟件開發階段的有機組成部分,而且在整個軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業環保技術與減排策略
- 工業節能減排的技術路徑與措施
- 工作技能與專業能力的提升路徑
- 工作之余的健康營養生活方式養成建議
- 工作壓力下的時間分配藝術
- 工作場所技能需求的調研與分析
- 工程中遇到的技術難題與創新實踐
- 工程中的計算機仿真技術應用
- 工程師培訓中數據挖掘技術的應用
- 工程倫理在水利工程中的實踐研究
- 校服投標文件技術方案
- 2024屆廣東省中山市實驗中學數學高二第二學期期末學業質量監測試題含解析
- 數獨4宮練習題(全)
- 《物流運輸實務》課件
- 在幼兒園中打造有趣的數學學習環境
- 食品小作坊應急預案范本
- 2023全屋定制家具合同范文正規范本(通用版)
- 蘭州市新初一分班英語試卷含答案
- 吾心可鑒 澎湃的福流
- 黃平縣舊州飛機場紅磚廠原址改擴建項目環評報告
- 統計預測與決策-南京財經大學中國大學mooc課后章節答案期末考試題庫2023年
評論
0/150
提交評論