【正文】
部分,是實現(xiàn)人機(jī)交互功能的主要部分,它能調(diào)用數(shù)據(jù)庫的入口函數(shù),向數(shù)據(jù)庫插入、修改、顯示數(shù)據(jù)庫內(nèi)容,能調(diào)用投票統(tǒng)計模塊,從而根據(jù)投票數(shù)據(jù)統(tǒng)計投票百分比。它能調(diào)用數(shù)據(jù)庫函數(shù)調(diào)用數(shù)據(jù)庫數(shù)據(jù),經(jīng)過運算后,將新數(shù)據(jù)存入數(shù)據(jù)庫的相應(yīng)表中。 數(shù)據(jù)功能模塊設(shè)計根據(jù)系統(tǒng)分析的結(jié)果,在系統(tǒng)功能分析的基礎(chǔ)上,考慮 ASP程序編制特點,得到如圖 32 所示的系統(tǒng)功能模塊圖。投票項目管理:主要是實現(xiàn)投票人員對各個投票項目進(jìn)行編輯,生成。根據(jù)系統(tǒng)開發(fā)的要求,從學(xué)院開設(shè)新課程中選取適當(dāng)?shù)捻椖孔鳛橄到y(tǒng)數(shù)據(jù)庫的數(shù)據(jù)參數(shù)。結(jié)合學(xué)院開設(shè)課程任務(wù)選取了以下項目作為系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)參數(shù):(1)開設(shè)游泳課。(2)開設(shè)就業(yè)指導(dǎo)課。讓投票者根據(jù)網(wǎng)站內(nèi)容進(jìn)行投票(4)開設(shè)演講課。(5)開設(shè)課外興趣小組。(6)投票系統(tǒng)更新。數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計在系統(tǒng)的數(shù)據(jù)庫設(shè)計中,先要對系統(tǒng)分析得到的數(shù)據(jù)圖中的數(shù)據(jù)存儲進(jìn)行分析,分析各數(shù)據(jù)存儲之間的關(guān)系,然后得出系統(tǒng)的關(guān)系模式。在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為邏輯結(jié)構(gòu)的設(shè)計打下基礎(chǔ)。投票選項實體屬性具體描述如圖 33 所示。數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計的基本關(guān)系圖,轉(zhuǎn)換為與選用的具體相關(guān)的機(jī)器上的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計明確了以上所要建立的數(shù)據(jù)庫參數(shù),便可建立關(guān)系型數(shù)據(jù)庫。在這種二維表中,每一列為一個字段,對應(yīng)著表格中的數(shù)據(jù)項。每一行為一條記錄,記錄中的每個字段的取值為字段值,記錄是字段值的集合。在線投票系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面的幾個表格所示。表 31 為創(chuàng)建投票項目信息表 voteitem 的信息。因此需要在數(shù)據(jù)庫中建立一個用戶口令表來管理使用在線投票系統(tǒng)的用戶。本系統(tǒng)中采用了 Microsoft Office Access 2003數(shù)據(jù)庫管理系統(tǒng)。第4章 詳細(xì)設(shè)計與實現(xiàn)運用ASP和Microsoft Office Access 2003相結(jié)合開發(fā)投票系統(tǒng),投票項目依據(jù)學(xué)院需要開設(shè)哪些新課程來制作,通過學(xué)生的投票結(jié)果統(tǒng)計確定下學(xué)期開設(shè)的新課程。設(shè)計投票界面表單投票項目表單由3部分組成:相應(yīng)代碼如下:如果沒有投票,則變量isvoted為1,可以投票。 投 票 39。return SelectChk()。這是個可以選擇多項的投票系統(tǒng),在函數(shù)SelectChk中取得被投票項目信息,并提交//取得被投票項目的編號,打開新窗口,查看投票結(jié)果function SelectChk(){ var s=false。 var strid,strurl。 var j。j。 s=true。 if(n==1) { strid = deptid。 } } } strurl = ?cid= + strid。 return false。 return false。 oth = oth+,width=400,height=300。 ()。圖42 投票界面根據(jù)選擇查詢數(shù)據(jù)庫下面是實現(xiàn)該項功能的代碼:和數(shù)據(jù)庫建立連接的代碼如下:% 39。server=Ntserver。PWD=sa。USE VoteGOCREATE TABLE VoteItem( Id int Primary Key IDENTITY, Item varchar(50) NOT NULL, VoteCount int DEFAULT 0)創(chuàng)建表voteItem的腳本文件USE VoteGOCREATE TABLE VoteIP( IP varchar(20))GO表VoteIP用來保存已經(jīng)投票的IP地址% Dim rs,n n = 0 Set rs = () sql = Select * From VoteItem Order By id sql,Conn,1,1 If OR Then trtd colspan=3 align=centerfont style=39。目前還沒有投票項目??梢愿鶕?jù)每次需要投票的內(nèi)容進(jìn)行修改,添加,刪除。通過驗證用戶的Session對象的logined變量的值是否為1。代碼如下:%If Session(logined)1 Then End If%添加投票項目的設(shè)計與實現(xiàn)添加課程由以下幾部分組成:實現(xiàn)功能的關(guān)鍵代碼如下:% Dim Soperate Soperate = (oper) 39。項目編號 If Soperate=add Then 39。判斷數(shù)據(jù)庫中是否存在此類別 sql = Select * from VoteItem Where Item=39。newTitleamp。 Set rsInsert = (sql) If NOT Then 已經(jīng)存在此投票項目,添加失敗! Else sql = Insert into VoteItem(Item) values(39。newTitleamp。) (sql) 投票項目已經(jīng)成功添加! End If ElseIf Soperate = edit Then 39。如果新類別名稱和舊的不同則執(zhí)行 If newTitleorgTitle Then 39。amp。39。amp。39。cint(Operid)) 投票項目已經(jīng)成功修改! End If End If ElseIf Soperate=delete Then 39。Cstr(Operid)amp。 for(j=0。j++) { (dept,j).checked = true。 for(j=0。j++) { (dept,j).checked = false。 var deptid,n=0。 var nn = (dept)。j。 s=true。 if(n==1) { strid = deptid。 } } } strurl = ?Oper=deleteamp。 if(!s) { alert(請選擇要刪除的投票項目!)。 } if ( confirm(你確定要刪除這些投票項目嗎?)) { = strurl。 }}圖43是修改投票選項頁面圖44是添加投票選項頁面 投票結(jié)果模塊的設(shè)計投票結(jié)果模塊設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及系統(tǒng)實現(xiàn)產(chǎn)生一定影響,較好的投票結(jié)果模塊設(shè)計會減少數(shù)管理人員的操作時間,提高操作數(shù)據(jù)的完整性和一致性,使投票結(jié)果得到準(zhǔn)確而又快速的下發(fā)。取得這批投票總數(shù) sql = Select Sum(voteCount) AS tl From VoteItem Set voters = (sql) If NOT Then total = voters(tl) End If Set voters = Nothing 39。計算每個投票項目百分比圖片長度 imgvote = FormatNumber(voters(voteCount)/itotal,2)*170% trtd bgcolor=FFFFFF%=voters(item)%/td td colspan=2 bgcolor=FFFFFF img src=images/ width=%=imgvote% height=10font style=font:7pt face=Verdana %=Cstr(FormatNumber(voters(voteCount)/itotal*100,0))%%/font/td td bgcolor=FFFFFF align=center%=voters(voteCount)%/td /tr% Loop%% 39。 (_host) amp。IIS版本 vRef = (HTTP_REFERER) 39。取得客戶端的真實 IP地址 vIP = (HTTP_X_FORWARDED_FOR) If vIP = Then vIP = (REMOTE_ADDR) End If vExplorer = Browser(vSoft) 39。操作系統(tǒng) vDateTime = DateTimeFormat(now(),1)amp。DateTimeformat(now(),6) 39。文本框——用來輸入用戶名。密碼框——用來輸入密碼。提交和重填按鈕。(3) 查詢在數(shù)據(jù)庫中是否存在用戶輸入的用戶名。實現(xiàn)代碼如下:% =Select COUNT(*) From classuser Where user_id like 39。 Set rs= If rs(0).Value Then P無效的用戶名/P Pa href=重新輸入/a/p Else 39。驗證的方法是在數(shù)據(jù)庫中查出用戶輸入的用戶名的密碼,然后與用戶輸入的密碼相比較。代碼如下:% =Select user_password From classuser Where user_id like 39。 Set rs= 39。由于在數(shù)據(jù)庫中查詢到的密碼的右邊是包含空格符的,在密碼驗證時要使用函數(shù)Rtrim把空格符過濾掉。圖48用戶登錄頁面 修改密碼的設(shè)計與實現(xiàn)為了保證數(shù)據(jù)庫的安全,有時需要修改用戶的密碼,管理員可以通過修改密碼的功能將系統(tǒng)的密碼修改為自己喜歡或者容易記憶的密碼。 在數(shù)據(jù)庫中修改管理員密碼在數(shù)據(jù)庫中修改管理員密碼的步驟如下:(1)使用Request對象的Form集合得到用戶輸入的信息,這些信息包括用戶名、原密碼、新密碼和確認(rèn)新密碼。代碼如下:% if new_password1new_password2 then p兩次密碼輸入有誤!/p pa href=重新輸入!/a/p else end if %(3)連接數(shù)據(jù)庫并檢查用戶名和原密碼是否正確,代碼與前面連接數(shù)據(jù)庫的代碼相同。amp。39。amp。39。采用了大型數(shù)據(jù)庫,適合大批量數(shù)據(jù)的處理,使教師從煩瑣的手工操作中解放出來,把大量的重復(fù)性工作交給計算機(jī)去做,提高了工作效率。譬如,在投票選項可以劃分得更詳細(xì)一些,另外可以授予不同用戶以不同的系統(tǒng)使用權(quán)限(這可以通過在每一功能模塊進(jìn)入前增加身份判斷來完成),可以滿足更多的條件。對于計算機(jī)專業(yè)的我來說并沒有多少系統(tǒng)設(shè)計的經(jīng)驗,所以在編碼過程中發(fā)現(xiàn)自己原來的很多想法并不能很好地實現(xiàn)。致謝本文是在我的導(dǎo)師老師的悉心指導(dǎo)下完成的,在系統(tǒng)的研制過程中,從系統(tǒng)分析設(shè)計到具體實現(xiàn),導(dǎo)師都給予了具體、細(xì)致的指導(dǎo)。向所有關(guān)心和幫助過我的老師、同學(xué)和朋友表示最誠摯的謝意!參考文獻(xiàn)[1]:人民郵電出版社,[2]-ASP專欄,[3](美)奈伯格(Naiburg,.),(美)美克斯瓊克(Maksimchuk,.)著;陳立(美)Eric ,Robert :人民郵電出版社,[4] :上??茖W(xué)普及出版社,[5],[6]楊文杰、王克蒙、[7]-ASP專欄,[8]宋振會. Microsoft Office Access :清華大學(xué)出版社,[9]amp。 Multicast stations deliver ASF streams to many clients but use only the bandwidth of a single stream. Stations enabled for multicast and distribution deliver ASF streams to other Windows Media servers via unicast. Clients can also view the ASF content on this station via multicast.A station contains all the information needed to deliver an ASF stream to Windows Media Player, including IP address, port, stream format, timetolive (TTL) value, and so on. This information is stored in an .nsc file.Windows Media Player must be able to access the .nsc file so that it can locate the IP address that the station is using to stream ASF content. The .nsc file is typically made available to Windows Media Player from a shared network directory or from a Web server directory. Window