




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 校園策劃與設(shè)計(jì)目錄第一章:諸論1.1設(shè)計(jì)思想1.2開(kāi)發(fā)工具的選用與介紹第二章:總體分析與設(shè)計(jì)2.1系統(tǒng)分析2.2主頁(yè)設(shè)計(jì)2.3數(shù)據(jù)庫(kù)設(shè)計(jì)第三章:詳細(xì)設(shè)計(jì)3.1家長(zhǎng)學(xué)校聯(lián)絡(luò)簿3.2網(wǎng)上圖書(shū)館3.3網(wǎng)上評(píng)優(yōu)投票系統(tǒng)3.4達(dá)級(jí)考試在線(xiàn)查分系統(tǒng)與計(jì)數(shù)器的制作第四部分:系統(tǒng)的使用說(shuō)明與安裝第五部分:參考文獻(xiàn)附錄:源文件代碼第一章諸論在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各個(gè)方面發(fā)揮著重要的作用。Internet上發(fā)布信息主要是通過(guò)來(lái)實(shí)現(xiàn)的,獲取信息也是要在Internet“海洋”中按照一定的檢索方式將所需要的信息從上下載下來(lái)。因此
2、建設(shè)在Internet應(yīng)用上的地位顯而易見(jiàn),它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。為了更好的辦學(xué),提高學(xué)校知名度,特構(gòu)建市工商職業(yè)中專(zhuān)學(xué)校。1.1 設(shè)計(jì)思想通過(guò),全面宣傳,展示學(xué)校風(fēng)采、優(yōu)點(diǎn)與特色,發(fā)布學(xué)校的重大活動(dòng)安排與招生政策,增強(qiáng)家長(zhǎng)與學(xué)校之間的聯(lián)系,在Internet上實(shí)現(xiàn)完成部分校務(wù),提高辦事效率。1.2 開(kāi)發(fā)工具的選用與介紹ASP的優(yōu)勢(shì):Active Server Pages:“動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè)”,一般簡(jiǎn)稱(chēng)為“ASP”,ASP之所以能受到大家的重視與使用的原因,主要在于所產(chǎn)生的執(zhí)行結(jié)果都是標(biāo)準(zhǔn)的HTML格式,而且這些程序是在網(wǎng)絡(luò)服務(wù)端中執(zhí)行,使用一般
3、的瀏覽器(如IE 或Netscape)都可以正確地獲得ASP的“執(zhí)行”結(jié)果,并且將這ASP執(zhí)行的結(jié)果直接在瀏覽器中“瀏覽”,不像VBScript或 JavaScript是在客戶(hù)端(Client)的瀏覽器上執(zhí)行,若使用VBScript來(lái)設(shè)計(jì)程序,客戶(hù)端(lient)在瀏覽器中可以顯示程序執(zhí)行的結(jié)果,可是,客戶(hù)端(lient)若使用Netscape瀏覽器就無(wú)法顯示VBScript的執(zhí)行結(jié)果。ASP的特點(diǎn):任何開(kāi)發(fā)工具皆可發(fā)展只要使用一般的文書(shū)編輯程序,如Windows記事本,就可以編輯。當(dāng)然,其他網(wǎng)頁(yè)發(fā)展工具,例如,F(xiàn)rontPage Express、 FrontPage等也都可以;不過(guò)還是建議你
4、用記事本來(lái)寫(xiě),既省錢(qián)又方便,若是使用那些所見(jiàn)即所得的網(wǎng)頁(yè)編輯來(lái)寫(xiě),可能會(huì)發(fā)生一些意想不到的離奇狀態(tài)。通吃各家瀏覽由于ASP程序是在網(wǎng)絡(luò)服務(wù)器端中執(zhí)行,執(zhí)行結(jié)果所產(chǎn)生的HTML文件適用于不同的瀏覽器。語(yǔ)言相容性高ASP與所有的ActiveX Script語(yǔ)言都相容,除了可結(jié)合HTML,VBScript、Java Script、Active X服務(wù)器組件來(lái)設(shè)計(jì)外,并可經(jīng)由“plug-In(外掛組件模組)的方式,使用其他廠商(Third Party)所提供的語(yǔ)言。隱密安全性高如果我們?cè)跒g覽器中直接查看網(wǎng)頁(yè)的原始代碼,就只能看到HTML文件,原始的ASP程序代碼是看不到的!這是因杰ASP程序先于服務(wù)(
5、eb Server)端執(zhí)行后,將結(jié)果轉(zhuǎn)換成標(biāo)準(zhǔn)文件,再傳送到客戶(hù)端(Client)的瀏覽器上,因此,我們所辛苦撰寫(xiě)的程序并不會(huì)輕易地被看見(jiàn)進(jìn)而被盜用。易于操控?cái)?shù)據(jù)庫(kù)可以輕易地通過(guò)ODBC(Open Database Connectivity)驅(qū)動(dòng)程序連接各種不同的數(shù)據(jù)庫(kù),例如:Acess、Foxpro、dBase、Oracle等等,另外,亦可將“文本文件”或是”Excel” 文件當(dāng)成數(shù)據(jù)庫(kù)用。面向?qū)ο髮W(xué)習(xí)容易具備有面向?qū)ο螅∣bject-Oriented)功能,學(xué)習(xí)容易,ASP提供了五種方便能力強(qiáng)大的建對(duì)象:Request、Response、Sever、Application以與Session
6、,同時(shí),若使用建的“Application”對(duì)象或”Session”對(duì)象所撰寫(xiě)出來(lái)的程序可以在多個(gè)網(wǎng)頁(yè)之間暫時(shí)保存必要的信息。ASP的六大部對(duì)象對(duì)象名稱(chēng)功能描述RequestResponseServerSessionApplicationObjectContext 從客戶(hù)端取得信息將信息送給客戶(hù)端提供一些Web服務(wù)器工具儲(chǔ)存在一個(gè)Session的用戶(hù)信息,該信息僅可被該用戶(hù)訪(fǎng)問(wèn)在一個(gè)ASP-Application中讓不同的客戶(hù)端共享信息可以用來(lái)配合Microsoft Transaction 服務(wù)器進(jìn)行分布式事務(wù)處理所以我選擇了ASP結(jié)合Frontpage架構(gòu)市工商職業(yè)中專(zhuān)學(xué)校第二章總體分析與設(shè)
7、計(jì)21系統(tǒng)分析根據(jù)前面的設(shè)計(jì)思想進(jìn)行分析,按照系統(tǒng)開(kāi)發(fā)的基本觀點(diǎn)對(duì)進(jìn)行分解,從容上可對(duì)作如下劃分:l 學(xué)校風(fēng)采通過(guò)學(xué)校概括、教師風(fēng)采、校園之星與部分圖片等容來(lái)展現(xiàn)。l 優(yōu)點(diǎn)特色通過(guò)新聞、生動(dòng)活潑的教育教學(xué)欄目來(lái)展現(xiàn)。l 信息發(fā)布通過(guò)公告欄、信息查詢(xún)等欄目來(lái)實(shí)現(xiàn),容有招生政策、活動(dòng)安排等。l 部分校務(wù)根據(jù)校務(wù)的公開(kāi)程度與參與人數(shù)的多少,特選擇圖書(shū)管理、評(píng)優(yōu)、考試查分、家校聯(lián)系四大校務(wù)在網(wǎng)上實(shí)現(xiàn)。2.2主頁(yè)設(shè)計(jì)主頁(yè)采用靜、動(dòng)相結(jié)合的方式,即靜態(tài)的主畫(huà)面和動(dòng)態(tài)的圖片相結(jié)合,體現(xiàn)學(xué)校的勃勃生氣,靜態(tài)主頁(yè)方式介紹學(xué)校風(fēng)采、優(yōu)點(diǎn)特色、信息發(fā)布,對(duì)于四大校務(wù),就得利用與數(shù)據(jù)庫(kù)結(jié)合的技術(shù)建立數(shù)據(jù)庫(kù)查詢(xún)管理系統(tǒng)
8、,采用交互式的動(dòng)態(tài)的web畫(huà)面來(lái)實(shí)現(xiàn)。主頁(yè)結(jié)構(gòu)圖注:帶下劃線(xiàn)的表示是方式23數(shù)據(jù)庫(kù)設(shè)計(jì)采用的數(shù)據(jù)庫(kù)是Microsoft Access ,擬建立teach.mdb庫(kù)文件,包含如下幾個(gè)表文件:allmessage 留言信息表 Libbooks 圖書(shū)信息表Libcategories 圖書(shū)類(lèi)別信息表Libemps 圖書(shū)館用戶(hù)信息表;stud 學(xué)生信息表第三章詳細(xì)設(shè)計(jì)31 家長(zhǎng)學(xué)校聯(lián)絡(luò)簿311功能: 利用SQL語(yǔ)法過(guò)濾特定的家長(zhǎng)留言意見(jiàn),讓老師可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見(jiàn)作出獨(dú)立的回答,同時(shí),家長(zhǎng)在發(fā)表個(gè)人意見(jiàn)時(shí),若認(rèn)為意見(jiàn)容涉與敏感的話(huà)題或是意見(jiàn)容涉與私人隱私,都可用“悄悄話(huà)”的方式發(fā)言,這些
9、“悄悄話(huà)”將不會(huì)被顯示出來(lái)讓大家看到,當(dāng)然,老師擁有管理的能力,只要以密碼登錄管理模式,就可以進(jìn)行各個(gè)學(xué)生家長(zhǎng)的單獨(dú)意見(jiàn)回復(fù),而且還能看到家長(zhǎng)們所留下的“悄悄話(huà)”。312組成構(gòu)造共分成六大部分: 1,意見(jiàn)留言結(jié)果網(wǎng)頁(yè)guest.asp:用來(lái)顯示家長(zhǎng)發(fā)言與老師回復(fù)容,同時(shí)還具備一般模式與管理模式兩種顯示方法。2,家長(zhǎng)發(fā)言表單網(wǎng)頁(yè)addmsg.asp:讓學(xué)生家長(zhǎng)填寫(xiě)發(fā)言容并選擇發(fā)言性質(zhì)。3,家長(zhǎng)發(fā)言數(shù)據(jù)處理ASP程序add.asp:處理家長(zhǎng)發(fā)表的意見(jiàn)數(shù)據(jù),同時(shí)將這些意見(jiàn)數(shù)據(jù)記錄起來(lái)并將網(wǎng)頁(yè)顯示轉(zhuǎn)向至意見(jiàn)留言結(jié)果網(wǎng)頁(yè)。4,老師回復(fù)表單網(wǎng)頁(yè)teachans.asp:讓老師針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意
10、見(jiàn)作出獨(dú)立的回答。5,老師回復(fù)數(shù)據(jù)處理ASP程序anssave.asp:處理老師回復(fù)的數(shù)據(jù)容,同時(shí)將這些意見(jiàn)數(shù)據(jù)起來(lái)并將網(wǎng)頁(yè)顯示轉(zhuǎn)向至意見(jiàn)留言結(jié)果網(wǎng)頁(yè)。6,數(shù)據(jù)表文件allmessage:用來(lái)儲(chǔ)存家長(zhǎng)發(fā)言數(shù)據(jù)與老師回復(fù)數(shù)據(jù)的Access類(lèi)型數(shù)據(jù)庫(kù)文件?!皵?shù)據(jù)表文件”負(fù)責(zé)存放家長(zhǎng)發(fā)言數(shù)據(jù)與老師回復(fù)容的數(shù)據(jù)記錄,為Access類(lèi)型的庫(kù)文件,將它定名為:“message.mdb”。下圖為家庭聯(lián)絡(luò)簿的組成與流程圖:老師回復(fù)家長(zhǎng)留言讀入寫(xiě)入寫(xiě)入313數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)文件”teach.mdb“中的數(shù)據(jù)表” allmessage“的欄目設(shè)置,如下圖:字段名字段類(lèi)型314界面設(shè)計(jì)與重點(diǎn)、難點(diǎn)代碼的設(shè)計(jì)數(shù)據(jù)
11、庫(kù)與留言顯示程序網(wǎng)頁(yè)家長(zhǎng)發(fā)言與老師回復(fù)的容數(shù)據(jù)全部?jī)?chǔ)存在數(shù)據(jù)庫(kù)中,要在網(wǎng)頁(yè)中顯示目前的家長(zhǎng)發(fā)言與老師回復(fù)數(shù)據(jù),必須先進(jìn)行數(shù)據(jù)庫(kù)的與打開(kāi),要數(shù)據(jù)庫(kù)我們必須使用ADO對(duì)象群的Connection對(duì)象;而要打開(kāi)數(shù)據(jù)庫(kù)則必須使用ADO對(duì)象群的Recordset對(duì)象,程序:set=server.createobject(adodb.connection) cn.open filedsn=c:program filescommon filesodbcdata sourcesms access database.dsn set rs=server.createobject(adodb.recordset)
12、sql=select * from allmessage order by 留言時(shí)間 desc rs.open sql,cn,1,1 Recordset對(duì)象是負(fù)責(zé)瀏覽與操作從數(shù)據(jù)庫(kù)取出來(lái)的數(shù)據(jù),Connection對(duì)象只負(fù)責(zé)與數(shù)據(jù)庫(kù)進(jìn)行的動(dòng)作,并不能使用數(shù)據(jù)庫(kù)的數(shù)據(jù),因此必須建立一個(gè)可以存取數(shù)據(jù)庫(kù)數(shù)據(jù)的Recordset對(duì)象,使用RS.Open方法存取”teach.mdb”數(shù)據(jù)庫(kù)RS.Open SQL,CN,1,1 使用open方法來(lái)打開(kāi)數(shù)據(jù)表或執(zhí)行Select指令參數(shù)設(shè)置如下:1,參數(shù)一(SOURCE):為欲打開(kāi)的數(shù)據(jù)表或SQL指令。2,參數(shù)二(ActionConnection):指定一個(gè)已
13、打開(kāi)的數(shù)據(jù)庫(kù)對(duì)象,將此參數(shù)設(shè)為我們已經(jīng)建立好的Connection對(duì)象“CN”。3,參數(shù)三( CursorType):指定Recordset的打開(kāi)類(lèi)型,1為可讀寫(xiě)且可自由移動(dòng)。4,參數(shù)四(LockType):指定鎖定類(lèi)型,1為只讀。數(shù)據(jù)排序與SQL指令1 Select 指令的篩選語(yǔ)句:格式: SelectFrom 在SQL語(yǔ)言中:“Select”數(shù)據(jù)表“中選取某些“欄位”的數(shù)據(jù). 2.如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了一個(gè)以上的欄位,則我們可以利用“,”逗號(hào)來(lái)欄位名稱(chēng)隔開(kāi)。3如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了全部的欄位,則可以利用萬(wàn)用字符“*”來(lái)代表全部的欄位。可排序數(shù)據(jù)的Select指令1當(dāng)我們希望被選
14、取出來(lái)的數(shù)據(jù)記錄數(shù)據(jù)能夠依據(jù)某個(gè)或某幾個(gè)欄位的容來(lái)排序時(shí),只要將這些排序依據(jù)的欄位擺放在“Order By“保留字之后,然后將這處排序的語(yǔ)句連接在”SelectFrom“后面就行了。2 “Order By“默認(rèn)的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,則我們可在欄位名稱(chēng)后再加上“Desc“保留字!將排序方式改為”由大排到小“。在“顯示留言意見(jiàn)”網(wǎng)頁(yè)中的打開(kāi)數(shù)據(jù)庫(kù)ASP程序中的語(yǔ)句:SELECT*From allmessage order by 留言日期 Desc 功能為:從數(shù)據(jù)表“allmessage“中取出所有欄位的數(shù)據(jù),并將取出的數(shù)據(jù)記錄容依照”留言日期“欄位使用的”
15、由大排到小“排序方式進(jìn)行排序。留言顯示網(wǎng)頁(yè)的管理模式“顯示留言意見(jiàn)”的網(wǎng)頁(yè)就必須具備顯示模式選擇的功能,當(dāng)顯示模式在一般情況時(shí)要能顯示家長(zhǎng)們的一般性發(fā)言,同時(shí)還得將“悄悄話(huà)“的發(fā)言隱藏起來(lái)。當(dāng)老師以密碼登錄成為管理模式時(shí),則必須將一般性發(fā)言與悄悄話(huà)發(fā)言的數(shù)據(jù)全部顯示出來(lái),同時(shí)還得讓老師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見(jiàn)作出獨(dú)立的回答。這兩個(gè)情況是通過(guò)密碼登錄管理模式的ASP程序?qū)崿F(xiàn)的: 密碼:   在這段網(wǎng)頁(yè)語(yǔ)句中,利用Session對(duì)象來(lái)記錄目前的工作模式。當(dāng)我們第一次進(jìn)入“顯示留言意見(jiàn)”網(wǎng)頁(yè)的時(shí)候,我們所見(jiàn)的網(wǎng)頁(yè)畫(huà)面一定是一般!因?yàn)镾ession尚未被建立,因此它的“變
16、量”值一定不會(huì)是“yes”,所以網(wǎng)頁(yè)中會(huì)出現(xiàn)一個(gè)輸入密碼進(jìn)入“教師管理”模式的欄位,只有當(dāng)我們輸入密碼按下“教師管理”的按鈕組織上發(fā)ASP程序中的進(jìn)入管理模式語(yǔ)句后,Session對(duì)象才會(huì)被建立,同時(shí),“checkedit“Session對(duì)象變量值被設(shè)置為“yes“,所以我們就進(jìn)入了能將一般性發(fā)言與悄悄話(huà)發(fā)言的數(shù)據(jù)全部顯示出來(lái),同時(shí)還讓教師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見(jiàn)作出獨(dú)立回答的管理模式頁(yè)面。留言顯示網(wǎng)頁(yè)的分頁(yè)當(dāng)家長(zhǎng)的發(fā)言與老師回復(fù)的數(shù)據(jù)筆數(shù)太多時(shí),一次要將全部的數(shù)據(jù)容顯示在網(wǎng)頁(yè)中,等待網(wǎng)頁(yè)下載的時(shí)間太長(zhǎng)了,因此采用固定筆數(shù)分頁(yè)瀏覽方式來(lái)顯示網(wǎng)頁(yè)。要進(jìn)行分頁(yè)顯示,得先知道目前有多少
17、筆的留言數(shù)據(jù),而留言數(shù)據(jù)筆數(shù)可以通過(guò)Recordset對(duì)象的“Recordcount“(記錄個(gè)數(shù))屬性得知,我們將每10筆數(shù)據(jù)為一單位分頁(yè)顯示:count=rs.recordcount if count/10(count10) then totalpage=(count10)+1 else totalpage=(count10) end if “/”為浮點(diǎn)數(shù)除法,“”為整數(shù)除法。跳頁(yè)選擇的ASP程序語(yǔ)句所有的發(fā)言數(shù)據(jù)采用固定筆數(shù)分頁(yè)瀏覽的方式來(lái)顯示后,還要提供一個(gè)跳頁(yè)顯示的功能,讓瀏覽者可以選擇希望瀏覽的頁(yè)次進(jìn)得瀏覽,ASP程序語(yǔ)句:pagecount=0 rs.movefirst if re
18、quest.querystring(topage) then pagecount=cint(request.querystring(topage) if pagecounttotalpage then pagecount=totalpage rs.move(pagecount-1)*10 發(fā)言表單網(wǎng)頁(yè)制作inse tu3 表單的參數(shù)表單的Action參數(shù):Action參數(shù)是用來(lái)指定Server端處理此一表單數(shù)據(jù)容的程序,此處表單處理ASP程序?yàn)椤癮dd.asp“,表單的Mothed參數(shù):要將表單傳送至Server端的方式有兩種,設(shè)置值分別為GET與POST,若設(shè)置為POST,則瀏覽器會(huì)等Ser
19、ver端來(lái)讀取數(shù)據(jù),若設(shè)置為GET,則當(dāng)我們按下送出按鈕時(shí),瀏覽器會(huì)立即將表單中的數(shù)據(jù)傳送出去。利用POST方法,在傳送的數(shù)據(jù)上將不受限制,利用GET方法傳送的數(shù)據(jù)量則大約只有2K左右。留言處理程序要將家長(zhǎng)發(fā)言數(shù)據(jù)作后續(xù)處理與將這些數(shù)據(jù)容存入數(shù)據(jù)庫(kù),須利用添加數(shù)據(jù)記錄的Insert Into 指令,然后再寫(xiě)入數(shù)據(jù)庫(kù)文件中:Inset into 指令語(yǔ)句格式:Insert into 數(shù)據(jù)表名(欄目名) values(欄目值)sql=insert into allmessage(家長(zhǎng),留言主題,聯(lián)絡(luò)信箱,留言容,私人公開(kāi),留言時(shí)間,班級(jí)) values( sql=sql& parent&, sql
20、=sql&subject&, sql=sql&email&, sql=sql&memo&, sql=sql&personal&, sql=sql&now&, sql=sql&bj&) cn.execute sql 回復(fù)表單程序網(wǎng)頁(yè)必須讓老師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見(jiàn)作出獨(dú)立的回答, 使用SelectFromWhere篩選語(yǔ)句sql=select * from allmessage where(編號(hào)=&ID&) rs.open sql,cn,1,3 然后將特定的家長(zhǎng)發(fā)言數(shù)據(jù)放在表單,方法是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)取出來(lái),然后放在表單欄位中:“家長(zhǎng)“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)簽 “留言主題“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)
21、簽 “留言容“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)簽 老師在回復(fù)欄位中所填入的數(shù)據(jù),必須送給處理老師回復(fù)數(shù)據(jù)的ASP程序”anssave.asp”來(lái)記錄以與處理這些回復(fù)數(shù)據(jù)。當(dāng)老師填寫(xiě)好回復(fù)發(fā)言的數(shù)據(jù)后按下“送出回復(fù)”按鈕后,表單中的數(shù)據(jù)容就會(huì)以“POST”的方式由SEVER端讀取,然后將數(shù)據(jù)容交由處理老師回復(fù)數(shù)據(jù)的ASP程序“anssave.asp”來(lái)將數(shù)據(jù)容寫(xiě)入數(shù)據(jù)庫(kù)。32網(wǎng)上圖書(shū)館網(wǎng)上圖書(shū)館將學(xué)校圖書(shū)館圖書(shū)放到網(wǎng)絡(luò)上供人借閱,這樣不僅方便了校的學(xué)生與教職員工使用圖書(shū)館的資源,還為圖書(shū)館管理員提供了一種簡(jiǎn)便地管理圖書(shū)館的方法. 321功能 網(wǎng)上圖書(shū)館系統(tǒng)可以進(jìn)行圖書(shū)的出借和歸還.還可以在系統(tǒng)中按照多種字段對(duì)圖書(shū)
22、進(jìn)行查找,還可以瀏覽某個(gè)種類(lèi)的所有圖書(shū).該應(yīng)用程序也為圖書(shū)館管理員提供了一些功能,如添加、編輯以與刪除圖書(shū)等,或者在分類(lèi)層次結(jié)構(gòu)中添加新的種類(lèi)。322系統(tǒng)的層次結(jié)構(gòu)下圖的每個(gè)方框代表校園圖書(shū)館中的一個(gè)頁(yè)面。除了只包含的Search頁(yè)面外,其他的均為頁(yè)面。因?yàn)槊總€(gè)圖書(shū)的頁(yè)面都不同,所以大多數(shù)的頁(yè)面實(shí)際上都是多頁(yè)面。3.2.3數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)共使用個(gè)數(shù)據(jù)表:LibBooks表包含與圖書(shū)有關(guān)的所有數(shù)據(jù)。該表中的字段容的圖書(shū)的通用信息。另外,對(duì)于已經(jīng)出借的圖書(shū),該表中還包含借閱該圖書(shū)的用戶(hù)的號(hào),以與圖書(shū)的狀態(tài)。表視圖如下:字段名意義字段類(lèi)型字段名意義字段類(lèi)型bookid 書(shū)號(hào)(主鍵) 數(shù)字 (no n
23、ull) status 狀態(tài)文本title 書(shū)名文本 checkedoutto 用戶(hù)id 數(shù)字author 著者文本 reservedby 用戶(hù)學(xué)號(hào)數(shù)字Subject 主題文本 description 描述文本Isbn Isbn號(hào)文本 keywords 關(guān)鍵字文本LibCategories 表包含Library中的所有類(lèi)別,在訪(fǎng)問(wèn)者瀏覽圖書(shū)列表時(shí)將會(huì)用到這些類(lèi)別。每個(gè)類(lèi)別都可以作為另外類(lèi)別的父類(lèi)別。有一個(gè)特殊的類(lèi)別,Top-Level,沒(méi)有出現(xiàn)在類(lèi)別列表中,但是可以作為其他任何類(lèi)別的父類(lèi)別。字段名意義字段類(lèi)型Categoryname 類(lèi)別文本(noll) parentcategory 父類(lèi)別文
24、本(noll) LibEmps表包含可以訪(fǎng)問(wèn)圖書(shū)館的用戶(hù)信息。該表包含一些通用的信息字段,比如用于進(jìn)入圖書(shū)館的用戶(hù)密碼等。字段名意義字段類(lèi)型字段名意義字段類(lèi)型empid 用戶(hù)id (主鍵no null) 數(shù)字 password 用戶(hù)密碼文本Empname 用戶(hù)文本 manager 管理員代號(hào)數(shù)字emailaddress 用戶(hù)文本圖書(shū)館數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)系如圖9-22所示。其中表LibEmps和表Lib Categories與表LibBooks之間都是一對(duì)多的關(guān)系。每個(gè)雇員都可以借閱多本圖書(shū),每個(gè)類(lèi)別都可以包含多本圖書(shū)。3.2.3界面設(shè)計(jì)與重點(diǎn)代碼的設(shè)計(jì)網(wǎng)上圖書(shū)館系統(tǒng)有兩種用戶(hù),一是管理員。另一種是
25、只允許使用圖書(shū)館系統(tǒng),而沒(méi)有管理功能的一般用戶(hù)。訪(fǎng)問(wèn)者進(jìn)入,首先要進(jìn)行登錄,如下圖所示。登錄頁(yè)面(index.asp)訪(fǎng)問(wèn)者輸入mail地址和密碼來(lái)登錄,然后單擊“登錄”按鈕。輸入的數(shù)據(jù)提交后與數(shù)據(jù)庫(kù)中的用戶(hù)表進(jìn)行匹配。須創(chuàng)建一個(gè)記錄來(lái)保存基于訪(fǎng)問(wèn)者登錄的用戶(hù)信息set RSFindEmp = conn.Execute(select EmpID, Manager from LibEmps where _ & EmailAddress = & Request.Form(EmailAddress) & and _ & Password = & Request.Form(Password) & )
26、if RSFindEmp.EOF then TheMessage = 密碼或email地址不對(duì). else Session(EmpID) = RSFindEmp(EmpID) Session(Manager) = RSFindEmp(Manager) Response.Redirect ./yk.htm end if 表單域EmailAddress和Password 用于Where了句中來(lái)獲取一個(gè)記錄。如果訪(fǎng)問(wèn)者輸入了一個(gè)無(wú)效的用戶(hù)名,則記錄集中將不會(huì)返回匹配的記錄。我們可以通過(guò)查看EOF標(biāo)記來(lái)判斷一個(gè)記錄集是否為空。為空,則訪(fǎng)問(wèn)者將被拒絕進(jìn)入該系統(tǒng)。不為空,則訪(fǎng)問(wèn)者的EmpID值和Manag
27、er值將從記錄集中返回。寫(xiě)入Session 變量,變量將在整個(gè)的所有網(wǎng)頁(yè)中都是有效的。這些變量的存在與否與其取值將用于確定是否允許進(jìn)入一個(gè)特定的網(wǎng)頁(yè),同時(shí)也用于訪(fǎng)問(wèn)者進(jìn)行書(shū)目的歸還和借閱操作。圖書(shū)館菜單頁(yè)面圖書(shū)館菜單頁(yè)面包含指向其他4個(gè)頁(yè)面的:管理頁(yè)面、搜索頁(yè)面、圖書(shū)列表頁(yè)面和主頁(yè)面。還有一個(gè)可顯示用戶(hù)所借書(shū)籍的按紐。如果訪(fǎng)問(wèn)者是圖書(shū)館管理員,則菜單界面如圖所示。如果訪(fǎng)問(wèn)者不是圖書(shū)館管理員,則看到如圖所示的界面。非管理員的訪(fǎng)問(wèn)者的界面上沒(méi)有指向管理員菜單頁(yè)面的。實(shí)現(xiàn)辦法:訪(fǎng)問(wèn)者登錄時(shí)在登錄頁(yè)面上的創(chuàng)建的會(huì)話(huà)變量Session 用于從數(shù)據(jù)庫(kù)中獲取訪(fǎng)問(wèn)者的有關(guān)信息,表示它是否是管理員。如果值為1,
28、就表明訪(fǎng)問(wèn)者是一個(gè)管理員,則用如下代碼寫(xiě)入一個(gè)指向管理員頁(yè)面的: 管理員菜單 通過(guò)按紐B1是否為空來(lái)判斷要不要顯示用戶(hù)所借圖書(shū),利用一個(gè)記錄集來(lái)獲取訪(fǎng)問(wèn)者已經(jīng)借出了的所有圖書(shū)的列表。if NOT isempty(Request.Form(B1) then set RSBooks = conn.Execute (select BookID, Title from LibBooks where _ & CheckedOutTo = & Session(EmpID) end if 再用循環(huán)語(yǔ)句將所借書(shū)以表格形式顯示出來(lái)。 循環(huán)將遍歷Rsbooks記錄集中的每個(gè)記錄,直到該記錄集結(jié)束:該中的所有頁(yè)面都
29、會(huì)在訪(fǎng)問(wèn)者訪(fǎng)問(wèn)之前對(duì)其進(jìn)行登錄檢查。這樣就可以避免訪(fǎng)問(wèn)者通過(guò)輸入某個(gè)頁(yè)面地址然后在沒(méi)有登錄的情況下直接進(jìn)入該頁(yè)面的情況發(fā)生。此外,每個(gè)管理頁(yè)面都要確認(rèn)訪(fǎng)問(wèn)者是管理員。管理菜單頁(yè)面管理菜單頁(yè)面有一個(gè)HTML表單,根據(jù)選擇的按鈕的不同,可以進(jìn)行5種不同的操作:圖書(shū)的歸還、圖書(shū)的編輯、圖書(shū)的刪除、圖書(shū)的添加和類(lèi)別的添加。不管選擇了哪一個(gè)按鈕,該表單都提交人其自身進(jìn)行處理。要進(jìn)行圖書(shū)的歸還、圖書(shū)的編輯、圖書(shū)的刪除三種操作,須先進(jìn)行搜索,找到該書(shū)后,由圖書(shū)B(niǎo)ook.asp返回一個(gè): A HREF=./html/management_menu.asp?title=&BOOKID=管理員菜單 而管理者頁(yè)面通
30、過(guò)下列語(yǔ)句 inputzztype=hidden name=BOOKID1value= 這樣就將所找到的書(shū)的書(shū)號(hào)BookID、書(shū)名Title傳遞管理者頁(yè)面。再進(jìn)行所須操作。共有3個(gè)不同的銨紐,可以進(jìn)行3種操作。若單擊“修改”鈕:則重定向到編輯圖書(shū)頁(yè)面,同時(shí)把Bookid 傳遞給該頁(yè)面。Response.Redirect ./edit_book.asp?BOOKID=&request(BOOKID1) 將其他的情況需要建立到數(shù)據(jù)庫(kù)的連接:set conn = server.createobject (adodb.connection) Conn.Open(FILEDSN=c:Program Fi
31、lesCommon FilesODBCData Sourcesms access database.dsn) if NOT isempty(Request.Form(Delete) and request(BOOKID1) then conn.Execute delete from LibBooks where BOOKID =&request(BOOKID1) end if if (NOT isempty(Request.Form(checkin) and request(BOOKID1) then conn.Execute update LibBooks set checkedoutto=
32、 0, status= Available where BookID=&Request(BOOKID1) end if 頁(yè)面中的添加新的種類(lèi)部分包含一個(gè)文本控件和一個(gè)選擇控件。其中選擇控件是用所有已經(jīng)存在的類(lèi)別列表進(jìn)行填充的,包括特殊類(lèi)別 Top level ,該類(lèi)別表明當(dāng)前類(lèi)別是處于類(lèi)別層次結(jié)構(gòu)中的最頂層。代碼如下:先用一個(gè)記錄集來(lái)填充父類(lèi)別選擇控件:set RSCategories = conn.Execute(select CategoryName from LibCategories order by CategoryName) 再用下列循環(huán)語(yǔ)句: OPTION VALUE= 遍歷RS
33、Categories記錄集中的每個(gè)記錄,并作為一個(gè)選項(xiàng)添加到列表中,而記錄集中CategoryName 同時(shí)作為顯示值和傳遞值:本頁(yè)面還包含一個(gè)指向添加圖書(shū)頁(yè)面的。搜索結(jié)果頁(yè)面搜索頁(yè)面的代碼獲取與訪(fǎng)問(wèn)者查找規(guī)則相匹配的圖書(shū),然后將這些圖書(shū)顯示給訪(fǎng)問(wèn)者。搜索頁(yè)面上的表單包含一個(gè)選擇控件和一個(gè)文本控件。選擇控件中的選項(xiàng)是用可搜索的字段填充的:需要用一個(gè)記錄集來(lái)保存與訪(fǎng)問(wèn)者的查找規(guī)則相匹配的記錄:set RSBooks = conn.Execute(select BookID, Author, Title, Subject from LibBooks where _ & Request.Form(S
34、earchField) & Like % & Request.Form(SearchCriteria) & %) 注意:,符號(hào)%表示的是一個(gè)廣義搜索。這一點(diǎn)類(lèi)似于ACCESS中的符號(hào)*。然后將所找到的書(shū)以表格形式顯示出來(lái)。代碼如下: 書(shū)名: A HREF=./html/book.asp?BookID= 著者: 主題: 圖書(shū)頁(yè)面圖書(shū)頁(yè)面的代碼顯示圖書(shū)的有關(guān)信息,以與管理圖書(shū)的出借操作。該頁(yè)面通過(guò)Querystring 傳遞BookID if isempty(Request.QueryString(BookID) then Response.Redirect ./search.html end i
35、f 如果其中不存在,則訪(fǎng)問(wèn)者將被重定向到搜索頁(yè)面:如果同時(shí)傳遞表單中包含的變量Action不為空,則表明訪(fǎng)問(wèn)者正借閱該圖書(shū):if Not isempty(Request.QueryString(Action) then 在這種情況下,需要將圖書(shū)狀態(tài)改為 Checkout, 同時(shí)需要將Checkedoutto 字段修改為該訪(fǎng)問(wèn)者:conn.Execute update LibBooks set Status = Checked Out, _ & CheckedOutTo = & Session(EmpID) & where BookID = _ & Request.QueryString(Boo
36、kID) Response.Redirect ./library_menu.asp end if 然后將該訪(fǎng)問(wèn)者重定到圖書(shū)館菜單頁(yè)面:下一步,利用圖書(shū)的狀態(tài)來(lái)確定不同的未借出時(shí)如下:if RSBooks(status) = Available then LinkText = 借這本書(shū) 如果圖書(shū)已經(jīng)借出,就創(chuàng)建一個(gè)不同的消息,并將設(shè)置為指向Library menu 頁(yè)面:LinkText = 圖書(shū)已出借,返回主菜單。 最后根據(jù)是否是管理員,顯示管理員菜單。A HREF=./html/management_menu.asp?title=&BOOKID=管理員菜單 3.3網(wǎng)上評(píng)優(yōu)投票系統(tǒng)3.3.1功
37、能: 能實(shí)現(xiàn)全校性的評(píng)選,快捷、公平,且有效,不允許做票。3.3.2組成構(gòu)造這個(gè)系統(tǒng)由3個(gè)部分組成投票頁(yè)面vote.htm ,處理投票結(jié)果的腳本,顯示投票頁(yè)面。333數(shù)據(jù)表的設(shè)計(jì):334界面設(shè)計(jì)與重點(diǎn)、難點(diǎn)代碼設(shè)計(jì)投票頁(yè)面該頁(yè)面是一個(gè)純HTML文件,它讓用戶(hù)選擇自己想選舉的候選人,并填寫(xiě)自己的詳細(xì)資料,以確認(rèn)投票的有效性。頁(yè)面顯示如圖所示。表單處理腳本在vote.htm中各項(xiàng)數(shù)據(jù)都填寫(xiě)完畢后,單擊確定投票按鈕,表單的數(shù)據(jù)就被提交,本次評(píng)優(yōu)共有4個(gè)候選人,但只能選兩個(gè)。故用復(fù)選框。投票的有效性通過(guò)是否是本校學(xué)生,且是否投過(guò)票來(lái)判斷。if request(passno) then sql=sele
38、ct * from stud where password=&request(passno)& &and yitu=0 set rs=cn.execute(sql) if rs.eof then% 本設(shè)計(jì)允許少選,不允許多選。通過(guò)判斷Vote投票界面?zhèn)鬟f過(guò)來(lái)的復(fù)選按紐值的長(zhǎng)度看是否多選。vo=request(cand) if len(vo)4 then% 然后根據(jù)所投的票將對(duì)應(yīng)候選人的投票結(jié)果字段加1,同時(shí)將該投票人的已投字段置為1。s =update stud set yitu=1 where password=&request(passno)& cn.execute(s ) if inst
39、r(vo,1) then cn.execute(update stud set result=result+1 where name=寧) end if if instr(vo,2) then cn.execute(update stud set result=result+1 where name=蘭) end if if instr(vo,3) then cn.execute(update stud set result=result+1 where name=江道明) end if if instr(vo,4) then cn.execute(update stud set result
40、=result+1 where name=段啟文) end if% 顯示當(dāng)前投票情況show.asp 由于投票處理頁(yè)面已經(jīng)完成了絕大部分的工作,所以顯示結(jié)果頁(yè)面就很簡(jiǎn)單了,其功能是從 Stud表文件中讀取候選人所得票數(shù),顯示在頁(yè)面上。頁(yè)面顯示如圖值得注意的代碼主要有以下幾處:該頁(yè)面有自動(dòng)刷新功能,使在線(xiàn)用戶(hù)可以盡快的看到最新的選舉情況。我們這里設(shè)定每隔30秒鐘自動(dòng)刷新一次。 顯示投票時(shí),我們采用了while循環(huán),把候選人與其得票數(shù),整齊地顯示在一個(gè)表格中,這種技術(shù)在數(shù)據(jù)庫(kù)查詢(xún)結(jié)果的顯示中也經(jīng)常用到。代碼如下: 34達(dá)級(jí)考試在線(xiàn)查分系統(tǒng)與計(jì)數(shù)器的制作341功能: 它提供了在線(xiàn)查看成績(jī)??忌梢栽诰W(wǎng)上使用這一系統(tǒng),通過(guò)輸入編號(hào)來(lái)查詢(xún)達(dá)級(jí)考試的結(jié)果。342數(shù)據(jù)表的設(shè)計(jì)與評(píng)優(yōu)系統(tǒng)共用STUd表,表設(shè)計(jì)同上。343界面設(shè)計(jì)與重點(diǎn)難點(diǎn)代碼的設(shè)計(jì)該模塊需要查詢(xún)者輸入號(hào)后來(lái)查看結(jié)果。若ID1不為空時(shí),表示有表單輸入,開(kāi)始查詢(xún)數(shù)據(jù)庫(kù)。使用 SELECT的SQL指令查詢(xún)數(shù)據(jù)庫(kù)的數(shù)據(jù)。先設(shè)定SQL指令,查詢(xún)ID符合編號(hào)Request.Form(ID1)的數(shù)據(jù),下個(gè)“Execute”指令,即可開(kāi)始執(zhí)行存取、查詢(xún)數(shù)據(jù)的動(dòng)作了。并將查詢(xún)結(jié)果儲(chǔ)存到Recordsets組件RS中。IF Request.Form(ID1) THEN Set Conn = Se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車(chē)庫(kù)租賃與車(chē)位銷(xiāo)售及增值服務(wù)合同
- 供應(yīng)鏈金融服務(wù)下的采購(gòu)與訂貨合同
- 車(chē)輛維修人才培養(yǎng)與引進(jìn)承包協(xié)議
- 小兒燒傷護(hù)理要點(diǎn)
- 餐飲業(yè)三股東合作協(xié)議書(shū):股權(quán)分配與經(jīng)營(yíng)管理
- 家庭法律顧問(wèn)保姆服務(wù)合同
- 國(guó)際貿(mào)易公司廠房租賃管理規(guī)范
- 股權(quán)激勵(lì)財(cái)產(chǎn)分割及員工持股協(xié)議
- 拆除工程臨時(shí)用電與排水合同
- 餐飲連鎖品牌授權(quán)經(jīng)營(yíng)合作協(xié)議
- SH/T 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范(正式版)
- (高清版)JTGT D31-06-2017 季節(jié)性?xún)鐾恋貐^(qū)公路設(shè)計(jì)與施工技術(shù)規(guī)范
- 機(jī)房搬遷服務(wù)搬遷實(shí)施方案
- DLT電力建設(shè)施工及驗(yàn)收技術(shù)規(guī)范鍋爐機(jī)組篇
- 高苯丙氨酸(苯丙酮尿癥)血癥課件
- pet拉伸薄膜工藝
- 離心泵的結(jié)構(gòu)與工作原理通用課件
- 畜牧業(yè)的生物安全與疫情防控
- 關(guān)于皮膚科藥物知識(shí)講座
- 2025年日歷日程表含農(nóng)歷可打印
- 銳意進(jìn)取開(kāi)拓新市場(chǎng)
評(píng)論
0/150
提交評(píng)論