版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖書信息庫存管理系統(tǒng)1.課程設(shè)計的目的Java框架程序設(shè)計課程設(shè)計是計算機科學(xué)與技術(shù)專業(yè)的Java框架程序設(shè)計課程的綜合性實踐環(huán)節(jié)。Java框架設(shè)計是一門實用性很強的學(xué)科,是進行網(wǎng)頁開發(fā)的主要工具,只有進行實際操作,才能將理論知識和實際應(yīng)用有機的結(jié)合起來,鍛煉學(xué)生分析解決實際問題的能力,提高學(xué)生實際運用的能力,為學(xué)生畢業(yè)設(shè)計,日后工作中的軟件開發(fā)打下良好的基礎(chǔ)。圖書管理系統(tǒng)加入了數(shù)據(jù)庫的支持,使用了先進的數(shù)據(jù)庫技術(shù)與數(shù)據(jù)管理技術(shù),使數(shù)據(jù)的準確性與安全性得到了很大的提高,且在用戶的并行操作與用戶管理方面也有了極大地改善。就目前使用的開發(fā)技術(shù)來說建議系統(tǒng)的功能目標應(yīng)該能夠達到,利用現(xiàn)有的技術(shù)在規(guī)定
2、的期限內(nèi)開發(fā)工作基本能夠完成。創(chuàng)建圖書管理系統(tǒng)是為了改善圖書館圖書管理,所以系統(tǒng)一經(jīng)使用在經(jīng)費支出方面一定會得到很好的改善,用戶在使用了系統(tǒng)后只需要花一定資金購買一部分計算機與軟件就能實現(xiàn)自動化。它在提高工作效率的同時也減少了工作人員的使用量。2.功能描述2.1開發(fā)工具MyEclipse簡介MyEclipse企業(yè)級工作平臺(MyEclipseEnterprise Workbench ,簡稱MyEclipse),是在eclipse 基礎(chǔ)上加上自己的插件開發(fā)而成的功能強大的企業(yè)級集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動應(yīng)用的開發(fā)。MyEclipse的功能非常強大,支持也十分廣泛,尤其
3、是對各種開源產(chǎn)品的支持相當不錯。MyEclipse是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate 。Tomcat應(yīng)用服務(wù)器Tomcat是一個免費的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪
4、問這個應(yīng)用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會很快。2.2總體設(shè)計2.1.1需求分析(1) 用戶借書,管理員將用戶信息,圖書信息輸入系統(tǒng),系統(tǒng)則根據(jù)這些信息生成借閱單,存入借閱表。(2) 用戶還書,管理員將圖書信息輸入系統(tǒng)。未超期,系統(tǒng)根據(jù)圖書信息將相應(yīng)借閱單標記為已還和完結(jié),已超期,將相應(yīng)借閱單標記為已還,管理員要求罰款。用戶交錢后,借閱單標記為完結(jié),系統(tǒng)將超期信息記錄到超期表。(3) 用戶要續(xù)借某書,管理員將書號和用戶名輸入系統(tǒng),若相應(yīng)借閱單允許續(xù)借,標記為已續(xù)借,否則,不予續(xù)借。(4) 用戶將書遺失,管理員將遺失信
5、息輸入系統(tǒng),存儲至卡款記錄庫,系統(tǒng)執(zhí)行遺失操作,并要求用戶賠償。(5) 管理員對圖書進行錄入,刪除,修改,查詢操作,系統(tǒng)根據(jù)信息對圖書表進行改變。(6) 管理員對用戶進行添加,刪除,修改,查詢操作,系統(tǒng)根據(jù)信息對用戶表進行改變。(7) 系統(tǒng)提供借出記錄查詢,未還記錄查詢,超期記錄查詢,罰款記錄查詢,遺失記錄查詢。2.2.1功能框圖圖1總體功能框圖2.2.2E-R圖圖2E-R圖2.2.3現(xiàn)業(yè)務(wù)流程介紹與分析對于一個圖書管理系統(tǒng)來說,圖書的查詢及數(shù)據(jù)的維護管理是其中的核心環(huán)節(jié)。在現(xiàn)現(xiàn)行的圖書管理中存在幾個共同的問題:(1)圖書種類過多,數(shù)據(jù)龐大;這是幾乎所有圖書館都會遇到的共同問題,各種不同種類的
6、圖書館為這些圖書入庫,進行添加于維護增加了很多的難題,對這些數(shù)據(jù)的反復(fù)輸入,往往造成龐大的工作量和較低的效率。(2)查詢圖書困難,每天的借閱情況,讀者借閱的到期、還書情況,各項數(shù)據(jù)的匯總和統(tǒng)計情況必須由管理員統(tǒng)計上報,圖書庫總管理員才能考慮對圖書館的硬件如某類書的需求數(shù)量進行改變已向上級申報。(3)圖書毀壞及圖書破損;在借閱過程中難免此類現(xiàn)象的發(fā)生,如何及時發(fā)現(xiàn)及事后對毀壞圖書進行淘汰和更新也是個需要解決的問題。(4)不能及時歸還圖書;經(jīng)常有讀者超過借閱期的情況發(fā)生,對此類讀者的超期信息提示也是圖書借閱管理工作中必須解決的問題之一。軟件主要分為用戶管理,圖書管理,借閱管理,統(tǒng)計與查詢五大模塊。
7、用戶管理包括用戶的添加刪除,修改,查詢以及借書證的掛失與解掛。圖書管理包括對圖書的入庫,出庫,信息修改和查詢。借閱管理則主要包括借書,還書,續(xù)借,丟失圖書處理及違章后賠償處理?,F(xiàn)業(yè)務(wù)流程圖如圖3所示圖3現(xiàn)業(yè)務(wù)流程圖3.詳細設(shè)計3.1.1數(shù)據(jù)庫設(shè)計后臺管理頁面,主要實現(xiàn)業(yè)主投訴管理、業(yè)主報修管理、反饋信息受理、物業(yè)設(shè)備維修、業(yè)主停車位管理、業(yè)主費用管理、費用催繳管理和值班員工信息管理等功能。(1)book_t表用來保存圖書信息表1:book_t字段名稱數(shù)據(jù)類型長度備注idint4主鍵IDbookNamevarchar50書名authorvarchar50作者publisherVarchar50出
8、版社pricefloat8價格inTimedate10上架時間typeint4圖書類型operatorint4管理員ID(2)booktype_t表用來保存圖書類型相關(guān)信息如表2所示。表2:booktype_t字段名稱數(shù)據(jù)類型長度備注idint10類型IDnamevarchar15類型名3.2.2程序界面設(shè)計網(wǎng)站用戶登錄頁面用于提供用戶進行登錄,登錄后分兩種用戶權(quán)限,普通用戶和管理員用戶,普通用戶可以瀏覽圖書館現(xiàn)有藏書,管理員用戶可以對圖書館的圖書和圖書類別進行增刪改查操作,于已經(jīng)登錄的用戶,在藏書頁面將顯示用戶的相關(guān)信息。首頁主要是根據(jù)保存用戶名信息的Session參數(shù)來判斷用戶是否已經(jīng)登錄
9、。如圖4所示。圖4用戶登錄圖部分代碼如下:public String login()String username = request.getParameter(username);String password = request.getParameter(password);BookDao bd = new BookDao();User user = new User();List userlist= bd.login(username, password);if(userlist.size()=1)user=userlist.get(0);session.setAttribute(use
10、rinfo, user);return login;elsereturn errlogin; 普通用戶可以在本頁對網(wǎng)上圖書館現(xiàn)有藏書進行按書名或者分類搜索瀏覽,管理員具有管理權(quán)限,可以對圖書進行添加、修改、刪除、還可以對圖書類別進行管理。如圖5所示。圖5 普通用戶登錄圖6 管理員用戶登錄部分代碼如下:public String getList()String type =request.getParameter(bookType);String bookName = request.getParameter(bookName);BookDao bd = new BookDao();BookTy
11、peDao btd = new BookTypeDao();List BTlist = btd.getType();request.setAttribute(BTlist, BTlist);List list = bd.getUsersList(bookName, type);HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute(list, list);return getList;public List getUsersList(String bookName,String ty
12、pe)StringBuffer hqlsb =new StringBuffer( from Book a, BookType b where a.type=b.id);if(bookName!= & bookName!=null)try bookName = new String(bookName.getBytes(iso-8859-1),utf-8);System.out.println(bookName); catch (UnsupportedEncodingException e) e.printStackTrace();hqlsb.append( and a.bookName like
13、 %+bookName+%);if(type!= & type!=null)hqlsb.append( and a.type=+type);String hql = hqlsb.toString();System.out.println(hql); Query query = super.getSession().createQuery(hql); List list = query.list() ;return list; 管理員用戶具有對圖書進行添加的功能,上架時間是自動獲取當天的日期,圖書類型是動態(tài)獲取圖書館系統(tǒng)數(shù)據(jù)庫中圖書列別表中現(xiàn)有的類別顯示到下拉列表中。如圖7所示。圖7 添加圖書界
14、面當管理員用戶在登錄后,在圖書館瀏覽頁面可以看到添加圖書選項,點擊會自動跳轉(zhuǎn)到index!toAdd頁面來添加圖書。代碼如下:public String addBook()String bookName = request.getParameter(bookName);String author = request.getParameter(author);String publisher = request.getParameter(publisher);String price = request.getParameter(price);String inTime = request.ge
15、tParameter(inTime);String type = request.getParameter(type);String operator = request.getParameter(operator);try bookName = new String(bookName.getBytes(iso-8859-1),utf-8);author = new String(author.getBytes(iso-8859-1),utf-8);publisher = new String(publisher.getBytes(iso-8859-1),utf-8); catch (Unsu
16、pportedEncodingException e) e.printStackTrace();Book b = new Book();b.setBookName(bookName);b.setAuthor(author);b.setPublisher(publisher);b.setPrice(Float.parseFloat(price);b.setInTime(inTime);b.setType(Integer.parseInt(type);b.setOperator(Integer.parseInt(operator); BookDao bd = new BookDao(); bd.a
17、ddBook(b);return add;管理員用戶登錄后具有對圖書信息修改的功能,管理員可以看到圖書瀏覽頁面每條圖書記錄后具有對這本圖書進行修改的選項,單擊修改會進到修改這本書的詳情頁,自動獲取這本圖書的信息。圖8修改現(xiàn)有圖書信息界面部分實現(xiàn)代碼:public String update()String id = request.getParameter(id);String bookName = request.getParameter(bookName);String author = request.getParameter(author);String publisher = req
18、uest.getParameter(publisher);String price = request.getParameter(price);String inTime = request.getParameter(inTime);String type = request.getParameter(type);String operator = request.getParameter(operator);try bookName = new String(bookName.getBytes(iso-8859-1),utf-8);author = new String(author.get
19、Bytes(iso-8859-1),utf-8);publisher = new String(publisher.getBytes(iso-8859-1),utf-8); catch (UnsupportedEncodingException e) e.printStackTrace();Book b = new Book();b.setBookName(bookName);b.setAuthor(author);b.setPublisher(publisher);b.setPrice(Float.parseFloat(price);b.setInTime(inTime);b.setType
20、(Integer.parseInt(type);b.setOperator(Integer.parseInt(operator);b.setId(Integer.parseInt(id);BookDao bd = new BookDao();bd.editBook(b);return update;所有用戶都可以對圖書館現(xiàn)有大量圖書進行搜索,以便找到想要的圖書或者感興趣的書籍,可以根據(jù)圖書的名稱關(guān)鍵字進行模糊搜索,或者根據(jù)圖書類別進行搜索,或者聯(lián)合這兩個選項進行搜索。圖9圖書模糊搜索模塊 部分代碼實現(xiàn):public List getUsersList(String bookName,Strin
21、g type)StringBuffer hqlsb =new StringBuffer( from Book a, BookType b where a.type=b.id);if(bookName!= & bookName!=null)try bookName = new String(bookName.getBytes(iso-8859-1),utf-8);System.out.println(bookName); catch (UnsupportedEncodingException e) e.printStackTrace();hqlsb.append( and a.bookName
22、like %+bookName+%);if(type!= & type!=null)hqlsb.append( and a.type=+type);String hql = hqlsb.toString();System.out.println(hql); Query query = super.getSession().createQuery(hql); List list = query.list() ;5心得體會持續(xù)一周的Java EE課程設(shè)計已經(jīng)結(jié)束了,在這次課程設(shè)計中我努力完成了任務(wù),共同學(xué)習(xí)知識。雖然只是短短的時間,可是我把課堂里老師講的知識用到實踐中去了,感到非常高興。這次的課程
23、設(shè)計可以看作是一次理論與實踐相結(jié)合的橋梁,通過這次的課程設(shè)計,我學(xué)習(xí)到了許多的知識,也認識到了自己目前的不足,那就是缺乏相應(yīng)的知識與經(jīng)驗,所以在運用和操作方面都不是那么的得心應(yīng)手。但是,經(jīng)過這段時間對相關(guān)書籍的閱讀和分析,我順利的完成了設(shè)計,我還明白了在編寫程序的時候,應(yīng)該盡量使界面簡潔大方,布局統(tǒng)一。變量類型的定義,一定要夠用就好,這樣程序就可以盡可能的減少對系統(tǒng)資源的占用。在設(shè)計時也免不了存在著一些不足,所以在今后的學(xué)習(xí)中我會努力取得更大的進步,對于我們不足的地方希望老師能夠及時給予批評,以便我在今后的學(xué)習(xí)或工作中能夠及時的改正。總之,這次課程設(shè)計為我提供了與眾不同的學(xué)習(xí)方法,在書本中面對
24、現(xiàn)實,為我將來在社會上立足提供了良好的前提。人生有數(shù),學(xué)無止境,學(xué)習(xí)生活是無窮盡的,只有掌握更多的、更新的知識才能使自己始終立于不敗之地。如果只為現(xiàn)在所取得的成績而沉浸于喜悅、驕傲之中的話,那么,我想我們不會前進,只能停留在原來的地方,甚至還會倒退。所以我們應(yīng)該從這次課程設(shè)計中所暴露出的問題入手,不斷完善自己的欠缺和不足。相信此次課程設(shè)計為我們以后繼續(xù)從事計算機工作打下了扎實的基礎(chǔ),也明確了以后的學(xué)習(xí)方向。6參考文獻1穆丹. 集成JavaEE框架構(gòu)建MIS系統(tǒng)的研究與實現(xiàn)D.長安大學(xué),2013.2張紹林. 基于JavaEE5體系的聯(lián)網(wǎng)售票系統(tǒng)設(shè)計與實現(xiàn)D.天津大學(xué),2014.3王向兵. Jav
25、aEE多層架構(gòu)Struts2+Spring3+Hibernate3+Ajax的整合D.大連海事大學(xué),2014.4張俐,張維璽. 基于JavaEE的固定資產(chǎn)管理系統(tǒng)的設(shè)計與實現(xiàn)J. 計算機工程與設(shè)計,2014,16:3797-3800.5吳鋒. 基于SSI框架JavaEE技術(shù)研究D.合肥工業(yè)大學(xué),2013.6劉慧. 基于JavaEE的在線交易系統(tǒng)關(guān)鍵技術(shù)研究D.大連海事大學(xué),2014.7王瑞矯. 基于JavaEE的實訓(xùn)平臺的設(shè)計與實現(xiàn)D.北京郵電大學(xué),2015.8解智. 基于JavaEE輕量級架構(gòu)的安全電子拍賣系統(tǒng)設(shè)計D.武漢工業(yè)學(xué)院,2014.9王茜. 基于JavaEE的人事考核管理系統(tǒng)的設(shè)計
26、與實現(xiàn)D.廈門大學(xué),2014.10賈進. 基于JavaEE的統(tǒng)一信息平臺設(shè)計與實現(xiàn)D.廈門大學(xué),2014.附錄(部分源代碼)com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver:/localhost:1433;DatabaseName=testsaorg.hibernate.dialect.SQLServerDialecttrue/add.jsp/addsuccess.jspindex!getList/errlogin.jsp/list.jsp/update.jspindex!getListindex!getListindex!g
27、etListpackage web.controller;import java.io.UnsupportedEncodingException;import .URLDecoder;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletAction
28、Context;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import user.User;import web.dao.BookDao;import web.dao.BookTypeDao;import book.Book;import bookType.BookType;import com.opensymphony.xwork2.ActionSupport;import
29、domain.HomeNews;public class HelloAction extends ActionSupportHttpServletRequest request=ServletActionContext.getRequest();HttpSession session=request.getSession();public String toAdd()String temp_str=;Date dt=new Date();SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd);temp_str=sdf.format(dt);r
30、equest.setAttribute(date,temp_str);BookTypeDao btd=new BookTypeDao();ListBTlist=btd.getType();request.setAttribute(BTlist,BTlist);for(BookType u:BTlist)System.out.println(u.getName();request.setAttribute(BTlist,BTlist);returntoAdd;public String login()String username=request.getParameter(username);S
31、tring password=request.getParameter(password);BookDao bd=new BookDao();User user=new User();Listuserlist=bd.login(username,password);if(userlist.size()=1)user=userlist.get(0);session.setAttribute(userinfo,user);returnlogin;elsereturnerrlogin;public String addBook()String bookName=request.getParamete
32、r(bookName);String author=request.getParameter(author);String publisher=request.getParameter(publisher);String price=request.getParameter(price);String inTime=request.getParameter(inTime);String type=request.getParameter(type);String operator=request.getParameter(operator);trybookName=new String(boo
33、kName.getBytes(iso-8859-1),utf-8);author=new String(author.getBytes(iso-8859-1),utf-8);publisher=new String(publisher.getBytes(iso-8859-1),utf-8);catch(UnsupportedEncodingException e)e.printStackTrace();Book b=new Book();b.setBookName(bookName);b.setAuthor(author);b.setPublisher(publisher);b.setPric
34、e(Float.parseFloat(price);b.setInTime(inTime);b.setType(Integer.parseInt(type);b.setOperator(Integer.parseInt(operator);BookDao bd=new BookDao();bd.addBook(b);returnadd;public String getList()String type=request.getParameter(bookType);String bookName=request.getParameter(bookName);BookDao bd=new Boo
35、kDao();BookTypeDao btd=new BookTypeDao();ListBTlist=btd.getType();request.setAttribute(BTlist,BTlist);/User user=(User)session.getAttribute(users);Listlist=bd.getUsersList(bookName,type);HttpServletRequest request=ServletActionContext.getRequest();/session.setAttribute(users,user);request.setAttribu
36、te(list,list);returngetList;public String toupdate()String id=request.getParameter(id);BookDao bd=new BookDao();Book b=new Book();b=bd.getById(Integer.parseInt(id);request.setAttribute(Book,b);BookTypeDao btd=new BookTypeDao();ListBTlist=btd.getType();request.setAttribute(BTlist,BTlist);returntoupdate;public String update()String id=req
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 法務(wù)培訓(xùn)采購合同范本大全
- 政府采購委托合同書
- 企業(yè)臨時工勞務(wù)派遣合同
- 咨詢策劃服務(wù)合同范本
- 廠房改造裝修合同模板
- 水稻購銷合同協(xié)議書
- 《女性生殖生理》課件
- 知識圖譜支持下的城鄉(xiāng)規(guī)劃知識體系數(shù)字化建設(shè):優(yōu)勢、關(guān)鍵技術(shù)與構(gòu)建應(yīng)用
- 2025年果洛貨運上崗證考試題庫答案
- 冷軋變形對FeMnCrNi中熵合金在液態(tài)鉛鉍中腐蝕行為的影響
- 2024-2030年中國汽車駕駛培訓(xùn)市場發(fā)展動態(tài)與前景趨勢預(yù)測報告
- 中鐵十四局合同范本
- 醫(yī)院課件:《食源性疾病知識培訓(xùn)》
- 浙教版七年級數(shù)學(xué)下冊單元測試題及參考答案
- 華為人才發(fā)展與運營管理
- 卓有成效的管理者讀后感3000字
- 七年級下冊-備戰(zhàn)2024年中考歷史總復(fù)習(xí)核心考點與重難點練習(xí)(統(tǒng)部編版)
- 巖土工程勘察服務(wù)投標方案(技術(shù)方案)
- 實驗室儀器設(shè)備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 非標自動化設(shè)備技術(shù)規(guī)格書和驗收標準(模板)
評論
0/150
提交評論