李淵
摘 要:隨著數(shù)信息化技術(shù)不斷推進(jìn),無(wú)紙協(xié)同辦公、智能的批量數(shù)據(jù)處理,已成為信息化建設(shè)的重要課題,越來(lái)越多的工作可以利用計(jì)算機(jī)技術(shù)來(lái)完成。本文主要描述了基于Asp+Access小型投票系統(tǒng)的設(shè)計(jì)與關(guān)鍵技術(shù)實(shí)施過(guò)程。
關(guān)鍵詞:Asp+Access;投票系統(tǒng)
1、引言
我校已進(jìn)行了2屆的“優(yōu)秀名師課堂”評(píng)選,傳統(tǒng)一直由輔導(dǎo)員將學(xué)生召集在一起,發(fā)紙質(zhì)選票,然后人工唱票。這樣的工作冗長(zhǎng)、枯燥,一個(gè)過(guò)程失誤將影響整個(gè)結(jié)果的公正。因此,設(shè)計(jì)一個(gè)一體化的系統(tǒng),來(lái)統(tǒng)籌的完成全部工作,它能讓工作變得更方便、有趣。網(wǎng)上投票系統(tǒng)的實(shí)現(xiàn),也可以帶動(dòng)更多人參與到這項(xiàng)活動(dòng)中,使得投票結(jié)果更真實(shí)。
2、需求分析與設(shè)計(jì)思路
所設(shè)計(jì)的系統(tǒng):(1)本次投票采取分配賬號(hào)投票,不接受注冊(cè)賬號(hào)或匿名投票。(2)直觀的將候選人信息展示給大眾。(3)投票結(jié)束后自動(dòng)生成由高到低的票選結(jié)果。(4)投票操作過(guò)程簡(jiǎn)潔,不符合數(shù)量要求的選票無(wú)法投出。
本次投票參與者按角色分為教師、學(xué)生,使用工號(hào)或?qū)W號(hào)登錄。分為2個(gè)登陸入口,除投票結(jié)果獨(dú)立為教師投票結(jié)果、學(xué)生投票結(jié)果外,系統(tǒng)內(nèi)所有信息均共享。每位參與者限定為低于6票或大于8票無(wú)法投出,投票后即刻在數(shù)據(jù)庫(kù)內(nèi)記錄下投出者賬號(hào)。該賬號(hào)若有再次投票操作,數(shù)據(jù)庫(kù)會(huì)比對(duì)已有投票記錄,彈出警告拒絕再次投票。
3、數(shù)據(jù)庫(kù)的設(shè)計(jì)
參加本次投票的約1700人,全部采用校園內(nèi)網(wǎng)登陸,數(shù)據(jù)文件大小理論遠(yuǎn)小于2G?;趨⒓尤藬?shù)及網(wǎng)絡(luò)環(huán)境,系統(tǒng)數(shù)據(jù)庫(kù)直接采用Access2010,它是微軟發(fā)布的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),具有使用簡(jiǎn)潔方便,穩(wěn)定可靠等特點(diǎn)。數(shù)據(jù)庫(kù)命名為 voteresult.mdb,數(shù)據(jù)庫(kù)內(nèi)有以下幾個(gè)表:
(1)管理員信息(Admin):存放系統(tǒng)管理員信息。(2)受邀用戶信息(Tlogin 、Slogin):分開(kāi)存放參加投票教師、學(xué)生的登陸賬號(hào)(Username)、密碼、登陸IP(LastLogin)、末次登陸時(shí)間等。(3)候選人信息(Info):存放候選人姓名(Nametitle)、Id(Hxid)、參選資料(Content)、教師投票數(shù)(Tps)、學(xué)生投票數(shù)(Sps)。(4)投票過(guò)程記錄(Tjilu、Sjilu):記錄教師和學(xué)生投出的8位候選人ID(SVote、TVote)、投票IP(Addip)、投票時(shí)間、投票者賬號(hào)(Addname)。
4、系統(tǒng)實(shí)施
4.1 添加受邀用戶信息
將受邀投票的用戶信息用Excel批量直接導(dǎo)入數(shù)據(jù)庫(kù)中,用戶密碼截取賬號(hào)后六位,使用Md5算法加密。
4.2 導(dǎo)入候選人信息,限制投票張數(shù)
管理后臺(tái)導(dǎo)入候選人資料。登錄頁(yè)首先對(duì)每位投票人投票數(shù)量限制,低于6票大于8票無(wú)法投出,主要代碼如下:
(1) id=request.form("id");if ?len(id)<22 then;response.write ""; response.end;end if
(2) if(this.checked) selectnum++ ; else selectnum--;if(selectnum > 8)
{ alert("最多選擇8位"); this.checked = false; selectnum--; ?}
4.3 投票過(guò)程
以下過(guò)程中代碼以學(xué)生登陸過(guò)程為例。
(1)進(jìn)行身份檢測(cè),是否擁有賬號(hào)密碼的合法用戶登錄。
用戶輸入的賬號(hào)和密碼與數(shù)據(jù)庫(kù)Slogin表中存儲(chǔ)的賬號(hào)Username字段匹配不到一致信息時(shí),判定為非法用戶,強(qiáng)制返回登陸頁(yè)面。
sql="select * from Slogin where Username='"&Username&"' and Password='"&md5(Password)&"'";rs.open sql,conn,1,3;
if rs.eof then;response.write"