版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、XX大學(xué)畢業(yè)論文(設(shè)計)題 目: 圖書管理系統(tǒng) 指導(dǎo)老師: 學(xué)生姓名: 所屬院系: 信息科學(xué)與工程學(xué)院專 業(yè): 計算機科學(xué)與技術(shù) 班 級: 完成日期: 目錄1 緒論11.1 開發(fā)背景11.2 開發(fā)工具的選用及介紹12總體分析與設(shè)計32.1系統(tǒng)分析32.2 系統(tǒng)目標(biāo)32.3總體需求42.4系統(tǒng)模塊流程圖52.5數(shù)據(jù)庫設(shè)計63 詳細設(shè)計83.1 用戶登陸頁面83.2圖書查詢頁面93.3統(tǒng)計超期113.4數(shù)據(jù)庫備份和還原123.5圖書添加133.6用戶管理153.7最新添加的圖書163.8圖書分類瀏覽173.9給超期用戶發(fā)消息提醒184畢業(yè)設(shè)計小結(jié)205致謝216參考文獻221 緒論當(dāng)今時代是飛速發(fā)
2、展的信息時代。在各行各業(yè)中離不開信息處理,計算機被廣泛應(yīng)用于B/S系統(tǒng)環(huán)境。計算機的好處在于它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了安全性。對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書信息而設(shè)計的。 1.1 開發(fā)背景圖書管理包括的圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書管理系統(tǒng)都是初步開始使用,甚至尚未使用計算機進行信息管理。以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天
3、數(shù))的統(tǒng)計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計算、手抄進行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是圖書管理系統(tǒng)開發(fā)所要解決的問題。基于這此問題,有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時、準(zhǔn)確、有效的進行查詢和修改圖書情況等圖書管理操作。1.2 開發(fā)工具的選用及介紹1.2.1 ASP簡介Active Server
4、 Pages:是一套微軟開發(fā)的服務(wù)器端腳本環(huán)境,ASP內(nèi)含于IIS之中 , 通過ASP我們可以結(jié)合 HTML 網(wǎng)頁、ASP 指令和 ActiveX元件建立動態(tài)、交互且高效的WEB服務(wù)器應(yīng)用程序。有了ASP你就不必?fù)?dān)心客戶的瀏覽器是否能運行你所編寫的代碼,因為所有的程序都將在服務(wù)器端執(zhí)行,包括所有嵌在普通 HTML中的腳本程序。當(dāng)程序執(zhí)行完畢后,服務(wù)器僅將執(zhí)行的結(jié)果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負(fù)擔(dān),大大提高了交互的速度。 1.2.2 Dreamweaver簡介Dreamweaver是Macromedia公司最新推出的主頁編輯工具。這是一個所見即所得主頁編輯器,并帶有站點管理功能
5、,讓你方便地設(shè)計和管理多個站點。而它最棒的地方就是支持最新的DHTML和CSS標(biāo)準(zhǔn), 你可以用它設(shè)計出生動的DHTML動畫、多層次的頁面(layer)以及CSS樣式表。 1.2.3 Microsoft SQL Server 2000簡介SQL是英文(Structured Query Language)的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle, Sybase
6、, Microsoft SQL Server, Access等都采用了SQL語言標(biāo)準(zhǔn)。SQL語言有以下幾個優(yōu)點:1 非過程化語言 SQL是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進行操作,可操作記錄集,所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。SQL不要求用戶指定對數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引
7、,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。2. 統(tǒng)一的語言 SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時間就能學(xué)會,最高級的命令在幾天內(nèi)便可掌握。3. 所有關(guān)系數(shù)據(jù)庫的公共語言 由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))轉(zhuǎn)到另一個,所有用SQL編寫的程序都是可以移植的。2總體分析與設(shè)計2.1 系統(tǒng)分析圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開
8、發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。 在數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的基本概念,數(shù)據(jù)庫的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識。數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用??紤]到使用的方便性,程序用ADO技術(shù)來操作數(shù)據(jù)庫,免去了注冊DSN步驟。因此本人結(jié)合上述要求對MS SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)、
9、SQL語言原理、ASP程序設(shè)計,ADO數(shù)據(jù)庫技術(shù)進行了較深入的學(xué)習(xí)和應(yīng)用。2.2 系統(tǒng)目標(biāo)(1)用戶方便進行圖書查詢,圖書瀏覽和圖書分類瀏覽,進行圖書借閱并了解自己的借書情況和個人情況。(2)用戶在借書超期的情況下得到來自管理員的提醒。(3)管理員可以方便進行圖書管理,用戶管理,管理員管理。圖書管理包括圖書信息以及圖書分類的添加,修改,刪除。用戶管理包括用戶信息的添加,刪除,修改和鎖定(限制用戶的正常使用功能,使其無法登陸)。管理員管理包括管理員信息的添加,刪除,修改等。(4)用戶和管理員可以修改自己的密碼,修改前需先核實自己的原始密碼。(5)未注冊用戶(游客)也可以瀏覽所有的圖書信息和分類信
10、息,但是無法借閱。 (6)實現(xiàn)模糊查詢,使用戶得到更多的相關(guān)記錄。并且考慮使用的方便性,一些經(jīng)常使用的輸入無須用戶輸入,比如進行圖書查詢時圖書分類只須用戶做選擇就可以。(7)考慮程序執(zhí)行操作時可能出現(xiàn)的情況,比如刪除圖書分類時該分類下存在圖書,程序自動跳轉(zhuǎn)該分類圖書查看。刪除某個用戶,如果存在借書記錄則不允許刪除,跳轉(zhuǎn)到該用戶的借書記錄。等待管理員確認(rèn)該用戶所借圖書已經(jīng)全部歸還之后才允許刪除該用戶信息。2.3總體需求圖書管理系統(tǒng)是一項復(fù)雜系統(tǒng)工程,要從實際出發(fā),對實際情況進行客觀的分析,深入了解需求。系統(tǒng)利用Asp與數(shù)據(jù)庫結(jié)合的技術(shù)建立數(shù)據(jù)庫管理系統(tǒng),采用交互式的動態(tài)的Asp頁面來實現(xiàn)。需求調(diào)
11、查是為了研究系統(tǒng)設(shè)計的開發(fā)途徑和方法。同時它也是進行概要設(shè)計和詳細設(shè)計的基礎(chǔ),是進行內(nèi)部維護和測試的依據(jù)。具體分析如下:添加操作:在執(zhí)行操作時首先都要先檢查是否已經(jīng)輸入以及數(shù)據(jù)庫中是否已經(jīng)存在輸入的數(shù)據(jù),如果存在會報錯,程序返回上個頁面,不執(zhí)行添加操作。刪除操作:考慮到了字段在不同表中可能會同時存在的情況,比如:刪除圖書分類時候該分類下有書或者刪除用戶時該用戶有借書記錄,這樣的情況下程序會給出提醒并跳轉(zhuǎn)到該分類下的所有圖書查看或者是該用戶的全部借書查看。直到這種關(guān)聯(lián)取消掉之后才允許進行刪除這樣的危險操作。查詢操作:考慮到了模糊查詢的實現(xiàn), SQL語句中用“l(fā)ike”,還有組合查詢,通過對用戶輸
12、入情況的判斷來確定SQL語句的最終形式,比如用戶查詢時并未輸入圖書名字,就是名字匹配任意字符,那么程序給數(shù)據(jù)庫的SQL語句就會是name like %。組合查詢的實現(xiàn)也是程序判斷用戶所做的選擇或者輸入,在SQL語句中實現(xiàn)的。超期統(tǒng)計:假定借書超期的限制是三十天,借書記錄中的所有數(shù)據(jù)的借書時間如果不在當(dāng)前服務(wù)器時間減去三十天和當(dāng)前服務(wù)器時間之間,那么這條借書記錄就屬于超期記錄了。由用戶借書記錄中的用戶編號到用戶表中查找該用戶。發(fā)送消息:往消息表中添加數(shù)據(jù),該數(shù)據(jù)包含用戶名,用戶超期的圖書,超期時間,罰金等相關(guān)警告信息。當(dāng)用戶正常登陸主頁后,程序自動檢查消息表中是否存在該用戶的記錄,如果有要給出提
13、示,但是沒有強制用戶必須查看。數(shù)據(jù)庫備份和還原操作:程序只要告訴SQL 服務(wù)器執(zhí)行備份和還原SQL語句就可以實現(xiàn),在還原時程序還在使用系統(tǒng)數(shù)據(jù)庫,此時執(zhí)行還原操作會因為沒有排它使用權(quán)出現(xiàn)錯誤,所以應(yīng)告訴SQL 服務(wù)器使用另外的一個數(shù)據(jù)庫,程序中用的是:use master。還原操作時用FSO組件首先檢查備份數(shù)據(jù)庫文件是否存在,如果不存在則給出提示回到上個頁面。所有條件都允許后則執(zhí)行還原操作,如果數(shù)據(jù)庫數(shù)據(jù)比較多,備份和還原的時間都可能會比較長。登陸頁面游客操作頁面用戶操作頁面管理員操作頁面2.4系統(tǒng)模塊流程圖2.4.1 系統(tǒng)登陸流程圖用戶操作頁面消息查看修改密碼退出登陸分類查看圖書查詢?nèi)繄D書
14、查看借書詳情還書2.4.2 用戶流程圖管理員操作頁面修改密碼備份還原數(shù)據(jù)庫所有圖書及分類查看圖書查詢統(tǒng)計超期添加,刪除分類添加,刪除圖書用戶,管理員相關(guān)2.4.3 管理員流程圖2.5數(shù)據(jù)庫設(shè)計表2.5.1 管理員字段類型長度必填字段允許空格備注ID數(shù)字id主鍵name文本50是否名字pwd文本50是否密碼表 2.5.2 圖書信息字段類型長度必填字段允許空值備注id數(shù)字否id主鍵booktype文本50是否圖書類別publishing文本50是否出版社bookmoney數(shù)字20是否貨幣pdate日期時間是否出版時間bookname文本50是否圖書名稱num數(shù)字8是否圖書數(shù)量表 2.5.3 圖書類
15、別字段類型長度必填字段允許空值備注idid主鍵booktype文本50是否圖書類別表 2.5.4 借出信息字段類型長度必填字段允許空值備注id數(shù)字否id主鍵bid數(shù)字50是否圖書編號time日期時間借書時間uid數(shù)字20是否用戶編號表2.5.5 消息表字段類型長度必填字段允許空值備注id數(shù)字否id主鍵content文本500是否消息內(nèi)容uid數(shù)字20是否用戶編號表2.5.6 用戶表字段類型長度必填字段允許空值備注id數(shù)字否id主鍵name文本50是否名字pwd文本50是否密碼lock是/否是否鎖定loan_num數(shù)字20是否借書數(shù)量3 詳細設(shè)計3.1 用戶登陸頁面該頁面用于用戶登陸,包括游客,
16、用戶和管理員。成功登陸則取得用戶的session用于以后的操作權(quán)限認(rèn)定。程序執(zhí)行時首先判斷用戶類型,如果是游客則對session賦值為游客類型,然后直接進入主頁;如果不是游客則執(zhí)行查詢語句,看數(shù)據(jù)庫中是否存在這樣的用戶名和密碼,根據(jù)選擇用戶類型的不同在不同的表中進行操作,成功則進入主頁,否則提示輸入錯誤。截圖如下:圖3.1.1 用戶登陸代碼:<link href="style.css" type="text/css" rel="stylesheet"><!-#include file="conn.asp&q
17、uot;-><% if request("login")<>"" then if request("usertype")<>"" then '用戶類型不空,核實數(shù)據(jù)真實If Request("usertype")="user" Thensql = "select * from u where name='"&request("name")&"' and
18、 pwd='"&request("pwd")&"'"Else sql = "SELECT * FROM admin WHERE name='"&Request("name")&"' and pwd='"&Request("pwd")&"'"End IfSet rs=db.execute(sql)If not rs.EOF Or Not rs.BOF T
19、hen '輸入數(shù)據(jù)存在If Request("usertype")="user" ThenIf rs("lock") Then response.Write"<script>alert('您已被鎖定了!');window.location.href='login.asp'</script>"elseSession("usertype")="user"Session("userid")=rs(&
20、quot;id")Session("name")=rs("name")Response.Redirect("index.asp")end ifElseSession("usertype")="admin"Session("adminid")=rs("id")Session("name")=rs("name")Response.Redirect("index.asp")End IfElse
21、 response.Write"<script>alert('輸入錯誤!');window.location.href='login.asp'</script>"rs.close End if else'用戶類型空 response.Write"<script>alert('沒有選擇用戶類型!');window.location.href='login.asp'</script>" end ifend if%>3.2圖書查詢頁面該
22、頁面用于用戶的圖書查詢,利用查詢語句的like %替代任意長度字符實現(xiàn)了模糊查詢。所有查詢的字段用戶都可以不輸入,如果輸入了某個數(shù)據(jù),程序執(zhí)行時自己會判斷,輸入了就會加上相應(yīng)的SQL語句??紤]到使用方便性,圖書類型,價格范圍,出版日期都無須用戶輸入,已經(jīng)設(shè)定了合理的初始值。圖書類型如果不做選擇就默認(rèn)在所有圖書類型中查找。考慮到找到的記錄可能會很多,引入了分頁顯示,在記錄集循環(huán)顯示的時候引入?yún)?shù)i來實現(xiàn),設(shè)定i<10,初始值為0,這樣每頁顯示的記錄數(shù)為10條。 圖3.2.1圖書查詢代碼:<link href="style.css" type="text/
23、css" rel="stylesheet"><!-#include file="conn.asp"-><%'定義記錄集和變量set rs=server.createobject("adodb.recordset")bookname=trim(request("bookname")booktype=request("booktype")publishing=trim(request("publishing")money1=trim(re
24、quest("money1")money2=trim(request("money2")date1=trim(request("date1")date11=trim(request("date11")date2=trim(request("date2")date22=trim(request("date22")date3=trim(request("date3")date33=trim(request("date33")date111=
25、date1&"-"&date2&"-"&date3date222=date11&"-"&date22&"-"&date33'查詢的實現(xiàn)sql="select * from book where 1 "if booktype<>"" thensql=sql+"and booktype like '%"&booktype&"%'&quo
26、t;else if bookname<>"" thensql=sql+"and bookname like '%"&bookname&"%'"else if publishing<>"" thensql=sql+"and publishing like '%"&publishing&"%' "end ifend ifend ifsql=sql+"and bookmoney>
27、='"&money1&"' and bookmoney<='"&money2&"' and pdate between '"&date111&"' and '"&date222&"' order by id desc"rs.open sql,db,1,3if rs.eof or rs.bof thenresponse.write "對不起沒有搜索到記錄"
28、response.endelse'頁面顯示dim pagenum,irs.pagesize=10pagecount1=rs.pagecountif request.querystring("pagenum")=0 or request.querystring("pagenum")="" thenpagenum=1elsepagenum=trim(request("pagenum")rs.absolutepage=trim(request("pagenum")end if%><
29、%分頁實現(xiàn)response.write "總共"&pagecount1&"頁,當(dāng)前"&pagenum&"/"&pagecount1&", <a href=search.asp?pagenum=1&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&
30、money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&a
31、mp;">首頁</a>"%> <%if pagenum>1 thenresponse.write "<a href=search.asp?pagenum="&(pagenum-1)&"&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&mone
32、y1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&&
33、quot;>上一頁</a> "elseresponse.write "上一頁 "end ifif pagenum < trim(pagecount1) thenresponse.write "<a href=search.asp?pagenum="&(pagenum+1)&"&bookname="&bookname&"&booktype="&booktype&"&am
34、p;publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&am
35、p;date22&"&date33="&date33&">下一頁</a> "elseresponse.write "下一頁"end if%> <%response.write "<a href=search.asp?pagenum="&pagecount1&"&bookname="&bookname&"&booktype="&
36、amp;booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&&
37、quot;&date22="&date22&"&date33="&date33&">尾頁</a>"%></p>3.3統(tǒng)計超期方便管理員清楚圖書借出后的歸還情況,并可以給超期的用戶發(fā)送消息提醒,或者鎖定該用戶,使其無法登陸系統(tǒng)。超期判定用dateserial()函數(shù)來實現(xiàn)將當(dāng)前系統(tǒng)時間的格式轉(zhuǎn)化為YY-MM-DD,這樣方便后面的日期比較操作。設(shè)置一個變量來代表當(dāng)前系統(tǒng)時間減去三十天,如果用戶借書的時間不在這兩個時間之間那么就是超期。頁面開始首先進行管理員身份核實,
38、用到了前面登陸頁面說的session。點擊左邊菜單的統(tǒng)計超期后系統(tǒng)自動完成統(tǒng)計,并將結(jié)果顯示在右邊,管理員可以進行的操作有:鎖定,給單個用戶發(fā)消息,群發(fā)消息。截圖如下:圖3.3.1 統(tǒng)計超期代碼:<%':從loans表導(dǎo)出時間超期的數(shù)據(jù) 更改系統(tǒng)時間來實現(xiàn)超期 管理員驗證 分頁顯示 管理員發(fā)消息提醒還書if session("usertype")<>"admin" then response.write "<script>alert('不是管理員,請先登陸! ');window.locati
39、on.href='go.asp'</script>"end ifdim loan_time '現(xiàn)在時間和借書時間相差三十天則超期loan_time = dateserial(year(date),month(date),day(date)-30)'轉(zhuǎn)換日期格式2007-3-31,函數(shù)參考 sql1="select * from loans"set rs1=db.execute(sql1)sql2="select book.bookname as b_name,book.booktype as booktype,
40、* from loans,u ,book where loans.time not between #"&loan_time&"# and #"&date&"# and u.id=loans.uid and book.id=loans.bid "set rs2=db.execute(sql2)'sql3="select * from u where id='"&(rs2("uid")&"'"'set rs3
41、=db.execute(sql3)%>3.4數(shù)據(jù)庫備份和還原為了防止因意外對系統(tǒng)數(shù)據(jù)庫造成的破壞,設(shè)置了數(shù)據(jù)庫的備份和還原操作,其實現(xiàn)是用SQL本身的備份和還原功能,程序只要告訴SQL服務(wù)器執(zhí)行就可以了,還原還首先檢查是否存在備份文件,如果沒有則報錯并終止還原操作,執(zhí)行還原操作時因為當(dāng)前系統(tǒng)的數(shù)據(jù)庫正在使用,無法被還原,所以要先選擇SQL服務(wù)器上的其他數(shù)據(jù)庫為當(dāng)前活動數(shù)據(jù)庫,系統(tǒng)用use master來實現(xiàn)將當(dāng)前正在使用的數(shù)據(jù)庫更改為master數(shù)據(jù)庫。系統(tǒng)設(shè)定備份文件存放在IIS主目錄下,后綴是.BAK,方便管理員查看。截圖:圖3.4.1數(shù)據(jù)庫備份和還原代碼:<!-#includ
42、e file="conn.asp"-><%if request("do")="bak" thendim pathpath=server.MapPath("./")'response.Write""&path&""sql="backup database 謝貴文 to disk='"&path&"謝貴文.bak' with init"db.execute(sql)resp
43、onse.Write"<script>alert('備份成功. 備份文件在目錄下');history.go(-1)</script>"end if%><%if request("do")="restore" then'判斷備份文件是否存在set iFso=server.CreateObject("Scripting.FileSystemObject")'FSO組件dim bak_pathbak_path=server.MapPath(".
44、/謝貴文.bak")if not iFso.FileExists(bak_path) thenresponse.Write"<script>alert('備份文件不存在');history.go(-1)</script>"elsesql1="use master"'獲得排它訪問權(quán) 斷開與當(dāng)前系統(tǒng)數(shù)據(jù)的連接sql="restore database 謝貴文 from disk='"&server.MapPath("./")&"
45、謝貴文.bak' "db.execute(sql1)db.execute(sql)response.Write"<script>alert('還原成功.');history.go(-1)</script>"end ifend if'頁面history.go(-1)時自己會重新連接數(shù)據(jù)庫 %>3.5圖書添加實現(xiàn)圖書添加功能。當(dāng)管理員需要添加圖書時,通過管理菜單點擊“添加圖書”就進入這個頁面,考慮到輸入的方便性圖書分類和出版時間都可以進行選擇,無須手工輸入。圖書添加操作要求全部數(shù)據(jù)都必須輸入,否則報錯。添加
46、操作實際上是將數(shù)據(jù)寫入數(shù)據(jù)庫,寫入新圖書信息之前首先檢查圖書名是否重復(fù),重復(fù)則報錯返回上個頁面,輸入正確而且數(shù)據(jù)庫中原本沒有這樣的數(shù)據(jù)則執(zhí)行寫入操作。截圖如下:圖3.5.1 圖書添加代碼:<%'圖書增加if request("query")="book_add" thensql="select * from booktype"set rs=db.execute(sql)%><% if request("active")="" then else if request(&
47、quot;name")="" or request("money")="" or request("num")="" or request("publishing")="" or request("select")="" then response.write "<script>alert('輸入錯誤');history.go(-1)</script>&qu
48、ot; else set rs2=server.createobject("adodb.recordset") date1=request("date1") date2=request("date2") date3=request("date3") qdate=date1&"-"&date2&"-"&date3 sql="select * from book" rs2.open sql,db,1,3 rs2.addnew r
49、s2("bookname")=trim(request("name") rs2("bookmoney")=trim(request("money") rs2("num")=trim(request("num") rs2("publishing")=trim(request("publishing") rs2("pdate")=date1&"-"&date2&"-&
50、quot;&date3 rs2("booktype")=trim(request("select") rs2.update response.write "<script>alert('添加圖書成功');window.location.href('book.asp?query=all_book')</script>" end if end if %>3.6用戶管理實現(xiàn)用戶管理全部功能,包括查看全部用戶,添加,修改,刪除,鎖定,查看其借書記錄。其中鎖定針對于借書超期用
51、戶,管理員可以在超期統(tǒng)計頁面知道哪些用戶借書超期。添加用戶時程序首先判斷是否已經(jīng)存在這個用戶名,存在則終止操作,返回上個頁面;刪除用戶時如果該用戶存在借書記錄則不允許刪除,程序跳轉(zhuǎn)到該用戶的借書記錄頁面。更改操作同樣考慮到了用戶名重復(fù)的問題,避免混淆。截圖如下:圖3.6.1 用戶管理代碼如下:<%從數(shù)據(jù)庫導(dǎo)出所有用戶數(shù)據(jù)if request("action")="" thensql="select * from u"set rs=server.CreateObject("adodb.recordset")rs
52、.open sql,db,1,3'實現(xiàn)用戶查看,添加,刪除,修改等.%><%'添加新的用戶if request("action")="add" thenif request("add")<>"" then'檢查是否重名set chk=db.execute("select * from u where name='"&trim(request("name")&"'")if chk
53、.eof or chk.bof then '插入u表rs.addnewrs("name")=request("name")rs("pwd")=request("pwd")rs.updateresponse.write "<script>alert('添加成功咯');window.location.href='user.asp'</script>"else response.write "<script>aler
54、t('用戶名重復(fù)');history.go(-1)</script>"end ifelse%><%'刪除用戶if request("action")="del" thenif request("id")<>"" thenqq="select count(*) as xx from loans where uid="&request("id")set q=db.execute(qq)if q(&quo
55、t;xx")>0 thenresponse.write "<script>alert('存在借書記錄,不能刪除。');window.location.href='my_borrow.asp?id="&request("id")&"'</script>"elsesql="delete * from u where id="&request("id")db.execute(sql)response.wri
56、te "<script>alert('刪除成功');window.location.href='user.asp'</script>"end ifelse%><%'更改用戶 過程:如果有更改請求,如果有ID,導(dǎo)出數(shù)據(jù),如果確認(rèn)更改,執(zhí)行檢查過程;檢查成功則更新 否則返回錯誤。該功能已經(jīng)包含用戶鎖定功能的實現(xiàn)。if request("query")="type_mod" thenif request("id")<>"&q
57、uot; thensql="select * from u where id="&request("id")set rs1=server.CreateObject("adodb.recordset")rs1.open sql,db,1,3if request("mod")="yes" then'確認(rèn)請求set chk=db.execute("select * from u where name='"&request("name&quo
58、t;)&"'and id<>"&request("id")if not chk.eof thenresponse.write "<script>alert('已經(jīng)存在的名咯');history.go(-1)</script>"response.End()elseif request("islock")="True" then qq="update u set name='"&reque
59、st("name")&"',pwd='"&request("pwd")&"',lock='1' where id="&request("id")elseqq="update u set name='"&request("name")&"',pwd='"&request("pwd")&&quo
60、t;',lock='0' where id="&request("id")end ifdb.execute(qq)response.write "<script>alert('更改成功');window.location.href='user.asp'</script>"end ifelse%>3.7最新添加的圖書放在index.asp框架的右邊,主要是向所有人展現(xiàn)最新增加的圖書信息,方便所有人的使用。其實現(xiàn)是從數(shù)據(jù)庫book表中導(dǎo)出top 10個數(shù)據(jù)
61、。截圖如下:圖3.7.1 最新添加的圖書代碼:<%'最新圖書數(shù)據(jù)導(dǎo)出sql="select top 10 * from book order by id desc "set rs=server.CreateObject("adodb.recordset")rs.open sql,db,1,3%>3.8圖書分類瀏覽放在首頁的右邊,起著導(dǎo)航作用,實現(xiàn)所有圖書分類的查看,使得所有人都可以方便的瀏覽自己感興趣的圖書分類下的書,點擊圖書分類名就進入了該分類下的所有圖書瀏覽。截圖如下:圖3.8.1 圖書分類瀏覽代碼:<%'圖書類型到
62、處sql1="select * from booktype order by id desc "set rs1=server.CreateObject("adodb.recordset")rs1.open sql1,db,1,3%>3.9給超期用戶發(fā)消息提醒主要功能是實現(xiàn)管理員可以對借書超期的用戶進行提醒,其操作是往msg表里添加數(shù)據(jù),當(dāng)用戶正常登陸后系統(tǒng)會檢查msg表內(nèi)是否有該用戶的消息數(shù)據(jù),如果有則會自動給出提醒,提醒用戶查看消息。截圖如下:圖3.9.1 給超期用戶發(fā)消息代碼:<!-#include file="conn.asp
63、"-><%if request("act")="all_send_msg" thendim loan_time '現(xiàn)在時間和借書時間相差三十天則超期loan_time = dateserial(year(date),month(date),day(date)-30)'轉(zhuǎn)換日期格式2007-3-31 sql2="select book.bookname as b_name,book.booktype as booktype,* from loans,u ,book where loans.time not b
64、etween #"&loan_time&"# and #"&date&"# and u.id=loans.uid and book.id=loans.bid "set rs2=db.execute(sql2)dim uid,contentuid=rs2("uid")response.Write("提交的數(shù)據(jù)(測試是否設(shè)置好)<br>")do while not rs2.eof uid=rs2("uid")content=""&rs2("name")&",你借的"&rs2("b_name")&"一書已經(jīng)超期"&datediff("d",rs2("t
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨文化交流中的小學(xué)英語教育重要性
- 2025年度二零二五年度電力工程聘用巡線司機合同
- 二零二五年度股份代持及表決權(quán)委托協(xié)議:上市公司股權(quán)代持合同
- 二零二五年度免賠保障型廠房租賃合同
- 科技小能手小學(xué)生如何用觀察驅(qū)動創(chuàng)新
- 科技公司如何利用BI分析競爭對手
- 智慧辦公助力農(nóng)業(yè)科技創(chuàng)新的策略研究
- 2024年核輻射劑量防護儀器設(shè)備項目項目投資申請報告代可行性研究報告
- 2025年福州黎明職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 高效捕捉展會中的高潛力目標(biāo)客戶策略
- 2024-2030年中國涂碳箔行業(yè)現(xiàn)狀調(diào)查與投資策略分析研究報告
- 2023-2024年度數(shù)字經(jīng)濟與驅(qū)動發(fā)展公需科目答案(第5套)
- 職業(yè)分類表格
- 廣東省深圳高級中學(xué)2023-2024學(xué)年八年級下學(xué)期期中考試物理試卷
- 電網(wǎng)建設(shè)項目施工項目部環(huán)境保護和水土保持標(biāo)準(zhǔn)化管理手冊(變電工程分冊)
- 口腔門診部設(shè)置可行性研究報告
- 體檢科運營可行性報告
- 北京市豐臺區(qū)市級名校2024屆數(shù)學(xué)高一第二學(xué)期期末檢測模擬試題含解析
- 設(shè)立項目管理公司組建方案
- 薪酬戰(zhàn)略與實踐
- 答案之書(解答之書)-電子版精選答案
評論
0/150
提交評論