• <abbr id="kam3m"><form id="kam3m"></form></abbr>

    <u id="kam3m"><li id="kam3m"></li></u>

  • <table id="kam3m"></table>
    
    

    <u id="kam3m"></u>
    18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品

    畢業(yè)校園網(wǎng)站建設(shè)

    前言:本站為你精心整理了畢業(yè)校園網(wǎng)站建設(shè)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

    畢業(yè)校園網(wǎng)站建設(shè)

    校園網(wǎng)站設(shè)計(jì)

    目錄

    第一章:緒論……………………………………………………………………………………1

    1.1設(shè)計(jì)思想……………………………………………………………………………………1

    1.2開發(fā)工具的選用及介紹……………………………………………………………………1

    第二章:網(wǎng)站總體分析與設(shè)計(jì)…………………………………………………………………4

    2.1網(wǎng)站系統(tǒng)分析…………………………………………………………………………………4

    2.2、主頁(yè)設(shè)計(jì)…………………………………………………………………………………4

    2.3、數(shù)據(jù)庫(kù)設(shè)計(jì)………………………………………………………………………………8

    第三章:詳細(xì)設(shè)計(jì)………………………………………………………………………………9

    3.1家長(zhǎng)學(xué)校聯(lián)絡(luò)簿……………………………………………………………………………9

    3.2網(wǎng)上圖書館………………………………………………………………………………14

    3.3網(wǎng)上評(píng)優(yōu)投票系統(tǒng)…………………………………………………………………………22

    3.4達(dá)級(jí)考試在線查分系統(tǒng)與計(jì)數(shù)器的制作…………………………………………………24

    第四章:系統(tǒng)的使用說(shuō)明與安裝………………………………………………………………26

    第五章:參考文獻(xiàn)………………………………………………………………………………27

    附錄:源文件代碼………………………………………………………………………………27

    致謝…………………………………………………………………………………………………28

    第一章緒論

    在Internet飛速發(fā)展的今天,電子數(shù)字計(jì)算機(jī)是20世紀(jì)重大科技發(fā)明之一,而互聯(lián)網(wǎng)成為人們快速獲取、和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各個(gè)方面發(fā)揮著重要的作用。Internet上信息主要是通過網(wǎng)站來(lái)實(shí)現(xiàn)的,獲取信息也是要在Internet“海洋”中按照一定的檢索方式將所需要的信息從網(wǎng)站上下載下來(lái)。因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易見,它已成為機(jī)關(guān)、學(xué)校、企事業(yè)單位、甚至進(jìn)入尋常百姓家的信息化建設(shè)中的重要組成部分,從而倍受人們的重視。而我校為了更好的辦學(xué),提高學(xué)校知名度,為家長(zhǎng)和同學(xué)們提供一個(gè)友誼的橋梁,增加同學(xué)們和家長(zhǎng)對(duì)學(xué)校一些事物的了解,建構(gòu)北京市電子科技學(xué)院網(wǎng)站。

    1.1設(shè)計(jì)思想

    通過網(wǎng)站,全面宣傳,展示學(xué)校風(fēng)采、優(yōu)點(diǎn)與特色,學(xué)校的活動(dòng)安排與招生政策等信息內(nèi)容,使學(xué)生及家長(zhǎng)曾加對(duì)學(xué)校的了解,增強(qiáng)學(xué)生、家長(zhǎng)與學(xué)校之間的聯(lián)系,在Internet網(wǎng)上,讓學(xué)生及家長(zhǎng)及時(shí)得到學(xué)校的重要信息,同時(shí)也幫助了學(xué)校完成部分事務(wù),提高辦事效率,給學(xué)生、家長(zhǎng)與學(xué)校最方便的聯(lián)系橋梁。在這里學(xué)生及家長(zhǎng)也可以提出意見及想法,互通教學(xué)之間的意見想法,更加有效的辦好教學(xué),和學(xué)生需要哪樣的教學(xué)方式能夠更好的吸收與接納,這些都能成為學(xué)校的參考,以便更加的提高學(xué)校的教學(xué)質(zhì)量。

    1.2開發(fā)工具的選用及介紹

    1.2.1ASP的優(yōu)勢(shì)

    ActiveServerPages:“動(dòng)態(tài)服務(wù)器網(wǎng)頁(yè)”,一般簡(jiǎn)稱為“ASP”,ASP之所以能受到大家的重視與使用的原因,主要在于所產(chǎn)生的執(zhí)行結(jié)果都是標(biāo)準(zhǔn)的HTML格式,而且這些程序是在網(wǎng)絡(luò)服務(wù)端中執(zhí)行,使用一般的瀏覽器(如IE或Netscape)都可以正確地獲得ASP的“執(zhí)行”結(jié)果,并且將這ASP執(zhí)行的結(jié)果直接在瀏覽器中“瀏覽”,不像VBScript或JavaScript是在客戶端(Client)的瀏覽器上執(zhí)行,若使用VBScript來(lái)設(shè)計(jì)程序,客戶端(client)在IE瀏覽器中可以顯示程序執(zhí)行的結(jié)果,可是,客戶端(client)若使用Netscape瀏覽器就無(wú)法顯示VBScript的執(zhí)行結(jié)果。

    1.2.2ASP的特點(diǎn)

    ASP的特點(diǎn)的特點(diǎn)為:

    1、任何開發(fā)工具皆可發(fā)展ASP

    只要使用一般的文書編輯程序,如Windows記事本,就可以編輯。當(dāng)然,其他網(wǎng)頁(yè)發(fā)展工具,例如,F(xiàn)rontPageExpress、FFrontPage等也都可以;不過還是建議你用記事本來(lái)寫,既省錢又方便,若是使用那些所見即所得的網(wǎng)頁(yè)編輯來(lái)寫ASP,可能會(huì)發(fā)生一些意想不到的離奇狀態(tài)。

    通吃各家瀏覽由于ASP程序是在網(wǎng)絡(luò)服務(wù)器端中執(zhí)行,執(zhí)行結(jié)果所產(chǎn)生的HTML文件適用于不同的瀏覽器。

    2、語(yǔ)言相容性高

    ASP與所有的ActiveXScript語(yǔ)言都相容,除了可結(jié)合HTML,VBScript、JavaScript、ActiveX服務(wù)器組件來(lái)設(shè)計(jì)外,并可經(jīng)由“plug-In(外掛組件模組)的方式,使用其他廠商(ThirdParty)所提供的語(yǔ)言。

    3、隱密安全性高

    如果我們?cè)跒g覽器中直接查看網(wǎng)頁(yè)的原始代碼,就只能看到HTML文件,原始的ASP程序代碼是看不到的!這是應(yīng)屆ASP程序先于網(wǎng)站服務(wù)(WebServer)端執(zhí)行后,將結(jié)果轉(zhuǎn)換成標(biāo)準(zhǔn)HTML文件,再傳送到客戶端(Client)的瀏覽器上,因此,我們所辛苦撰寫的ASP程序并不會(huì)輕易地被看見進(jìn)而被盜用。

    4、易于操控?cái)?shù)據(jù)庫(kù)

    ASP可以輕易地通過ODBC(OpenDatabaseConnectivity)驅(qū)動(dòng)程序連接各種不同的數(shù)據(jù)庫(kù),例如:Access、FoxPro、dBase、Oracle等等,另外,ASP亦可將“文本文件”或是”Excel”文件當(dāng)成數(shù)據(jù)庫(kù)用。

    5、面向?qū)ο髮W(xué)習(xí)容易

    ASP具備有面向?qū)ο螅∣object-Oriented)功能,學(xué)習(xí)容易,ASP提供了五種方便能力強(qiáng)大的內(nèi)建對(duì)象:Request、Response、Sever、Application以及Session,同時(shí),若使用ASP內(nèi)建的“Application”對(duì)象或”Session”對(duì)象所撰寫出來(lái)的ASP程序可以在多個(gè)網(wǎng)頁(yè)之間暫時(shí)保存必要的信息。

    6、對(duì)象名稱功能描述

    RequestResponseServerSessionApplicationObjectContext從客戶端取得信息將信息送給客戶端提供一些Web服務(wù)器工具儲(chǔ)存在一個(gè)Session內(nèi)的用戶信息,該信息僅可被

    該用戶訪問在一個(gè)ASP-Application中讓不同的客戶端共享信息可以用來(lái)配合MicrosoftTransaction服務(wù)器進(jìn)行分布式事務(wù)處理,所以我選擇了ASP結(jié)合FrontPage建構(gòu)北京市輕工技術(shù)學(xué)院網(wǎng)站。

    第二章網(wǎng)站總體分析與設(shè)計(jì)

    2.1網(wǎng)站系統(tǒng)分析

    根據(jù)前面的設(shè)計(jì)思想進(jìn)行分析,按照系統(tǒng)開發(fā)的基本觀點(diǎn)對(duì)網(wǎng)站進(jìn)行分解,從內(nèi)容上可對(duì)網(wǎng)站作如下劃分:

    學(xué)校風(fēng)采通過學(xué)校概括、教師風(fēng)采、校園之星及部分圖片等內(nèi)容來(lái)展現(xiàn)。

    優(yōu)點(diǎn)特色通過新聞、生動(dòng)活潑的教育教學(xué)欄目來(lái)展現(xiàn)。

    信息通過公告欄、信息查詢等欄目來(lái)實(shí)現(xiàn),內(nèi)容有招生政策、活動(dòng)安排等。

    部分校務(wù)根據(jù)校務(wù)的公開程度與參與人數(shù)的多少,特選擇圖書管

    理、評(píng)優(yōu)、考試查分、家校聯(lián)系四大校務(wù)在網(wǎng)上實(shí)現(xiàn)。

    2.2主頁(yè)設(shè)計(jì)

    網(wǎng)站主頁(yè)采用靜、動(dòng)相結(jié)合的方式,即靜態(tài)的主畫面和動(dòng)態(tài)的圖片相結(jié)合,體現(xiàn)學(xué)校的勃勃生氣,靜態(tài)主頁(yè)方式介紹學(xué)校風(fēng)采、優(yōu)點(diǎn)特色、信息,對(duì)于四大校務(wù),就得利用ASP與數(shù)據(jù)庫(kù)結(jié)合的技術(shù)建立數(shù)據(jù)庫(kù)查詢管理系統(tǒng),采用交互式的動(dòng)態(tài)的web畫面來(lái)實(shí)現(xiàn)。

    主頁(yè)結(jié)構(gòu)圖

    2.3數(shù)據(jù)庫(kù)設(shè)計(jì)

    采用的數(shù)據(jù)庫(kù)是MicrosoftAccess,擬建立teach.mdb庫(kù)文件,包含如下幾個(gè)表文件:

    allmessage留言信息表

    Flipbooks圖書信息表

    Libcategories圖書類別信息表

    Lineups圖書館用戶信息表;

    stud學(xué)生信息表

    2.4提示

    我們將提前為您介紹一下我們將使用的個(gè)別數(shù)據(jù)庫(kù)等,方便您知道更多的信息,和使用的原因。

    第四頁(yè)

    SQL語(yǔ)言介紹

    2.4.1SQL基礎(chǔ)

    SQL(StructuredQueryLanguage,結(jié)構(gòu)查詢語(yǔ)言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)語(yǔ)言。SQL通常使用于數(shù)據(jù)庫(kù)的通訊。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句通常用于完成一些數(shù)據(jù)庫(kù)的操作任務(wù),比如在數(shù)據(jù)庫(kù)中更新數(shù)據(jù),或者從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingress等等。雖然絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成絕大多數(shù)數(shù)據(jù)庫(kù)的操作。MSSQLServer就是用的Transact-SQL。

    SQL語(yǔ)言有著非常突出的優(yōu)點(diǎn),主要是:

    n非過程化語(yǔ)言

    n統(tǒng)一的語(yǔ)言

    n是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言

    非過程化語(yǔ)言:SQL是一個(gè)非過程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。

    SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法,這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。

    統(tǒng)一的語(yǔ)言:SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。

    SQL為許多任務(wù)提供了命令,其中包括:

    n查詢數(shù)據(jù)

    n在表中插入、修改和刪除記錄

    n建立、修改和刪除數(shù)據(jù)對(duì)象

    n控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取

    n保證數(shù)據(jù)庫(kù)一致性和完整性

    以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。

    第五頁(yè)

    所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言:由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫的程序都是可以移植的。

    2.4.2SQL語(yǔ)句

    SQL功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語(yǔ)言,不僅用于數(shù)據(jù)庫(kù)查詢,而且用于數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改和更新,概括起來(lái),它可以分成以下幾組:

    DML(DataManipulationLanguage,數(shù)據(jù)操作語(yǔ)言):用于檢索或者修改數(shù)據(jù);

    DDL(DataDefinitionLanguage,數(shù)據(jù)定義語(yǔ)言):用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫(kù)對(duì)象;

    DCL(DataControlLanguage,數(shù)據(jù)控制語(yǔ)言):用于定義數(shù)據(jù)庫(kù)用戶的權(quán)限。

    DML組可以細(xì)分為以下的幾個(gè)語(yǔ)句:

    SELECT:用于檢索數(shù)據(jù);

    INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫(kù);

    UPDATE:用于從數(shù)據(jù)庫(kù)中修改現(xiàn)存的數(shù)據(jù);

    DELETE:用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。

    DDL語(yǔ)句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫(kù)對(duì)象。下面是DDL命令:

    CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX

    下面是一個(gè)簡(jiǎn)單SQL語(yǔ)句的例子:

    我們使用SQL語(yǔ)句來(lái)從Book中檢索‘借書證號(hào)’為‘000001’的借閱者姓名:

    SELECT姓名FROMBookWHERE借書證號(hào)=‘000001’

    2.4.2.1DDL與DML

    數(shù)據(jù)定義語(yǔ)言DDL:它是用來(lái)創(chuàng)建和修改數(shù)據(jù)庫(kù)結(jié)構(gòu)的一種語(yǔ)句,包括Create、Alter和Drop語(yǔ)句。

    數(shù)據(jù)操作語(yǔ)言DML:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由Select語(yǔ)句完成,這一點(diǎn)不再贅述。而數(shù)據(jù)更新所造成的風(fēng)險(xiǎn)大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫(kù)管理系統(tǒng)必須在更改期內(nèi)保護(hù)所存儲(chǔ)的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。

    用于修改數(shù)據(jù)庫(kù)內(nèi)容的SQL語(yǔ)句主要有以下三個(gè):

    (1)Insert,向一個(gè)表中加入新的數(shù)據(jù)行

    (2)Delete,從一個(gè)表中刪除數(shù)據(jù)行

    (3)Update,更改數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù)

    Insert標(biāo)準(zhǔn)語(yǔ)法:

    INSERTINTOtablename(col1,col2...)VALUES(value1,value2...)

    第六頁(yè)

    下例要將借書證號(hào)為‘000001’作為一個(gè)新的借書情況加入借書情況表OWNER中

    InsertInto

    owner(借書證號(hào),圖書編號(hào),借書日期)

    values(‘000001’,‘00000001’,‘2002-9-12’)

    Insert語(yǔ)句還可以將多行數(shù)據(jù)添加到目標(biāo)表中去,在這種形式的Insert語(yǔ)句中,新行的數(shù)據(jù)值不是在語(yǔ)句正文中明確地指定的,而是語(yǔ)句中指定的一個(gè)數(shù)據(jù)庫(kù)查詢。添加的值來(lái)自數(shù)據(jù)庫(kù)自身的行,在某些特定的狀態(tài)下,這是非常有用的。多行Insert語(yǔ)句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法,但我在自己做的圖書管理系統(tǒng)中沒有使用這種方法,我在系統(tǒng)中是使用循環(huán)依照上面的用法來(lái)完成多個(gè)記錄的插入。

    Update語(yǔ)句用于更新單表中選定行的一列或多列的值。要更新的目標(biāo)表在語(yǔ)句中定義,Set子句則指定要更新哪些列并計(jì)算它們的值。Update語(yǔ)句總是包含Where語(yǔ)句,而且Update語(yǔ)句比較危險(xiǎn),所以您必須明確地認(rèn)識(shí)到Where語(yǔ)句的重要性,Where語(yǔ)句被用來(lái)指定需要更新的行。

    標(biāo)準(zhǔn)語(yǔ)法:

    UPDATEtablename

    SETcolumnname1=value1

    [,columname2=value2]...

    WHEREsearchcondition

    Delete語(yǔ)句標(biāo)準(zhǔn)語(yǔ)法:

    DELETEFROMtablenameWHEREcondition

    2.4.2.2復(fù)雜操作實(shí)現(xiàn)

    在信息管理系統(tǒng)中,我們往往會(huì)遇到歸類、匯總、映射、索引、子查詢等復(fù)雜操作,相應(yīng)的支持與實(shí)現(xiàn)如下:

    uGROUPBY方法

    GROUPBY子句語(yǔ)法為:

    SELECTcolumn1,SUM(column2)

    FROM"list-of-tables"

    GROUPBY"column-list";

    這個(gè)GROUPBY子句將集中所有的行在一起,它包含了指定例的數(shù)據(jù)以及允許合計(jì)函數(shù)來(lái)計(jì)算一個(gè)或者多個(gè)列。

    在本人的系統(tǒng)中在顯示數(shù)據(jù)時(shí)用到了此語(yǔ)句來(lái)對(duì)查詢所得的內(nèi)容排序然后再顯示。

    u組合條件和布爾運(yùn)算符

    以下的SQL語(yǔ)句中就含有組合條件:

    第七頁(yè)

    SELECTcolumn1,SUM(column2)

    FROM"list-of-tables"

    WHERE"condition1"AND"condition2";

    下面是一個(gè)示例:

    SELECT身份描述

    FROMID,user

    WHEREID.身份編號(hào)=USER.身份編號(hào)anduser.借書證號(hào)=’000001’;

    這條SQL語(yǔ)句是從user、id表中查找借閱證號(hào)為000001的借閱者的身份描述,第三條語(yǔ)句中如果其中有一個(gè)條件為假,那么就什么都沒有顯示。

    uUNION子句

    有些時(shí)候,需要一起瀏覽多個(gè)查詢的結(jié)果、組合它們的輸出,我們可以使用UNION關(guān)鍵字。

    注意:MicrosoftSOLSever2000(以下簡(jiǎn)寫為SQLBSever2000)是功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RelationalDatabaseManagementSystem簡(jiǎn)稱RDBMS)之一,越來(lái)越多的專業(yè)人士選擇SQLBSever2000開發(fā)數(shù)據(jù)庫(kù)管理程序,SQLBSever2000是Microsoft公司開發(fā)的SQLBSever的最新版本。SQLBSever是用來(lái)建立和管理數(shù)據(jù)庫(kù)的引擎。它的作用和我們熟悉的桌面型數(shù)據(jù)庫(kù)管理系統(tǒng)FOXBASE、VisualFoxPro一樣,但在存儲(chǔ)大容量數(shù)據(jù)方面、在數(shù)據(jù)的安全性和完整性的方面、在分布式處理和具有高效的機(jī)制等方面,像FoxPro等桌面型數(shù)據(jù)庫(kù)管理系統(tǒng)是不能實(shí)現(xiàn)的。也就是說(shuō),SQLSever不僅可以實(shí)現(xiàn)個(gè)人數(shù)據(jù)庫(kù)的管理,更適合于企業(yè)級(jí)的數(shù)據(jù)庫(kù)應(yīng)用。

    第八頁(yè)

    第三章詳細(xì)設(shè)計(jì)

    3.1家長(zhǎng)學(xué)校聯(lián)絡(luò)簿

    3.1.1功能

    利用SQL語(yǔ)法過濾特定的家長(zhǎng)留言意見(上面我們已經(jīng)有介紹),讓老師可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見做出獨(dú)立的回答,同時(shí),家長(zhǎng)在發(fā)表個(gè)人意見時(shí),若認(rèn)為意見內(nèi)容涉及敏感的話題或是意見內(nèi)容涉及私人隱私,都可用“悄悄話”的方式發(fā)言,這些“悄悄話”將不會(huì)被顯示出來(lái)讓大家看到,當(dāng)然,老師擁有管理的能力,只要以密碼登錄管理模式,就可以進(jìn)行各個(gè)學(xué)生家長(zhǎng)的單獨(dú)意見回復(fù),而且還能看到家長(zhǎng)們所留下的“悄悄話”。

    3.1.2組成構(gòu)造

    組成構(gòu)造共分成六大部分:

    1,意見留言結(jié)果網(wǎng)頁(yè)guest.asp:用來(lái)顯示家長(zhǎng)發(fā)言與老師回復(fù)內(nèi)容,同時(shí)還具備一般模式與管理模式兩種顯示方法。

    2,家長(zhǎng)發(fā)言表單網(wǎng)頁(yè)addmsg.asp:讓學(xué)生家長(zhǎng)填寫發(fā)言內(nèi)容并選擇發(fā)言性質(zhì)。

    3,家長(zhǎng)發(fā)言數(shù)據(jù)處理ASP程序add.asp:處理家長(zhǎng)發(fā)表的意見數(shù)據(jù),同時(shí)將這些意見數(shù)據(jù)記錄起來(lái)并將網(wǎng)頁(yè)顯示轉(zhuǎn)向至意見留言結(jié)果網(wǎng)頁(yè)。

    4,老師回復(fù)表單網(wǎng)頁(yè)teachans.asp:讓老師針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見做出獨(dú)立的回答。

    5,老師回復(fù)數(shù)據(jù)處理ASP程序anssave.asp:處理老師回復(fù)的數(shù)據(jù)內(nèi)容,同時(shí)將這些意見數(shù)據(jù)起來(lái)并將網(wǎng)頁(yè)顯示轉(zhuǎn)向至意見留言結(jié)果網(wǎng)頁(yè)。

    6,數(shù)據(jù)表文件allmessage:用來(lái)儲(chǔ)存家長(zhǎng)發(fā)言數(shù)據(jù)與老師回復(fù)數(shù)據(jù)的Access類型數(shù)據(jù)庫(kù)文件。

    “數(shù)據(jù)表文件”負(fù)責(zé)存放家長(zhǎng)發(fā)言數(shù)據(jù)與老師回復(fù)內(nèi)容的數(shù)據(jù)記錄,為Access類型的庫(kù)文件,將它定名為:“message.mdb”

    下圖為家庭聯(lián)絡(luò)簿的組成與流程圖:

    家長(zhǎng)留言:

    家長(zhǎng)姓名

    第九頁(yè)

    留言主題

    聯(lián)絡(luò)信箱

    留言內(nèi)容

    發(fā)送

    ▼(自動(dòng)進(jìn)入下一步)

    老師回復(fù)

    3.1.3數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)

    數(shù)據(jù)庫(kù)文件”teach.mdb“中的數(shù)據(jù)表”allmessage“的欄目設(shè)置

    3.1.4界面設(shè)計(jì)與重點(diǎn)、難點(diǎn)代碼的設(shè)計(jì)

    數(shù)據(jù)庫(kù)與留言顯示程序網(wǎng)頁(yè):

    家長(zhǎng)發(fā)言與老師回復(fù)的內(nèi)容數(shù)據(jù)全部?jī)?chǔ)存在數(shù)據(jù)庫(kù)中,要在網(wǎng)頁(yè)中顯示目前的家長(zhǎng)發(fā)言與老師回復(fù)數(shù)據(jù),必須先進(jìn)行數(shù)據(jù)庫(kù)的鏈接與打開,要鏈接數(shù)據(jù)庫(kù)我們必須使用ADO對(duì)象群的Connection對(duì)象;而要打開數(shù)據(jù)庫(kù)則必須使用ADO對(duì)象群的Recordset對(duì)象,程序:

    第十頁(yè)

    setcan=server.createobject("adodb.connection")

    cn.open"fields=c:\programfiles\commonfiles\orb\datasources\msaccessdatabase’s"

    setas=server.createobject("adodb.recordset")

    sol="select*fromallmessageorderby留言時(shí)間desk"

    rs.opensql,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ù)內(nèi)的數(shù)據(jù),因此必須建立一個(gè)可以存取數(shù)據(jù)庫(kù)數(shù)據(jù)的Recordset對(duì)象,

    使用RS.Open方法存取”teach.mdb”數(shù)據(jù)庫(kù)

    RS.OpenSQL,CN,1,1

    使用open方法來(lái)打開數(shù)據(jù)表或執(zhí)行Select指令參數(shù)設(shè)置如下:

    1,參數(shù)一(SOURCE):為欲打開的數(shù)據(jù)表或SQL指令。

    2,參數(shù)二(ActionConnection):指定一個(gè)已打開的數(shù)據(jù)庫(kù)對(duì)象,將此參數(shù)設(shè)為鏈接我們已經(jīng)建立好的Connection對(duì)象“CN”。

    3,參數(shù)三(CursorType):指定Recordset的打開類型,1為可讀寫且可自由移動(dòng)。

    4,參數(shù)四(LockType):指定鎖定類型,1為只讀。

    數(shù)據(jù)排序與SQL指令

    1,Select指令的篩選語(yǔ)句:

    格式:Select…From

    在SQL語(yǔ)言中:“Select”數(shù)據(jù)表“中選取某些“欄位”的數(shù)據(jù).

    2.如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了一個(gè)以上的欄位,則我們可以利用“,”逗號(hào)來(lái)欄位名稱隔開。

    3.如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了全部的欄位,則可以利用萬(wàn)用字符“*”來(lái)代表全部的欄位。

    可排序數(shù)據(jù)的Select指令

    1.當(dāng)我們希望被選取出來(lái)的數(shù)據(jù)記錄數(shù)據(jù)能夠依據(jù)某個(gè)或某幾個(gè)欄位的內(nèi)容來(lái)排序時(shí),只要將這些排序依據(jù)的欄位擺放在“OrderBy“保留字之后,然后將這處排序的語(yǔ)句連接在”Select…From“后面就行了。

    2.“OrderBy”默認(rèn)的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,則我們可在欄位名稱后再加上Desk“保留字!將排序方式改為”由大排到小。

    在“顯示留言意見”網(wǎng)頁(yè)中的打開數(shù)據(jù)庫(kù)ASP程序中的語(yǔ)句:

    SELECT*Fromallmessageorderby留言日期Desk

    第十一頁(yè)

    功能為:從數(shù)據(jù)表“allmessage”中取出所有欄位的數(shù)據(jù),并將取出的數(shù)據(jù)記錄內(nèi)容依照留言日期“欄位使用的”由大排到小“排序方式進(jìn)行排序。

    留言顯示網(wǎng)頁(yè)的管理模式:

    “顯示留言意見”的網(wǎng)頁(yè)就必須具備顯示模式選擇的功能,當(dāng)顯示模式在一般情況時(shí)要能顯示家長(zhǎng)們的一般性發(fā)言,同時(shí)還得將“悄悄話”的發(fā)言隱藏起來(lái)。當(dāng)老師以密碼登錄成為管理模式時(shí),則必須將一般性發(fā)言與悄悄話發(fā)言的數(shù)據(jù)全部顯示出來(lái),同時(shí)還得讓老師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見做出獨(dú)立的回答。

    這兩個(gè)情況是通過密碼登錄管理模式的ASP程序?qū)崿F(xiàn)的:

    <formmethod="post">

    <%ifsession("checkedit")="yes"then%>

    <inputtype="hidden"value="yes"name="goexit">

    <inputtype="submit"value="離開管理模式">

    <%else%>

    密碼:<inputtype="password"name="password"size="4"maxlength="4">&nbsp&nbsp<inputtype="submit"value="教師管理">

    <%endif%>

    </form>

    在這段網(wǎng)頁(yè)語(yǔ)句中,利用Session對(duì)象來(lái)記錄目前的工作模式。當(dāng)我們第一次進(jìn)入“顯示留言意見”網(wǎng)頁(yè)的時(shí)候,我們所見的網(wǎng)頁(yè)畫面一定是一般!因?yàn)镾ession尚未被建立,因此它的“變量”值一定不會(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ā)言與悄悄話發(fā)言的數(shù)據(jù)全部顯示出來(lái),同時(shí)還讓教師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見做出獨(dú)立回答的管理模式頁(yè)面。

    留言顯示網(wǎng)頁(yè)的分頁(yè):

    當(dāng)家長(zhǎng)的發(fā)言與老師回復(fù)的數(shù)據(jù)筆數(shù)太多時(shí),一次要將全部的數(shù)據(jù)內(nèi)容顯示在網(wǎng)頁(yè)中,等待網(wǎng)頁(yè)下載的時(shí)間太長(zhǎng)了,因此采用固定筆數(shù)分頁(yè)瀏覽方式來(lái)顯示網(wǎng)頁(yè)。

    要進(jìn)行分頁(yè)顯示,得先知道目前有多少筆的留言數(shù)據(jù),而留言數(shù)據(jù)筆數(shù)可以通過Recordset對(duì)象的“Recordcount”(記錄個(gè)數(shù))屬性得知,我們將每10筆數(shù)據(jù)為一單位分頁(yè)顯示:

    count=rs.recordcount

    第十二頁(yè)

    ifcount/10>(count\10)then

    totalpage=(count\10)+1

    elsetotalpage=(count\10)

    endif

    “/”為浮點(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

    ifRequest.QueryString("topage")<>""thenpagecount=cant(Request.QueryString("topage"))

    ifpagecount<=0thenpagecount=1

    ifpagecount>totalpagethenpagecount=totalpage

    RS.Open(pagecount-1)*10

    發(fā)言表單網(wǎng)頁(yè)制作

    inserttu3

    表單的參數(shù):

    表單的Action參數(shù):Action參數(shù)是用來(lái)指定Server端處理此一表單數(shù)據(jù)內(nèi)容的程序,此處表單處理ASP程序?yàn)椤癮dd.asp“,

    表單的Mouthed參數(shù):要將表單傳送至Server端的方式有兩種,設(shè)置值分別為GET及POST,若設(shè)置為POST,則瀏覽器會(huì)等Server端來(lái)讀取數(shù)據(jù),若設(shè)置為GET,則當(dāng)我們按下送出按鈕時(shí),瀏覽器會(huì)立即將表單中的數(shù)據(jù)內(nèi)傳送出去。利用POST方法,在傳送的數(shù)據(jù)上將不受限制,利用GET方法傳送的數(shù)據(jù)量則大約只有2K左右。

    留言處理程序:

    要將家長(zhǎng)發(fā)言數(shù)據(jù)作后續(xù)處理及將這些數(shù)據(jù)內(nèi)容存入數(shù)據(jù)庫(kù),須利用添加數(shù)據(jù)記錄的InsertInto指令,然后再寫入數(shù)據(jù)庫(kù)文件中:

    Insetinto指令語(yǔ)句格式:

    Insertinto數(shù)據(jù)表名(欄目名)values(欄目值)

    sol="insertintoallmessage(家長(zhǎng)姓名,留言主題,聯(lián)絡(luò)信箱,留言內(nèi)容,私人公開,留言時(shí)間,班級(jí))values("

    第十三頁(yè)

    sol=sol&"''''"&parent&"'''',"

    sol=sql&"''''"&subject&"'''',"

    sol=sql&"''''"&email&"'''',"

    sol=sql&"''''"&memo&"'''',"

    sol=sql&"''''"&personal&"'''',"

    sol=sql&"''''"&now&"'''',"

    sol=sql&"''''"&bj&"'''')"

    unexecutedsol

    回復(fù)表單程序網(wǎng)頁(yè)

    必須讓老師們可以針對(duì)某位特定學(xué)生家長(zhǎng)所發(fā)表的意見做出獨(dú)立的回答,

    使用Select…From…Where篩選語(yǔ)句

    sol="select*fromallmessagewhere(編號(hào)="&ID&")"

    rs.opensql,cn,1,3

    然后將特定的家長(zhǎng)發(fā)言數(shù)據(jù)放在表單,方法是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)取出來(lái),然后放在表單欄位中:

    “家長(zhǎng)姓名“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)簽

    <tdbicolor="#CCCCFF"><fontsize="2"><%=RS("家長(zhǎng)姓名")%><font></td>

    “留言主題“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)簽

    <tdbicolor="#CCCCFF"><fontsize="2"><%=RS("留言主題")%></font></td>

    “留言內(nèi)容“欄位網(wǎng)頁(yè)語(yǔ)句標(biāo)簽

    <tdbicolor="#CCCCFF"><fontsize="2"><%=RS("留言內(nèi)容")%><font></td>

    老師在回復(fù)欄位中所填入的數(shù)據(jù),必須送給處理老師回復(fù)數(shù)據(jù)的ASP程序”anssave.asp”來(lái)記錄以及處理這些回復(fù)數(shù)據(jù)。當(dāng)老師填寫好回復(fù)發(fā)言的數(shù)據(jù)后按下“送出回復(fù)”按鈕后,表單中的數(shù)據(jù)內(nèi)容就會(huì)以“POST”的方式由SEVER端讀取,然后將數(shù)據(jù)內(nèi)容交由處理老師回復(fù)數(shù)據(jù)的ASP程序“anssave.asp”來(lái)將數(shù)據(jù)內(nèi)容寫入數(shù)據(jù)庫(kù)。

    3.2網(wǎng)上圖書館

    網(wǎng)上圖書館將學(xué)校圖書館圖書放到網(wǎng)絡(luò)上供人借閱,這樣不僅方便了校內(nèi)的學(xué)生與教職員工使用圖書館的資源,還為圖書館管理員提供了一種簡(jiǎn)便地管理圖書館的方法.圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。

    因此本人結(jié)合開入式圖書館的要求,對(duì)MSSQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)、SQL語(yǔ)言原理、Delphi應(yīng)用程序設(shè)計(jì),Delphi數(shù)據(jù)庫(kù)技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對(duì)圖書管理

    第十四頁(yè)

    系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級(jí)管理員三方面的需要。

    3.2.1功能及應(yīng)用需求

    功能:

    網(wǎng)上圖書館系統(tǒng)可以進(jìn)行圖書的出借和歸還.還可以在系統(tǒng)中按照多種字段對(duì)圖書進(jìn)行查找,還可以瀏覽某個(gè)種類的所有圖書.該應(yīng)用程序也為圖書館管理員提供了一些功能,如添加、編輯以及刪除圖書等,或者在分類層次結(jié)構(gòu)中添加新的種類。

    應(yīng)用需求分析:

    圖書管理系統(tǒng)需要滿足來(lái)自三方面的需求,這三個(gè)方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個(gè)人借閱情況及個(gè)人信息的修改;圖書館工作人員對(duì)圖書借閱者的借閱及還書要求進(jìn)行操作,同時(shí)形成借書或還書報(bào)表給借閱者查看確認(rèn);圖書館管理人員的功能最為復(fù)雜,包括對(duì)工作人員、圖書借閱者、圖書進(jìn)行管理和維護(hù),及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書報(bào)表。

    圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號(hào)和密碼登錄系統(tǒng),還可以進(jìn)行本人借書情況的查詢和維護(hù)部分個(gè)人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護(hù)本人的借書情況和個(gè)人信息,若查詢和維護(hù)其他借閱者的借書情況和個(gè)人信息,就要知道其他圖書借閱者的借書證號(hào)和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個(gè)人隱私。

    圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,所以需對(duì)工作人員登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應(yīng)的報(bào)表給用戶查看和確認(rèn)。

    圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對(duì)圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計(jì)、工作人員和管理人員信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計(jì)圖書的基本信息;瀏覽、查詢、統(tǒng)計(jì)、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計(jì)圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應(yīng)該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該圖書借閱者借閱記錄的級(jí)聯(lián)刪除。設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法,對(duì)所有用戶開放的圖書查詢,借閱者維護(hù)借閱者個(gè)人部分信息,借閱者查看個(gè)人借閱情況信息。

    第十五頁(yè)

    3.2.2系統(tǒng)的層次結(jié)構(gòu)

    下圖的每個(gè)方框代表校園圖書館網(wǎng)站中的一個(gè)頁(yè)面。除了只包含HTML的Search頁(yè)面外,其他的均為ASP頁(yè)面。因?yàn)槊總€(gè)圖書的頁(yè)面都不同,所以大多數(shù)的頁(yè)面實(shí)際上都是多頁(yè)面。

    3.2.3數(shù)據(jù)庫(kù)設(shè)計(jì)

    本系統(tǒng)共使用3個(gè)數(shù)據(jù)表:

    Flipbooks表包含與圖書有關(guān)的所有數(shù)據(jù)。該表中的字段內(nèi)容的圖書的通用信息。另外,對(duì)于已經(jīng)出借的圖書,該表中還包含借閱該圖書的用戶的ID號(hào),以及圖書的狀態(tài)。

    表視圖如下:

    字段名字段類型意義字段名字段類型意義

    Booked數(shù)字書號(hào)Status文本狀態(tài)

    Title文本著者Number數(shù)字學(xué)好

    Author文本主題Checkedoutto數(shù)字用戶id

    Subject文本書名Reservedby文本描述

    IBM號(hào)Keywords關(guān)鍵字Description主題文本

    LibCategories表包含Library中的所有類別,在訪問者瀏覽圖書列表時(shí)將會(huì)用到這些類別。每個(gè)類別都可以作為另外類別的父類別。有一個(gè)特殊的類別,Top-Level,沒有出現(xiàn)在類別列表中,但是可以作為其他任何類別的父類別。

    字段名意義字段類型

    Categoryname類別文本(null)

    parentcategory父類別文本(null)

    Lineups表包含可以訪問圖書館網(wǎng)站的用戶信息。該表包含一些通用的信息字段,比如用于進(jìn)入圖書館的用戶密碼等。

    字段名意義字段類型字段名意義字段類型

    emptied用戶id(主鍵nonull)數(shù)字password用戶密碼文本

    name用戶姓名文本manage管理員代號(hào)數(shù)字

    emailaddress用戶郵箱文本

    第十六頁(yè)

    圖書館數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)系。其中表Lineups和表LibCategories與表Flipbooks之間都是一對(duì)多的關(guān)系。每個(gè)雇員都可以借閱多本圖書,每個(gè)類別都可以包含多本圖書。

    3.2.3界面設(shè)計(jì)與重點(diǎn)代碼的設(shè)計(jì)

    網(wǎng)上圖書館系統(tǒng)有兩種用戶,一是管理員。另一種是只允許使用圖書館系統(tǒng),而沒有管理功能的一般用戶。訪問者進(jìn)入網(wǎng)站,首先要進(jìn)行登錄。當(dāng)借閱者正確登錄到系統(tǒng)后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統(tǒng)中,信息的顯示一般用ListView來(lái)實(shí)現(xiàn),只在較少的情況下用到了Degrade,因?yàn)槲矣X得ListView更好實(shí)現(xiàn),并能使信息數(shù)據(jù)對(duì)用戶的完全分離

    訪問者輸入E-mail地址和密碼來(lái)登錄,然后單擊“登錄”按鈕。輸入的數(shù)據(jù)提交后與數(shù)據(jù)庫(kù)中的用戶表進(jìn)行匹配。

    須創(chuàng)建一個(gè)記錄來(lái)保存基于訪問者登錄的用戶信息

    setRefined=conn.Execute("selectEmptied,ManagerfromLineupswhere"_

    &"EmailAddress=''''"&Request.Form("EmailAddress")&"''''and"_

    &"Password=''''"&Request.Form("Password")&"''''")

    ifRSFindEmp.EOFthen

    TheMessage="密碼或email地址不對(duì)."

    Else

    Session("Emptied")=Refined("Emptied")

    Session("Manager")=Refined("Manager")

    Response.Redirect"../yk.htm"

    endif

    表單域EmailAddress和Password用于Where了句中來(lái)獲取一個(gè)記錄。如果訪問者輸入了一個(gè)無(wú)效的用戶名,則記錄集中將不會(huì)返回匹配的記錄。我們可以通過查看EOF標(biāo)記來(lái)判斷一個(gè)記錄集是否為空。為空,則訪問者將被拒絕進(jìn)入該系統(tǒng)。不為空,則訪問者的Emptied值和Manager值將從記錄集中返回。寫入Session變量,變量將在整個(gè)網(wǎng)站的所有網(wǎng)頁(yè)中都是有效的。這些變量的存在與否及其取值將用于確定是否允許進(jìn)入一個(gè)特定的網(wǎng)頁(yè),同時(shí)也用于訪問者進(jìn)行書目的歸還和借閱操作。

    圖書館菜單頁(yè)面:

    圖書館菜單頁(yè)面包含指向其他4個(gè)頁(yè)面的鏈接:管理頁(yè)面、搜索頁(yè)面、圖書列表頁(yè)

    第十七頁(yè)

    面和主頁(yè)面。還有一個(gè)可顯示用戶所借書籍的按紐。如果訪問者是圖書館管理員,則菜單界面如圖所示。如果訪問者不是圖書館管理員,則看到如圖所示的界面。非管理員的訪問者的界面上沒有指向管理員菜單頁(yè)面的鏈接。

    實(shí)現(xiàn)辦法:訪問者登錄時(shí)在登錄頁(yè)面上的創(chuàng)建的會(huì)話變量Session用于從數(shù)據(jù)庫(kù)中獲取訪問者的有關(guān)信息,表示它是否是管理員。如果值為1,就表明訪問者是一個(gè)管理員,則用如下代碼寫入一個(gè)指向管理員頁(yè)面的鏈接:

    <%IfSession("Manager")=1then%>

    <AHREF="../html/management_menu.asp">管理員菜單</A>

    <%endif%>

    通過按紐B1是否為空來(lái)判斷要不要顯示用戶所借圖書,利用一個(gè)記錄集來(lái)獲取訪問者已經(jīng)借出了的所有圖書的列表。

    IfNOTisempty(Request.Form("B1"))then

    setRSBooks=conn.Execute("selectBookID,TitlefromLibBookswhere"_

    &"CheckedOutTo="&Session("Emptied"))

    endif

    再用循環(huán)語(yǔ)句將所借書以表格形式顯示出來(lái)。

    <Tableborder=1width="90%">

    <%ifNOTisempty(Request.Form("B1"))then

    DoUntilRSBooks.EOF%>

    <TR>

    <TDWIDTH=40%height="20"><%Response.WriteRSBooks("Title")%></td></tr>

    <%RSBooks.MoveNext

    loop

    endif

    %>

    </table>

    循環(huán)將遍歷Rebooks記錄集中的每個(gè)記錄,直到該記錄集結(jié)束:

    該網(wǎng)站中的所有ASP頁(yè)面都會(huì)在訪問者訪問之前對(duì)其進(jìn)行登錄檢查。這樣就可以避免訪問者通過輸入某個(gè)頁(yè)面地址然后在沒有登錄的情況下直接進(jìn)入該頁(yè)面的情況發(fā)生。此外,每個(gè)管理頁(yè)面都要確認(rèn)訪問者是管理員。

    管理菜單頁(yè)面:

    管理菜單頁(yè)面有一個(gè)HTML表單,根據(jù)選擇的按鈕的不同,可以進(jìn)行5種不同的操作:

    第十八頁(yè)

    圖書的歸還、圖書的編輯、圖書的刪除、圖書的添加和類別的添加。不管選擇了哪一個(gè)按鈕,該表單都提交人其自身進(jìn)行處理。

    要進(jìn)行圖書的歸還、圖書的編輯、圖書的刪除三種操作,須先進(jìn)行搜索,找到該書后,由圖書Book.asp返回一個(gè)鏈接:

    <%IfSession("Manager")=1then%>

    <AHREF="../html/management_menu.asp?Title=<%response.WriteRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理員菜單</A>

    <%endif%>

    而管理者頁(yè)面通過下列語(yǔ)句

    <%=request.querystring("title")%>

    <inputtype=hiddenname="BOOKID1"value="<%=request.querystring("BOOKID")%>>

    這樣就將所找到的書的書號(hào)BookID、書名Title傳遞管理者頁(yè)面。再進(jìn)行所須操作。共有3個(gè)不同的銨紐,可以進(jìn)行3種操作。若單擊“修改”鈕:

    則重定向到編輯圖書頁(yè)面,同時(shí)把Bookid傳遞給該頁(yè)面。

    Response.Redirect"./edit_book.asp?BOOKID="&request("BOOKID1")

    將其他的情況需要建立到數(shù)據(jù)庫(kù)的連接:

    setconn=server.createobject("adodb.connection")

    Conn.Open("FILEDSN=c:\ProgramFiles\CommonFiles\ODBC\DataSources\msaccessdatabase’s")

    ifNOTisempty(Request.Form("Delete"))andrequest("BOOKID1")<>""then

    conn.Execute"deletefromLibBookswhereBOOKID="&request("BOOKID1")

    endif

    if(NOTisempty(Request.Form("checkin")))andrequest("BOOKID1")<>""then

    conn.Execute"updateLibBookssetcheckedoutto=0,status=''''Available''''whereBookID="&Request("BOOKID1")

    endif

    頁(yè)面中的添加新的種類部分包含一個(gè)文本控件和一個(gè)選擇控件。其中選擇控件是用所有已經(jīng)存在的類別列表進(jìn)行填充的,包括特殊類別Toplevel,該類別表明當(dāng)前類別是處于類別層次結(jié)構(gòu)中的最頂層。代碼如下:

    先用一個(gè)記錄集來(lái)填充父類別選擇控件:

    setRSCategories=conn.Execute("selectCategoryNamefromLibCategoriesorderby

    第十九頁(yè)

    CategoryName")

    再用下列循環(huán)語(yǔ)句:

    <%DoUntilRSCategories.EOF%>

    <OPTIONVALUE="<%response.WriteRSCategories("CategoryName")%>"><%response.writeRSCategories("CategoryName")%></OPTION>

    <%RSCategories.MoveNextLoop%>

    遍歷RSCategories記錄集中的每個(gè)記錄,并作為一個(gè)選項(xiàng)添加到列表中,而記錄集中CategoryName同時(shí)作為顯示值和傳遞值:

    本頁(yè)面還包含一個(gè)指向添加圖書頁(yè)面的鏈接。

    搜索結(jié)果頁(yè)面:

    搜索頁(yè)面的代碼獲取與訪問者查找規(guī)則相匹配的圖書,然后將這些圖書顯示給訪問者。

    搜索頁(yè)面上的表單包含一個(gè)選擇控件和一個(gè)文本控件。選擇控件中的選項(xiàng)是用可搜索的字段填充的:

    需要用一個(gè)記錄集來(lái)保存與訪問者的查找規(guī)則相匹配的記錄:

    setRSBooks=conn.Execute("selectBookID,Author,Title,SubjectfromLibBookswhere"_

    &Request.Form("SearchField")&"Like''''%"&Request.Form("SearchCriteria")&"%''''")

    @注意:,符號(hào)%表示的是一個(gè)廣義搜索。這一點(diǎn)類似于ACCESS中的符號(hào)*。

    然后將所找到的書以表格形式顯示出來(lái)。代碼如下:

    <%DoUntilRSBooks.EOF%>

    <TRVALIGN="top"ALIGN="left">

    <TDWIDTH=40%height="20"><B>書名:</B><AHREF="../html/book.Asp?BookID=<%Response.WriteRSBooks("BookID")%>"><%Response.WriteRSBooks("Title")%></A></TD>

    <tdwidth=20%height="20"><B>作者:</B><%Response.WriteRSBooks("Author")%></td>

    <tdwidth=30%height="20"><B>主題:</B><%Response.WriteRSBooks("Subject")%></td>

    <%RSBooks.MoveNextLoop%>

    圖書頁(yè)面

    圖書頁(yè)面的代碼顯示圖書的有關(guān)信息,以及管理圖書的出借操作。

    該頁(yè)面通過Querystring傳遞BookID

    第二十頁(yè)

    ifisempty(Request.QueryString("BookID"))then

    Response.Redirect"./search.html"

    endif

    如果其中不存在,則訪問者將被重定向到搜索頁(yè)面:

    如果同時(shí)傳遞表單中包含的變量Action不為空,則表明訪問者正借閱該圖書:

    ifNotisempty(Request.QueryString("Action"))then

    在這種情況下,需要將圖書狀態(tài)改為Checkout,同時(shí)需要將Checkedoutto字段修改為該訪問者:

    Conn.Execute"updateLibBookssetStatus=''''CheckedOut'''',"_

    &"CheckedOutTo="&Session("Emptied")&"whereBookID="_

    &Request.QueryString("BookID")

    Response.Redirect"./library_menu.asp"

    endif

    然后將該訪問者重定到圖書館菜單頁(yè)面:

    下一步,利用圖書的狀態(tài)來(lái)確定不同的鏈接

    未借出時(shí)鏈接如下:

    IfRSBooks("status")="Available"then

    LinkText="<AHREF=""../html/book.Asp?Action=CheckOut&BookID="_

    &Request.QueryString("BookID")&""">借這本書</A>"

    如果圖書已經(jīng)借出,就創(chuàng)建一個(gè)不同的消息,并將鏈接設(shè)置為指向Librarymenu頁(yè)面:

    LinkText="<AHREF=""../html/library_menu.asp"">圖書已出借,返回主菜單。</A>"

    最后根據(jù)是否是管理員,顯示管理員菜單鏈接。

    <%IfSession("Manager")=1then%><AHREF="../html/management_menu.asp?Title=<%response.WriteRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理員菜單</A><%endif%>

    3.3網(wǎng)上評(píng)優(yōu)投票系統(tǒng)

    3.3.1功能

    能實(shí)現(xiàn)全校性的評(píng)選,快捷、公平,且有效,不允許做票。

    3.3.2組成構(gòu)造

    這個(gè)系統(tǒng)由3個(gè)部分組成——投票頁(yè)面vote.htm,處理投票結(jié)果的腳本,顯示投票頁(yè)面。

    第二十一頁(yè)

    3.3.3數(shù)據(jù)表的設(shè)計(jì):

    3.3.4界面設(shè)計(jì)與重點(diǎn)、難點(diǎn)代碼設(shè)計(jì)

    投票頁(yè)面

    該頁(yè)面是一個(gè)純HTML文件,它讓用戶選擇自己想選舉的候選人,并填寫自己的詳細(xì)資料,以確認(rèn)投票的有效性。頁(yè)面顯示如圖所示。

    表單處理腳本

    在vote.htm中各項(xiàng)數(shù)據(jù)都填寫完畢后,單擊確定投票按鈕,表單的數(shù)據(jù)就被提交,

    本次評(píng)優(yōu)共有8個(gè)候選人,但只能選一個(gè)。故用復(fù)選框。

    投票的有效性通過是否是本校學(xué)生,且是否投過票來(lái)判斷。

    Ifrequest("passno")<>""then

    sol="select*fromstudwherepassword="&"''''"&request("passno")&"''''"&"andyeti=0"

    setas=unexecuted(sol)

    ifreshelfthen%>

    <h2align=center><%response.write"你無(wú)權(quán)投票"%></h1>

    本設(shè)計(jì)允許少選,不允許多選。通過判斷Vote投票界面?zhèn)鬟f過來(lái)的復(fù)選按紐值的長(zhǎng)度看是否多選。

    Vow=request("candy")

    iflens(vow)>8then%>

    <h2align=center><%response.write"多選了,無(wú)效"%></h1>

    然后根據(jù)所投的票將對(duì)應(yīng)候選人的投票結(jié)果字段加1,同時(shí)將該投票人的已投字段置為1。

    Esq.="updatestudsetyeti=1wherepassword="&"''''"&request("parson")&"''''"

    unexecuted(esq.)

    ifinsert(vo,"1")then

    unexecuted("updatestudsetresult=result+1wherename=''''馬月穎''''")

    endif

    ifinset(vo,"2")then

    unexecuted("updatestudsetresult=result+1wherename=''''張磊''''")

    endif

    ifinsert(vo,"3")then

    ifinsert(vo,"4")then

    unexecuted("updatestudsetresult=result+1wherename=''''宋穎''''")

    第二十二頁(yè)

    endif

    unexecuted(esq.)

    ifinsert(vo,"5")then

    unexecuted("updatestudsetresult=result+1wherename=''''馬月紅''''")

    endif

    unexecuted(esq.)

    ifinsert(vo,"6")then

    unexecuted("updatestudsetresult=result+1wherename=''''孫金輝''''")

    endif

    unexecuted(esq.)

    ifinsert(vo,"7")then

    unexecuted("updatestudsetresult=result+1wherename=''''王海軍''''")

    endif

    unexecuted("updatestudsetresult=result+1wherename=''''陳雪然''''")

    endif

    ifinset(vo,"8")then

    unexecuted("updatestudsetresult=result+1wherename=''''宋佳琦''''")

    endif%>

    顯示當(dāng)前投票情況show.asps

    由于投票處理頁(yè)面已經(jīng)完成了絕大部分的工作,所以顯示結(jié)果頁(yè)面就很簡(jiǎn)單了,其功能是從Stud表文件中讀取候選人所得票數(shù),顯示在頁(yè)面上。

    @值得注意的代碼主要有以下幾處:

    該頁(yè)面有自動(dòng)刷新功能,使在線用戶可以盡快的看到最新的選舉情況。我們這里設(shè)定每隔30秒鐘自動(dòng)刷新一次。

    <Metahttp-equiv="refresh"content="10;URL=show.asp">

    顯示投票時(shí),我們采用了while循環(huán),把候選人及其得票數(shù),整齊地顯示在一個(gè)表格中,這種技術(shù)在數(shù)據(jù)庫(kù)查詢結(jié)果的顯示中也經(jīng)常用到。代碼如下:

    <%whilenotself%>

    <tr>

    <tdwidth="100%"><center>

    <fontcolor="#8000ff"><big>

    第二十三頁(yè)

    <%=he("name")&""&she("result")&"票"%>

    </big></font>

    </center>

    </td>

    </tr>

    <%hs.movenext%>

    <%wend%>

    3.4達(dá)級(jí)考試在線查分系統(tǒng)與計(jì)數(shù)器的制作

    3.4.1功能:

    它提供了在線查看成績(jī)。考生可以在網(wǎng)上使用這一系統(tǒng),通過輸入準(zhǔn)考證編號(hào)來(lái)查詢達(dá)級(jí)考試的結(jié)果。

    3.4.2數(shù)據(jù)表的設(shè)計(jì)

    與評(píng)優(yōu)系統(tǒng)共用Stud表,表設(shè)計(jì)同上。

    3.4.3界面設(shè)計(jì)與重點(diǎn)難點(diǎn)代碼的設(shè)計(jì)

    該模塊需要查詢者輸入準(zhǔn)考證號(hào)后來(lái)查看結(jié)果。若ID1不為空時(shí),表示有表單輸入,開始查詢數(shù)據(jù)庫(kù)。使用SELECT的SQL指令查詢數(shù)據(jù)庫(kù)的數(shù)據(jù)。先設(shè)定SQL指令,查詢ID符合準(zhǔn)考證編號(hào)Request.Form("ID1")的數(shù)據(jù),下個(gè)“Execute”指令,即可開始執(zhí)行存取、查詢數(shù)據(jù)的動(dòng)作了。并將查詢結(jié)果儲(chǔ)存到Recordsets組件RS中。

    IFRequest.Form("ID1")<>""THEN

    SetConn=Server.CreateObject("ADODB.Connection")

    Conn.Open("FILEDSN=c:\ProgramFiles\CommonFiles\ODBC\DataSources\msaccessdatabase’s")

    SQL="SELECTname,id,scoreFROMstudWHEREid=''''"&Request.Form("ID1")&"''''"

    SetRS=Conn.Execute(SQL)

    若考試通過,則顯示考試的結(jié)果,包括姓名、準(zhǔn)考證編號(hào)、總分和考試結(jié)果,分別由RecordSets組件的RS(1)、RS(2)、RS(3)、RS(4)得到。FS.Field.Count表示RecordSets組件的域的總數(shù),由“forI=1toRS.Fields.count-1”,取得RS(I)各域的數(shù)據(jù)。配合<Table>表格的HTML語(yǔ)法,將結(jié)果填入表格的各單元格中。若還有下一個(gè)數(shù)據(jù),就使用RS.MoveNext移到下一個(gè)位置。

    3.4.4頁(yè)面訪問計(jì)數(shù)器的制作

    利用文件處理組件FILESYSTEM的強(qiáng)大功能來(lái)制作,比用Application對(duì)象計(jì)數(shù)器要好,Application計(jì)數(shù)器當(dāng)有20分鐘沒有人連上該網(wǎng)頁(yè)或關(guān)機(jī)時(shí),計(jì)數(shù)器會(huì)被歸零。而文件計(jì)數(shù)

    第二十四頁(yè)

    器卻不會(huì)因時(shí)間而消失。我用Count.txt存放訪問人次。代碼如下:

    whichfile=server.mappath("pic\count.txt")

    setmyfile=server.createobject("scripting.filesystemobject")創(chuàng)建一個(gè)

    setthisfile=myfile.opentextfile(whichfile)組件對(duì)象

    next

    visit=thisfile.readline

    thisfile.close讀取計(jì)數(shù)器數(shù)據(jù)文件Count.txt中的計(jì)數(shù)數(shù)據(jù)

    visit=visit+1記錄自加一次

    length=Len(visit)

    forI=1tolength

    response.write"<imparc="&mid(visit,i,1)&".jog></imp>"將記錄的數(shù)據(jù)用圖片顯示出來(lái)

    next

    setthisfile=myfile.createtextfile(whichfile,1)將新計(jì)數(shù)數(shù)據(jù)寫入文件thisfile.writeline(visit)

    setmyfile=nothing

    數(shù)字圖片我利用PHOTOSHOP中的文字特效制作了9個(gè)立方數(shù)字

    第二十五頁(yè)

    第四章系統(tǒng)的使用說(shuō)明與安裝

    4.1運(yùn)行環(huán)境要求

    1、此系統(tǒng)只能在以下環(huán)境中運(yùn)行:

    Windows98

    PersonalWebServer3.0(PWS)

    Microsoft?Access2000(9.0.2812)

    4.2安裝及設(shè)置

    1、安裝:

    A.將本網(wǎng)站拷貝到硬盤上的某一目錄下,如:拷貝至E:\MYY下。

    B.運(yùn)行PWS,將默認(rèn)的Web站點(diǎn)主目錄設(shè)置為該目錄,如上例應(yīng)為E:\MYY;

    具體步驟:

    a.選擇“高級(jí)”項(xiàng);

    b.單擊“編輯屬性”按鈕,在出現(xiàn)的“編輯屬性”對(duì)話框中的“目錄”項(xiàng)中填入“E:\MYY”,其他不變,確定;

    2、設(shè)置

    C.設(shè)置啟動(dòng)默認(rèn)文檔為:MYY.asp

    第二十六頁(yè)

    第五章參考文獻(xiàn)

    [1]李世杰ActiveServerPages(ASP)3.0網(wǎng)頁(yè)設(shè)計(jì)手冊(cè)北京:清華大學(xué)出版社1999

    [2]前沿電腦圖像工作室巧學(xué)巧用Dreamweaver、Fireworks、Flash制作網(wǎng)頁(yè)北京:人民郵電出版社

    [3]ASP入門與實(shí)例演練薄小志編著中國(guó)青年出版社

    [4]SQLSever中文版基礎(chǔ)培訓(xùn)教程劉遵仁于忠清編著人民郵電出版社

    附錄:

    INSERT用于檢索數(shù)據(jù)

    SELECT用于增加數(shù)據(jù)到數(shù)據(jù)庫(kù)

    UPDATE用于從數(shù)據(jù)庫(kù)中修改現(xiàn)存的數(shù)據(jù)

    DELETE用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)

    DML用于檢索或者修改數(shù)據(jù);

    DDL用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫(kù)對(duì)象

    DCL用于定義數(shù)據(jù)庫(kù)用戶的權(quán)限

    第二十七頁(yè)

    致謝:

    通過這次校園網(wǎng)站設(shè)計(jì),使我曾加了很多的知識(shí),也掌握了很多網(wǎng)頁(yè)設(shè)計(jì)的操作技巧,雖然仍有很多不足之處,有在改良和增進(jìn),但這以不重要,重要的是我對(duì)網(wǎng)頁(yè)的設(shè)計(jì)又有了更深的了解。這次畢業(yè)設(shè)計(jì)過程中,得到了很多的網(wǎng)絡(luò)設(shè)計(jì)朋友的幫助和老師的指點(diǎn),才得以完成,他們給我提供了很多有關(guān)網(wǎng)頁(yè)設(shè)計(jì)的書和材料,并抽出時(shí)間幫我修改與糾正,在此表示衷心的感謝!

    主站蜘蛛池模板: 国产不卡在线一区二区| 四虎成人精品无码| 最近国语高清免费观看视频| 国产精品亚洲mnbav网站| 亚洲国产一区二区精品专| 2020狠狠狠狠久久免费观看| 好吊妞| 性视频一区| 无人区码一码二码三码区| 欧美交a欧美精品喷水| 国产一区二区在线影院| 中文无码妇乱子伦视频| 国产又色又爽又黄的网站免费| 三年片在线观看免费观看大全下载| 日韩欧美中文字幕在线精品| 国产女人看国产在线女人| 偷自拍另类亚洲清纯唯美| 亚洲成a人片在线观看中| 午夜国产福利片在线观看| 欧美成本人视频免费播放| 亚洲色大成网站WWW永久麻豆| 性虎精品无码AV导航| 精品www日韩熟女人妻| 国产精品久久久久影院色| 国产蜜臀av在线一区在线| 亚洲国产精品综合久久2007| 一区二区传媒有限公司| 久久99精品国产麻豆婷婷| 日本熟妇人妻中出| 亚洲av理论在线电影网| 亚洲AV日韩精品久久久久| 国产精品第一页一区二区| 免费人成视频网站在线18| mm1313亚洲国产精品| 亚洲欧洲自拍拍偷综合| 色综合a怡红院怡红院首页| 人妻在线无码一区二区三区| 激情人妻自拍中文夜夜嗨| 精品国产一区二区三区麻豆| 亚洲永久一区二区三区在线| 精品久久香蕉国产线看观看亚洲|