版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
圖書管理系統(tǒng)Booksmanagementsystem學(xué)院:信息工程教學(xué)部班級:2023級計(jì)算機(jī)科學(xué)與技術(shù)一班小組:第一小組小組成員:韋亞勇〔組長〕、郭玨君、何志剛、楊海濱、宋偉楠、王文浩分工情況序號學(xué)號姓名完成內(nèi)容成績101002001韋亞勇所有內(nèi)容均有參與,著重在需求分析、詳細(xì)設(shè)計(jì)、庫表設(shè)計(jì)、代碼設(shè)計(jì)。201002021郭玨君參與詳細(xì)設(shè)計(jì)、代碼設(shè)計(jì)、庫表設(shè)計(jì)。301002023何志剛參與軟件測試、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)。401002022楊海賓參與概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)。501002042宋偉楠參與庫表設(shè)計(jì)、詳細(xì)設(shè)計(jì)。600868200王文浩參與庫表設(shè)計(jì)、詳細(xì)設(shè)計(jì)。開發(fā)方案2012年11月5日——2012年11月20日:進(jìn)行做需求分析,寫出需求分析文檔,確定系統(tǒng)需求,為以后設(shè)計(jì)做鋪墊。2012年11月21日——2012年11月25日:進(jìn)行概要設(shè)計(jì),寫出概要設(shè)計(jì)文檔,確定系統(tǒng)的初步構(gòu)架,為詳細(xì)設(shè)計(jì)奠定根底。2012年11月26日——2012年11月30日:做庫表設(shè)計(jì),寫建庫sql腳本文件,做出數(shù)據(jù)庫表,為以后與網(wǎng)頁的鏈接做前提。2012年12月1日——2012年12月5日:詳細(xì)設(shè)計(jì),寫出詳細(xì)設(shè)計(jì)文檔,對系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),做到能實(shí)現(xiàn)局部功能。2012年12月6日——2012年12月12日:編碼實(shí)現(xiàn)程序,對局部功能進(jìn)行編碼實(shí)現(xiàn),確保功能實(shí)現(xiàn)正確。2012年12月13日——2012年12月16日:測試,寫出測試報(bào)告文檔,檢測系統(tǒng)是否能正常運(yùn)行,每個(gè)功能是否還有缺陷。一、需求分析概述當(dāng)今時(shí)代是飛速開展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這使得計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其平安性。隨著Intranet的飛速開展,移動辦公和分布式辦公越來越普及,B/S(Browser/Server)架構(gòu)應(yīng)運(yùn)而生,并得到普遍應(yīng)用。B/S架構(gòu)最大的優(yōu)點(diǎn)就是客戶端無需安裝任何專用的客戶端軟件,只需配置瀏覽器〔如IntranetExplorer〕即可,這樣為程序的安裝、調(diào)試和維護(hù)帶來了極大的方便。ASP.NET所開發(fā)的應(yīng)用軟件一般都是B/S架構(gòu),用戶可直接通過瀏覽器來使用系統(tǒng),而無需安裝軟件的客戶端。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理。根據(jù)調(diào)查得知,以前對信息管理的主要方式是基于紙介質(zhì)的手工處理,對于圖書借閱情況〔如借書天數(shù)、超過限定借書時(shí)間的天數(shù)〕的統(tǒng)計(jì)和核實(shí)等往往采用對借書卡的人工檢查進(jìn)行,對借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易喪失,且不易查找。總的來說,缺乏系統(tǒng),標(biāo)準(zhǔn)的信息管理手段。現(xiàn)今,有很多的圖書館都是開始使用計(jì)算機(jī)進(jìn)行信息管理。使圖書管理工作進(jìn)入標(biāo)準(zhǔn)化,系統(tǒng)化,程序化的軌道,同時(shí)防止了圖書管理的隨意性,提高了信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書及用戶信息。開展趨勢處在知識經(jīng)濟(jì)形勢下的新信息浪潮,是以信息技術(shù)的高速興旺和全方位應(yīng)用為特征,以生產(chǎn)科學(xué)知識和信息為根底的,它形成了圖書管理的新的生存環(huán)境——信息和信息技術(shù)環(huán)境。新的世紀(jì)人類社會正面臨知識經(jīng)濟(jì)和信息社會的急劇變革,世界各個(gè)角落的人們都強(qiáng)烈地感受到新時(shí)代的沖擊與震撼。知識更新經(jīng)濟(jì)朝代和網(wǎng)絡(luò)時(shí)代的一些特征,已經(jīng)深入到人們的社會生活中。知識經(jīng)濟(jì)是以知識更新為根底的經(jīng)濟(jì),這各經(jīng)濟(jì)直接領(lǐng)帶于知識更新和信息的生產(chǎn)、擴(kuò)散和應(yīng)用。面對現(xiàn)代化管理,必須適應(yīng)信息世界的變化。新型的圖書管理軟件必須向現(xiàn)代化轉(zhuǎn)變。必須具有信息咨詢效勞、信息資源數(shù)據(jù)庫效勞、網(wǎng)絡(luò)信息效勞等代化效勞。網(wǎng)絡(luò)飛速開展的環(huán)境下,未來的圖書管理應(yīng)該以信息網(wǎng)絡(luò)為目的加快信息的傳播速度,提高信息效勞質(zhì)量.在網(wǎng)絡(luò)化條件下,圖書的借閱主要由計(jì)算機(jī)流通管理系統(tǒng)或讀者在自己的終端上自動完成。在完成方式上,更多地利用,移動通訊、電子郵件等來完成;在咨詢內(nèi)容上,更多的是關(guān)于信息源查詢、信息內(nèi)容的鑒定等內(nèi)容。系統(tǒng)基于互動的客戶/效勞模型,其系統(tǒng)結(jié)構(gòu)包括元數(shù)據(jù)效勞器、WEB應(yīng)用效勞器、對象數(shù)據(jù)效勞器、以及客戶端機(jī)等。系統(tǒng)應(yīng)該具備在開放式、異構(gòu)型環(huán)境中的運(yùn)行能力。1.2課題提出在當(dāng)今知識大爆炸的時(shí)代,圖書作為信息的一種載體,仍是人們獲得知識的一種重要途徑,因而作為圖書管理與借閱的圖書館,它的運(yùn)行情況那么關(guān)系到知識的傳播速度問題。以往舊的圖書管理模式完全是手工操作,從新書的購置、編碼、入庫、上架,到借閱、續(xù)借、歸還、查詢,無一不是人工處理,需要大量的勞動力與工作量,而且由于人為的原因造成一些錯(cuò)誤,也是再所難免的。當(dāng)讀者想要借閱一本書時(shí),首先要查詢大量的卡片,而且要有一定的圖書管理知識,才能很快的查到。自己想要的圖書,在借閱過程中還要填寫許多相關(guān)的卡片,使得圖書的管理效率低下,圖書流通速度較慢,因而從一定程度上也影響了知識的傳播速度。
學(xué)校作為教書育人的中堅(jiān)力量,圖書館的作用更是舉足輕重。學(xué)校圖書館要做到平安順暢的運(yùn)轉(zhuǎn),為廣闊同學(xué)提供良好的效勞,就必須有一套完善健全的運(yùn)行管理機(jī)制。聯(lián)系實(shí)際,考慮各層次學(xué)校的情況,軟件本身要求易學(xué),界面友好,容易掌握,可以較簡單方便的管理各種圖書信息;硬件的配置要求不能太高,這樣可以很好的適應(yīng)當(dāng)前的學(xué)校圖書館。系統(tǒng)的總體特點(diǎn)應(yīng)該是方便、簡單、實(shí)用。1.3處理需求本系統(tǒng)采用ASP語言實(shí)現(xiàn),開發(fā)平臺使用Dreamweaver8.0,數(shù)據(jù)庫使用SQLServer2005。ASP是一種網(wǎng)絡(luò)編程技術(shù),能夠支持動態(tài)網(wǎng)絡(luò)編程。Dreamweaver8.0是一種編輯網(wǎng)頁的工具,支持ASP、JSP、PHP等根本網(wǎng)絡(luò)技術(shù)及其語言。SQLServer2005可以簡化根本的數(shù)據(jù)庫操作,通過與VisualStudio工程的集成,數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì)和開發(fā)也變得更加簡單。此外,效勞和修補(bǔ)也得到了簡化和自動化。用戶的需求具體表達(dá)在各種對圖書館書籍信息的查詢、借閱、歸還、續(xù)借和資料的修改,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。二、概要設(shè)計(jì)概要設(shè)計(jì)的目的是通過本系統(tǒng)軟件,能幫助前臺操作人員〔讀者〕利用計(jì)算機(jī)快速方便的進(jìn)行圖書預(yù)定、圖書檢索等操作。概要設(shè)計(jì)的任務(wù)是根據(jù)需求分析得到的用例圖確定一個(gè)合理的軟件系統(tǒng)的體系結(jié)構(gòu),作為系統(tǒng)的詳細(xì)設(shè)計(jì)的根底和準(zhǔn)備。以下內(nèi)容為讀者借閱模塊的流程圖和結(jié)構(gòu)圖:2.1系統(tǒng)前臺運(yùn)行〔讀者借閱模塊〕流程圖用戶登陸用戶登陸讀者圖書檢索圖書借閱查詢個(gè)人信息查詢密碼修改圖2.1系統(tǒng)前臺運(yùn)行流程圖系統(tǒng)運(yùn)行流程圖描繪了讀者借閱模塊的總體運(yùn)行情況。瀏覽此圖可對整個(gè)基于web的圖書館管理系統(tǒng)的讀者借閱模塊有一個(gè)快速、清晰的認(rèn)識。上圖為基于web的圖書館管理系統(tǒng)的前臺運(yùn)行流程圖。2.2目標(biāo)系統(tǒng)體系結(jié)構(gòu)2系統(tǒng)前臺運(yùn)行〔讀者借閱模塊〕結(jié)構(gòu)圖讀者借閱讀者借閱模塊個(gè)人信息管理圖書檢索圖書操作密碼修改按圖書類別按書名按作者按書架按出版社圖書借閱查詢圖書到期查詢個(gè)人信息查詢圖系統(tǒng)前臺運(yùn)行結(jié)構(gòu)圖四、數(shù)據(jù)庫表設(shè)計(jì)讀者讀者圖書借還屬于角色學(xué)號用戶名密碼性別院系住址角色標(biāo)識出生年月書號書名分類號作者出版社價(jià)格摘要關(guān)鍵詞圖書狀態(tài)登記日期出版日期角色名稱n1mn角色標(biāo)識屬于圖書類型類型名類型號類型描述n1讀者:〔學(xué)號、用戶名、密碼、讀者性別、所在院系、家庭住址、聯(lián)系、出生年月、角色標(biāo)識〕圖書:〔書號、圖書名稱、所屬分類號、作者、出版社、價(jià)格、出版日期、摘要信息、關(guān)鍵詞、圖書狀態(tài)、登記日期〕角色:〔角色標(biāo)識、角色名稱〕借閱:〔借閱號、學(xué)號、書號、借書日期、還書日期、圖書的狀態(tài)〔是否借出〕、超出天數(shù)、罰款金額〕圖書類型:〔類型號、圖書類型名稱、圖書類型描述〕4.2數(shù)據(jù)庫結(jié)構(gòu)描述主要包括各個(gè)表結(jié)構(gòu)設(shè)計(jì)表User表(系統(tǒng)用戶信息數(shù)據(jù)表)表Book表(圖書信息表)表BorrowRec表(圖書借閱信息表)表BookType表(圖書類型表)表Role表(角色表)表之間的關(guān)系圖:以下是局部SQL腳本視圖局部:CREATEVIEW[dbo].[View_4]ASook.bookID,dbo.Reservation.bookIDASExpr1,dbo.BorrowRec.borrowRecID,dbo.BorrowRec.bookIDASExpr2,dbo.BorrowRec.readerIDASExpr3FROMdbo.BorrowRecINNERJOINdbo.ReservationONdbo.BorrowRec.readerID=dbo.Reservation.readerIDINNERJOIN'GOCREATEVIEW[dbo].[View_3]ASFROMdbo.UsersINNERJOIN'GOCREATEVIEW[dbo].[View_2]ASFROMdbo.BorrowRecINNERJOIN'GOCREATEVIEW[dbo].[View_1]ASSELECTdbo.BookType.bookTypeID,dbo.Book.bookTypeIDASExpr1FROMdbo.BookINNERJOIN'GO建表局部:〔生成腳本〕SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Users]')ANDtypein(N'U'))BEGINCREATETABLE[dbo].[Users]( [userID][nvarchar](50)NOTNULL, [userName][nvarchar](50)NULL, [userPassword][nvarchar](50)NULL, [userGender][bit]NULL, [userDepartment][nvarchar](50)NULL, [userAddress][nvarchar](50)NULL, [userPhone][nvarchar](50)NULL, [userBirthday][datetime]NULL, [roleID][int]NULL,CONSTRAINT[PK_Reader]PRIMARYKEYCLUSTERED( [userID]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Role]')ANDtypein(N'U'))BEGINCREATETABLE[dbo].[Role]( [roleID][int]IDENTITY(1,1)NOTNULL, [roleName][nvarchar](50)NULL,CONSTRAINT[PK_Role]PRIMARYKEYCLUSTERED( [roleID]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Book]')ANDtypein(N'U'))BEGINCREATETABLE[dbo].[Book]( [bookID][nvarchar](50)NOTNULL, [bookName][nvarchar](50)NULL, [bookIndex][nvarchar](50)NULL, [bookTypeID][int]NULL, [author][nvarchar](50)NULL, [publish][nvarchar](50)NULL, [price][money]NULL, [publishDate][datetime]NULL, [abstract][ntext]NULL, [keyword][nvarchar](50)NULL, [status][int]NULL, [registeDate][datetime]NULL,CONSTRAINT[PK_BookInfo]PRIMARYKEYCLUSTERED( [bookID]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[BookType]')ANDtypein(N'U'))BEGINCREATETABLE[dbo].[BookType]( [bookTypeID][int]IDENTITY(1,1)NOTNULL, [bookTypeName][nvarchar](50)NOTNULL, [bookTypeDesc][nvarchar](50)NULL)ON[PRIMARY]ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[BorrowRec]')ANDtypein(N'U'))BEGINCREATETABLE[dbo].[BorrowRec]( [borrowRecID][int]IDENTITY(1,1)NOTNULL, [readerID][nvarchar](50)NOTNULL, [bookID][nvarchar](50)NOTNULL, [beginDate][datetime]NULL, [endDate][datetime]NULL, [borrowStatus][bit]NULL, [overdueDays][int]NULL, [penalty][money]NULL,CONSTRAINT[PK_BorrowRec_1]PRIMARYKEYCLUSTERED( [borrowRecID]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]END存儲過程腳本:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_SearchBook]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROCEDURE[dbo].[Proc_SearchBook] (@bookTypeID int, @queryByCol [varchar](10), @Content [varchar](50) )ASbegindeclare@sqlnvarchar(1000)--生成的sql語句if@bookTypeID=0--0為“全部〞begin set@sql=''select*fromBookwhere''+@queryByCol+''like''''%''+@Content+''%'''''' execsp_executesql@sqlendelsebegin set@sql=''select*fromBookwhere[bookTypeID]=''+str(@bookTypeID)+''and''+@queryByCol+''like''''%''+@Content+''%'''''' execsp_executesql@sqlendend'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[proc_InAndOut]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEproc[dbo].[proc_InAndOut](@outParamintoutput,@inParamnvarchar(50))asifexists(select*from[user]whereuserName=@inParam)beginset@outParam=1;endelsebeginset@outParam=0;end'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_UpdateUserInfo]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROC[dbo].[Proc_UpdateUserInfo]@userIDNVARCHAR(50),……)ASUPDATEUsersSETuserDepartment=@userDepartment,......)WHEREuserID=@userID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_UsersDetail]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'createPROCEDURE[dbo].[Proc_UsersDetail] @UserID [varchar](50)ASSELECT*FROM[dbo].[Users]WHEREuserID=@UserID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetUserInfoByID]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROCEDURE[dbo].[Proc_GetUserInfoByID] @userIDVARCHAR(50)ASSELECT*FROM [dbo].[Users]WHERE userID=@userID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetUsers]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROCEDURE[dbo].[Proc_GetUsers]ASSELECT*FROMUsers'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_DeleteUsers]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'Createprocedure[dbo].[Proc_DeleteUsers]@userIDnvarchar(50)AS DELETEFROMUserswhereUserID=@userID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_UpdateUser]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROC[dbo].[Proc_UpdateUser](@userIDnvarchar(50),……)ASupdate[Users]setuserName=@userName,......whereuserID=@userID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetRole]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'createproc[dbo].[Proc_GetRole]AS SELECT*FROM[Role]'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetBooks]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'createPROC[dbo].[Proc_GetBooks]AS SELECT*FROMBook'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_DeleteBook]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROC[dbo].[Proc_DeleteBook]@bookIDnvarchar(50)ASDELETEFROMBookWHEREbookID=@bookID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetBookInfoByID]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROC[dbo].[Proc_GetBookInfoByID]@bookIDnvarchar(50)ASSELECT*FROMBookWHEREbookID=@bookID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_AddBook]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'createPROCEDURE[dbo].[Proc_AddBook] ( @bookID nvarchar(50),……)ASINSERTINTO[Book] ([bookID],……)VALUES (@bookID,……)'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetCurrentBorrow]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROCEDURE[dbo].[Proc_GetCurrentBorrow] @userIDVARCHAR(50)ASSELECT [dbo].[borrowRec].[readerID],…… FROM [dbo].[borrowRec], [dbo].[book]WHERE book.bookID=borrowRec.bookID ANDborrowStatus=''True'' ANDreaderID=@userID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_GetBorrowHistory]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEPROC[dbo].[Proc_GetBorrowHistory]@userIDNVARCHAR(50)ASSELECT*FROMBookWHEREbookIDIN(SELECTbookIDFROMBorrowRecWHEREreaderID=@userIDANDborrowStatus=''False'')'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_UpdateBookByID]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'CREATEproc[dbo].[Proc_UpdateBookByID]@bookIDnvarchar(50),……ASupdateBooksetbookName=@bookName,.....wherebookID=@bookID'ENDGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFNOTEXISTS(SELECT*FROMWHEREobject_id=OBJECT_ID(N'[dbo].[Proc_SelectBookType]')ANDtypein(N'P',N'PC'))BEGINEXECdbo.sp_executesql@statement=N'--=============================================--Author: <Author,,Name>--Createdate:<CreateDate,,>--Description: <Description,,>--=============================================CREATEPROCEDURE[dbo].[Proc_SelectBookType] --AddtheparametersforthestoredprocedurehereASBEGIN --SETNOCOUNTONaddedtopreventextraresultsetsfrom --interferingwithSELECTstatements. SETNOCOUNTON;--Insertstatementsforprocedurehere SELECTBookTypeID,BookTypeNameFROMBookTypeEND,END詳細(xì)設(shè)計(jì) 讀者讀者查詢個(gè)人信息圖書管理系統(tǒng)操作員管理員查詢圖書信息查看借閱情況修改密碼借書處理查看讀者借閱情況還書處理讀者信息管理圖書信息管理修改密碼5.2系統(tǒng)局部功能模塊具體分析及實(shí)現(xiàn)借書/還書處理功能的實(shí)現(xiàn)借書和還書是圖書借閱管理系統(tǒng)的一個(gè)最重要也是最根本功能。它在圖書管工作人員的操作下,對本公司(企業(yè))員工的借還書情況進(jìn)行錄入、修改、查詢等一系列的過程。在程序中,利用vbscript腳本語言實(shí)現(xiàn)畫面的控制,利用asp語言來實(shí)現(xiàn)對庫的操作和算法流程的控制。借書功能的具體實(shí)現(xiàn)借書是圖書管工作人員根據(jù)借閱者所借書籍的圖書編號〔當(dāng)然這個(gè)編號于每一本圖書是唯一的〕將該圖書登入借書表單,并對其借閱時(shí)間和借閱數(shù)量進(jìn)行控制的過程。因?yàn)樵撓到y(tǒng)是針對公司〔企業(yè)〕的圖書館進(jìn)行管理的,所以圖書借閱也僅對公司內(nèi)部人員進(jìn)行開放,所以借閱者必須根據(jù)自己的工號〔工作證編號〕和其它一些在公司的相關(guān)信息辦理讀者證后,工作人員根據(jù)借閱者所持讀者證的讀者證號〔該讀者的唯一標(biāo)識〕進(jìn)行查詢,如果該讀者在讀者信息數(shù)據(jù)庫中有記錄,那么調(diào)出該讀者個(gè)人信息和他〔她〕已借書籍的信息,如果讀者信息數(shù)據(jù)庫中無該讀者信息,那么此人不能借閱書籍。一般來說,只要該讀者信息真實(shí)存在,就可以借閱書籍了,但為了有效控制圖書的借閱秩序,對于有過期未還書籍的讀者和借書數(shù)目超過最大限制的讀者,不能繼續(xù)借書,此外,當(dāng)該讀者借閱了一本書后,系統(tǒng)應(yīng)即時(shí)顯示他〔她〕最新的借閱情況,如果借閱數(shù)目未滿,那么可以在原界面繼續(xù)操作〔借書〕。算法描述如下:首先導(dǎo)入數(shù)據(jù)庫連接,以便對讀者信息表和圖書根本信息表進(jìn)行查詢和修改,因?yàn)榻钑荒苁菗碛袌D書館工作人員以上的權(quán)限的人才能進(jìn)行的操作,所以在程序開始部份還應(yīng)先判斷一下用戶的權(quán)限,如果沒有工作人員的權(quán)限,那么要先進(jìn)行管理員登陸,即轉(zhuǎn)向登陸界面:〔此處用到“session“這個(gè)物件來[4]存取一個(gè)變量記錄登陸的用戶名,它可以在同一個(gè)客戶端多個(gè)翻開的瀏覽器之間傳遞變量值,如果用戶能過了管理員登陸,那么變量值不會為空,相反那么為空:ifsession("user_name")=""then導(dǎo)向管理員登陸界面endif接下來就是借書操作了://變量說明局部//readerno為讀者證號//borrowno為借書編號//number為是否標(biāo)志是否查詢的讀者信息是否存在,初始為1,表示有信息,如果輸入讀者證號后,沒有查到讀者信息,那么更新為0。//clickselect為是否查詢過讀者信息,即是否點(diǎn)擊過讀者信息的“查詢“按扭//booknumber統(tǒng)計(jì)已借書籍的數(shù)據(jù)量,初始化設(shè)為0,如果查到已借書籍大于或等于3時(shí),該變量設(shè)為3。//count統(tǒng)計(jì)過期第個(gè)讀者過期未還的書籍?dāng)?shù)目先查詢讀者證號,如果讀者證號為空,提示要求輸入。這里可以放在讀者證“查詢〞的單擊事件中:subreaderno_onclick//讀者證“查詢〞的單擊事件ifreaderno=""then//如果讀者證號為空,提示要求輸入顯示"請輸入讀者證號!"將光標(biāo)定位于讀者證號的輸入框endif clickselect="1"http://已查詢讀者信息 booknumber="0//借閱書目初始化為0提交當(dāng)前表單的信息 endsub查詢了讀者信息后,如果該讀者在數(shù)據(jù)庫中有記錄,而且已借書籍沒有超過去3本,那么可以借書,如果沒有記錄,那么屏蔽“借書〞的功能,要求用戶輸入正確的讀者證號:Ifreaderno<>""then根據(jù)readerno查詢讀者信息數(shù)據(jù)庫readerinformationif查詢的記錄數(shù)=0then提示用戶“無相應(yīng)記錄〞number="0"將光標(biāo)定位于讀者證號輸入框結(jié)束后面的ASP程序的運(yùn)行,即不再查詢已借書目信息else顯示讀者的個(gè)人信息endififreaderno<>""orborrowno<>""then根據(jù)readerno將book_input與reaerinformation關(guān)聯(lián)起來查詢book_input中l(wèi)oaner(借閱者)為readerno的所有圖書信息 if查詢的記錄數(shù)=0then顯示“沒有借書記錄〞elseif已借書記錄>=3then顯示"你的書已借滿"booknumber="3"endifIf已借書記錄<=3and已借書記錄>0thenForI=1to已借書記錄數(shù)顯示已借的書目信息dd=讀取數(shù)據(jù)庫中“借閱日期〞字段ifdd<>""thenif當(dāng)前日期-當(dāng)前讀取的借閱日期>60thencount=count+1 endifendifNextendifendififcount<>0then提示"你有過期未還的書!"更新book_input中剛查到的過期未還的書的book_state為1更新readerinfomation中該讀者的reader_state為1endifEndififbooknumber>=3orcount<>0then屏蔽“借書“功能,即不顯示借書按扭endif假設(shè)未屏蔽借書功能,那么可以借書先輸入借書編號,按下借書按扭,如果編號為空,要求輸入,如果未查詢讀者證號就點(diǎn)擊借書按扭,那么提示用戶先查詢讀者證號后,此段程序可放入借書按扭單擊事件中:subborrowbook ifreaderno=""then顯示"請先查詢借書者的讀者證號!" elseifborrowno=""then顯示"請輸入借書編號" endif提交當(dāng)前表單信息 endsub提交信息后,除運(yùn)行上面的程序外,還要執(zhí)行提交狀態(tài)后的程序:ifborrowno<>""then查詢book_input中的book_no為borrowno記錄if查詢記錄數(shù)<>0if是否已借字段內(nèi)容=1then 顯示"該書已借出!"else是否已借字段內(nèi)容=1借閱日期字段=今天的日期借閱者字段=當(dāng)前輸入的讀者證號endif else顯示"沒有這本書!" endifendif在借書這個(gè)程序中,我們利用讀者證號這個(gè)關(guān)鍵字,把讀者信息表和圖書根本信息表聯(lián)系起來,多方面考慮問題,把借書過程中可能出現(xiàn)的狀況,都要一一考慮進(jìn)來,方便能工作人員和讀者。還書功能的具體實(shí)現(xiàn)還書是在借書的根底上來操作的過程,總的原那么是,沒有借書,就沒有還書,還書所要實(shí)現(xiàn)的功能,在某種程度上和借書是相似的,同樣要提示讀者是否有過期未還的書,此時(shí)也需要對庫中的信息進(jìn)行更改。還書以后,也要即時(shí)的反潰當(dāng)前的借書狀況,以便讀者和工作人員知道“還書〞是否操作成功。與借書相比,借書是通過讀者證號和圖書編號來登記,而還書只需要且必須要圖書編號來登記還書。當(dāng)查到該編號的圖書,而且確實(shí)是未還圖書,那么將顯示還書者的讀者信息和所有他(她)的已借書目信息.我們要實(shí)現(xiàn)的目標(biāo)是盡可能方便能的操作和盡可能直觀的反潰!所以我們采用輸入圖書編號來還書的同時(shí),查閱出借該書的讀者的所有借書記錄,只要點(diǎn)擊所列出的該讀者借書記錄中的某一條,就可以還這本書.還有一點(diǎn)是還書需要處理的,那就是續(xù)借,如果讀者想要續(xù)借,應(yīng)該很方便的進(jìn)行,與還書一樣,只要點(diǎn)擊要續(xù)借的書按“續(xù)借〞即可,但是要考慮如果該書已過期,那么不能續(xù)借。算法描述如下:首先導(dǎo)入數(shù)據(jù)庫連接,以便對讀者信息表和圖書根本信息表進(jìn)行查詢和修改:<!--#includefile="data_cnn.inc"-->因?yàn)檫€書只能是擁有圖書館工作人員以上的權(quán)限的人才能進(jìn)行的操作,所以在程序開始部份還應(yīng)先判斷一下用戶的權(quán)限,如果沒有工作人員的權(quán)限,那么要先進(jìn)行管理員登陸,即轉(zhuǎn)向登陸界面,這局部的操作和借書是一樣的:ifsession("user_name")=""then導(dǎo)向管理員登陸界面endif接下來是還書的操作://變量說明局部//returnno為還書編號 //state表示當(dāng)前有無可還書的記錄//reloan表示是否要續(xù)借//step表示是否提交過表單,1-初始狀態(tài),2-已經(jīng)提交//reader_no表示還書者讀者編號//book_no表示當(dāng)前要還的或要續(xù)借的圖書編號//count表示當(dāng)前有沒有過期未還的書subreturn//還書按扭單擊事件ifreturnno=""then顯示"請輸入還書編號!"光標(biāo)定位到輸入還書編號欄else step=1帶上還書編號提交表單endif接下是查詢該還書編號的書Ifrequest("returnno")<>""then在數(shù)據(jù)庫中查詢該編號的圖書 if查詢的記錄數(shù)=0andreader_no=""then提示“可能輸入了無效的圖書編號或該書沒有借出,請重輸!〞結(jié)束程序的繼續(xù)執(zhí)行 else對將要顯示的當(dāng)前所要還的書籍的表格中的借閱者,書籍編號,書名,作者,借閱日期單元格的內(nèi)容填值if當(dāng)前日期-借閱日期>60then更改讀者信息表中的reader_state為1提示用戶“你的書已過期!〞endif//根據(jù)借閱者的讀者證號查詢該讀者的相關(guān)信息sqlstr2="select*frombook_readerinfowherereader_no='"&loaner&"'"對要顯示讀者信息的欄位賦值endif如果找到了要還的書,便可以還書或續(xù)借了ifreturnno=""then顯示"請先輸入還書編號"光標(biāo)定位于還書編號 exitsubendif ifstate="no"then光標(biāo)定位于還書編號 exitsub endif ifbook_no=""then顯示"請選擇要還的書!" exitsub endifreturn_book.submit//提交當(dāng)前表單*****以上這段程序可以放在借書按的單擊事件中*****以下是續(xù)借按扭的單擊事件的算法subcontiborrow//續(xù)借按扭單擊事件ifbook_no=""then顯示"請選擇要續(xù)借的書!" exitsubendifreloan="yes"提交表單endsub提交表單后,要對庫中的數(shù)據(jù)表進(jìn)行還書和續(xù)借的操作了從提交的表單中提取所有的讀者信息和當(dāng)前所要還的圖書編號 count=0//設(shè)當(dāng)前無過期書籍 ifbook_no<>""andreader_no<>""then if當(dāng)前日期-借閱日期>60then ifreloan="yes"then提示"書已過期,不能續(xù)借!"不再做任何更改庫中記錄的操作,所回續(xù)借前的狀態(tài)結(jié)束ASP程序的運(yùn)行 endif endififreloan="yes"then將當(dāng)前書籍的借閱日期減一個(gè)月,因?yàn)槔m(xù)借只能是一個(gè)月else復(fù)原當(dāng)前所還書籍的借閱者,借閱日期,是否借閱為初始狀態(tài)。 //再一次查找當(dāng)前還書者的所有借書情況sqlstr3="select*frombook_inputwhereisloan=1andloaner='"&reader_no&"'" if查詢記錄數(shù)>0then fori=1to查詢記錄數(shù)//查找在還了當(dāng)前所要還的書以后是否還有過期未還的書if當(dāng)前-借閱日期>60then count=count+1 endif next ifcount=0then將當(dāng)前的還書者的狀態(tài)reader_state復(fù)原為0 endif else//如果已經(jīng)沒有要還的書籍將當(dāng)前的還書者的狀態(tài)reader_state復(fù)原為0 endif endif 編碼實(shí)現(xiàn)程序6.1管理員及用戶登陸界面(adminlogin.asp)管理員登陸界面主要功能是實(shí)現(xiàn)管理員的登陸,其主要代碼如下:程序清單:ifSession("username")="admin"ThenResponse.Redirect("sele_dele_messages.asp")Endif%><html><head><meta-equiv="Content-Type"content="text/html;charset=gb2312"><title>登陸界面</title><styletype="text/css"></head><body><divalign="center"><imgsrc="Images/BackGround_Top0.gif"alt="dl"width="1024"height="100"hspace="100"align="middle"/></div><p> </p><p> </p><p> </p><tablewidth="43%"border="0"align="center"><tralign="center"bgcolor="#00FFFF"><tdcolspan="3"><spanclass="STYLE2">圖書管理系統(tǒng)登錄</span></td></tr><tralign="center"bgcolor="#99FF00"><tdwidth="27%"height="40"><spanclass="STYLE3">用戶名:</span></td><tdwidth="47%"valign="middle"><tablewidth="90%"border="1"align="center"><trbgcolor="#FFFFFF"><tdheight="24"> </td></tr></table></td><tdwidth="26%"> </td></tr><tralign="center"bgcolor="#99FF00"><tdheight="45"><spanclass="STYLE3">密碼:</span></td><td><tablewidth="90%"height="30"border="1"><tralign="left"valign="middle"bgcolor="#FFFFFF"><td> </td></tr></table></td><td> </td></tr><tralign="center"bgcolor="#00FFFF"><tdheight="40"colspan="2"><ahref="Operater/opt3.html"><imgsrc="Images/Login.GIF"alt="dlbt"width="65"height="29"border="0"/></a></td><tdheight="40"> </td></tr><p></table><inputtype="submit"value="登錄"><inputtype="reset"value="全部重填"></p></form></body></html>程序清單<%OptionExplicit%><%DimuserName,passworduserName=Trim(Request.Form("txtUserName"))password=Trim(Request.Form("pwdPassword"))DimstrDSNDimconnGuestbookstrDSN="Proviser=NSDASQL;DRIVER={SQLNativeClient};SERVER=localhost;DATABASE=Guestbook;UID=manager;PWD=123456"SetconnGuestbook=Server.CreateObject("ADODB.Connection")connGuestbook.OpenstrDSNDimrsAdminsDimstrSqlSelectAdminsSetrsAdmins=Server.CreateObject(“ADODB.Recordset〞)strSqlSelectAdmins=〞SELECT*FROMAdminsWHEREusername=’〞+username+〞’Andpassword=’〞+password+〞’〞r(shí)sAdmins.OpenstrSqlSelectAdmins,connGuestbookifNotrsAdmins.EofthenSession(“username〞)=usernameResponse.Redirect(“sele_dele_messages.asp〞)EndIf%><html><head><meta-equiv=〞Content-Type〞content=〞text/html;charet=gb2312”><title>留言板</title></head><body><divalign="center"><imgsrc="Images/BackGround_Top0.gif"alt="dl"width="1024"height="100"hspace="100"align="middle"/></div><p> </p><p> </p><p> </p><tablewidth="43%"border="0"align="center"><tralign="center"bgcolor="#00FFFF"><tdcolspan="3"><spanclass="STYLE2">圖書管理系統(tǒng)登錄</span></td></tr><tralign="center"bgcolor="#99FF00"></td></tr><tdcolspan=〞2”Width=〞542”height=〞1”><hr></td></tr></table>用戶名或密碼錯(cuò)誤!<br><br>單擊<ahref=〞logon.asp〞>重新登錄</a></body></html>2.退出登錄:<%Session(“username〞)=〞〞Response.Redirect(“sele_disp_message.asp〞)%>6.2管理員操作平臺界面〔admin_alterinfo.asp〕管理員操作平臺,包括:管理員用戶對圖書的查詢、借閱者圖書的歸還、圖書的借閱、圖書的添加、圖書的刪除、查詢用戶、添加用戶和刪除用戶功能模塊。6.3圖書借閱界面(jieshu.asp)管理員用戶通過借閱者的學(xué)號以及所借書號,對用戶實(shí)現(xiàn)借書。實(shí)現(xiàn)該功能的主要代碼如下:<tableborder="0"align="center"cellpadding="0"cellspacing="0"><tr><td> </td><tdcolspan="2"><divalign="center"class="title">借閱圖書</div></td><td> </td></tr><tr><td><imgname="img"src=""width="120"height="8"alt=""></td><tdclass="style3"><imgname="img"src=""width="80"height="8"alt=""></td><td><imgname="img"src=""width="80"height="8"alt=""></td><td><imgname="img"src=""width="120"height="8"alt=""></td></tr><tr><td> </td><tdvalign="bottom"class="style4"> </td><td> </td><td> </td></tr><tr><td> </td><tdvalign="bottom"class="style4"><divalign="center"class="style3">輸入學(xué)號:</div></td><tdvalign="bottom"><divalign="center"><inputname="xuehao"type="text"class="style3"size="10"></div></td><td> </td></tr><tr><td> </td><tdclass="style2"> </td><td> </td><td> </td></tr><tr><td> </td><tdvalign="bottom"class="style4"><divalign="center"class="style3">輸入書號:</div></td><tdvalign="bottom"><divalign="center"><inputname="shuhao"type="text"class="style3"size="10"></div></td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td><divalign="center"><inputtype="Submit"class="style3"value="確認(rèn)"></div></td><td><divalign="center"><inputtype="reset"class="style3"value="重新輸入"></div></td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr></table>〔huanshu.asp〕管理員用戶通過借閱者的學(xué)號以及所借書號,對用戶實(shí)現(xiàn)還書。6.5圖書查詢界面〔guest.asp〕借閱者用戶和管理員用戶均可選擇性地查詢圖書,類型包括:書號、書名、作者、出版社、單價(jià)、圖書類型。按照書號條件查詢:strsql="select*from圖書表where書號='"&shuhao&"'"代碼:<!DOCTYPEhtmlPUBLIC"-//W3C/
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度數(shù)據(jù)中心機(jī)房租賃及IT設(shè)備租賃合同3篇
- 西安高新科技職業(yè)學(xué)院《非線性編輯》2023-2024學(xué)年第一學(xué)期期末試卷
- 溫州醫(yī)科大學(xué)《民法前沿問題專論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度在線醫(yī)療咨詢用戶隱私保護(hù)合同3篇
- 二零二五年教室租賃及教育資源共享與校園環(huán)境維護(hù)協(xié)議3篇
- 二零二五年度道路交通事故預(yù)防責(zé)任合同書范本2篇
- 2024版建筑工程一切險(xiǎn)保險(xiǎn)合同
- 2024股權(quán)轉(zhuǎn)讓協(xié)議完整模板
- 唐山幼兒師范高等專科學(xué)?!渡镄畔W(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版光伏發(fā)電站鋪裝工程合同
- 綠色簡潔商務(wù)匯總報(bào)告PPT模板課件
- 下肢皮牽引護(hù)理PPT課件(19頁P(yáng)PT)
- 臺資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 參會嘉賓簽到表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評論
0/150
提交評論