《程序說明書及投票系統(tǒng)流程》由會員分享,可在線閱讀,更多相關(guān)《程序說明書及投票系統(tǒng)流程(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、程序說明及投票系統(tǒng)流程
一、程序說明及投票系統(tǒng)流程圖
總的來說,投票系統(tǒng)可分為3個模塊:選票模塊,選票 處理模
塊和結(jié)果顯示模塊!
投票系統(tǒng)需要對某一項目的選擇做出記錄,一般情況下是存放
在數(shù)據(jù)庫中然后對投票情況進行統(tǒng)計并顯示投票結(jié)果。
首先給出選票,即供投票者選擇的窗體對象,當(dāng)投票者 按下投
票按鈕后,選票處理模塊開始激活,對傳送到服務(wù)器的數(shù)據(jù)作相應(yīng)的 處理,服務(wù)器端在處理時先判斷用戶選擇的 是那一項,然后把相應(yīng)字 段的值加1。實際上保存投票結(jié)果的數(shù)據(jù)庫中的表只有一條記錄就可 以了,只是需要不斷的對 這些數(shù)據(jù)進行更新。最后則是由結(jié)果顯示模 塊把投票結(jié)果顯示出來。
這篇教程以對
2、一部電影的評價為例進行投票系統(tǒng)的講解。在這
個例子中有3種選擇,很好、一般和很差!并且只能選擇其中一項。
文件說明:
*vote.asp投票頁
★result.asp顯示投票結(jié)果
★add.asp選票處理模塊,投票者在投票頁選擇并按下投票按 鈕并提
交后,數(shù)據(jù)庫即進行更新,最后轉(zhuǎn)向Result.asp二、數(shù)據(jù)庫的設(shè)計和
建立
數(shù)據(jù)庫文件tvote.mdb只有一個表tvote,該表只有一條記 錄,而記錄對應(yīng)著3個字段,每一個字段保持一種選項的投票數(shù)目。 新建表的記錄初始值為0,為了方便看效果,所以先對記錄的各個 字段賦了初值!三、建立站點和數(shù)據(jù)庫連接
1 .建立站點!關(guān)于建立站
3、點的詳細步驟,偶就不說了。貼張圖看 下! !提醒下,建立站點前別忘了建立虛擬目錄!
2 .數(shù)據(jù)庫連接,這里用構(gòu)建ODBC的方法來連接數(shù)據(jù)庫!
DSN(Data Source
Name),數(shù)據(jù)源名稱)表示用于將應(yīng)用程序和某個數(shù)據(jù)庫相連接的 信息集合。ODBC數(shù)據(jù)源管理器使用該信息來創(chuàng)建指向數(shù)據(jù)庫的連 接!
具體步驟:啟動控制面板—管理工具—數(shù)據(jù)源(ODBC)一系統(tǒng)
DSN - “添加”然后在打開的創(chuàng)建新數(shù)據(jù)源對話框中選擇
Microsoft Access Driver (*.mdb) 點擊“完成”
會出現(xiàn) ODBC Microsoft
Access安裝對話框,給你要建立的數(shù)據(jù)源起
4、個名字,然后點擊“選 擇”,選擇你建立的數(shù)據(jù)庫文件的路徑!單擊確定,就可以看到在
ODBC數(shù)據(jù)源管理器中多了一個我們剛剛新建立的數(shù)據(jù)源。然后到 dreamweaver里面,打開我們剛剛建立的站點,隨便打開一個文
件!打開應(yīng)用程序面板的數(shù)據(jù)庫標簽,點“ + ” ,選擇“數(shù)據(jù)源名
稱(DSN ) ”
然后在打開的對話框中作如下設(shè)置,可點擊測試看數(shù)據(jù)庫連接 是否!
四、投票系統(tǒng)主頁面制作實際上,投票者只需要作出選擇就可
以了,不需要添加任何行為。對投票頁緊需設(shè)置表單及窗體對象的屬 性即可。
1 .先制作如下的靜態(tài)頁面
注意,頁面中的表格一定是嵌套在一個form (表單)里面的 (偶剛
5、開始學(xué)a s p的時候,都是直接就弄個表格,結(jié)果出了n次 錯)
2 . f o r m設(shè)置將光標移到表單區(qū)域內(nèi),單擊窗口下面的f o r m標簽來選中form。對for m屬性進行如下設(shè)置
單擊表格右列第一行的單選按鈕屬性設(shè)置f 0rm中的單選按 鈕的屬性。在其屬性面板中,在單選按鈕文本框中
輸入rbResult,這樣就設(shè)置了該單選按鈕的n ame的屬性 為
rbResult,在選定值文本框中輸入fGood,這樣就設(shè)置了該單選按鈕
的V a 1 u e屬性值。如圖
輸入的v a 1 u e屬性值與數(shù)據(jù)庫中的表t vote的一個字 段名相同,而表t v。t e的f G。。d字段保存的
6、是選擇[很 好]項的投票者總數(shù),在按下投票按鈕提交后,將f G o o d作為 單選按鈕的值傳出,與數(shù)據(jù)庫中的字段名聯(lián)系起來!
在初始狀態(tài)選項中,選中[已勾選]單選按鈕,即默認情況 下被選中!
同樣,對下面2個單選按鈕也按以上步驟設(shè)置!表格中下面的 2個單選按鈕的name屬性也設(shè)為rbResult,這樣設(shè)置可使3個單 選按鈕的name屬性相同,這樣投票者就只能選擇其中的一項。在 [初始狀態(tài)]選項中選中[未選中]單選按鈕,在[選定值] 文本框中分別輸入f M i d、fBad,與表t v o t e中的另外二個 字段相同,這樣,v o t e a s p就作好了 !
五、投票結(jié)果頁面的制
7、作
制作頁面
2 .定義記錄集
打開數(shù)據(jù)[綁定]面板,單擊[+]按鈕,選擇[記錄集 (查詢)]菜單項,
如果出現(xiàn)簡單[記錄集]對話框,則應(yīng)單擊[高級。。。] 按鈕轉(zhuǎn)到高級記錄集對話框!
在名稱文本框中輸入rsVote,在連接下拉列表中選擇connvote,
在 SQL列表框中書寫 “ SELECT fGood, fMid, fBad,
(fGood+fMid+fBad) as VTotal, (fGood/VTotal) as
GoodPercent, (fMid/VTotal) as
MidpPercent, (fBad/VTotal) as BadPercent FROM
8、 tVote ”
3 .數(shù)據(jù)綁定
將光標放在“有 人參加了投票”之間,在綁定面板中選中v t o t a 1字段,然后單擊“插入”這樣就把投票人的總數(shù)動態(tài)的加入 到R e s u 1 t。a s p頁面中!用同樣的方法將其他字段綁定到相 應(yīng)位置
最后完成的頁面如圖
4 .記錄集中的
Goodpercent/Midpercent/Badpercent 這 3 個動態(tài)數(shù)據(jù) 分別是投票 [很好][一般][很差]的人數(shù)占投票總?cè)藬?shù)的比例。而這三項 動態(tài)數(shù)據(jù)的值是小數(shù),在瀏覽時,將以小數(shù)形式顯示因此,要把他轉(zhuǎn) 換成百分數(shù),并保留2位小數(shù)。
選中表格第一行中的{rsVote.GoodPerce
9、nt},然后在綁定面板
中單擊G oodpercent右邊的下拉三角(即記錄集“格式框
中的下拉三角,)在彈出的菜單中選擇[百分比]—[2個小數(shù)位]
同樣的方法設(shè)置{rsVote.badPercent}{rsVote.midPercent}5.制
作表格
的動態(tài)屬性制作圖示可采用表格嵌套和表格的動態(tài)屬性來完成。如 果在表格中每一行的第2列的部分嵌套一個只有一行一列的小表格, 將這個小表格的背景色設(shè)置為紅色,將小表格的寬度度量單位設(shè)置為 百分比(相對于容納他的單元格寬度也會根據(jù)投票者的數(shù)量的變化而 變化,這樣就達到了制作圖示的目的。灰色的部分可以看做是投票的 總?cè)藬?shù),紅色的部分可以看做
10、是各選項的人數(shù)。
制作投票[很好]項人數(shù)占總?cè)藬?shù)的比例圖示。把光標放
在第一行的第2列上,插入一個表格
把表格的背景設(shè)置為紅色
?選中小表格,選擇[窗口 ]—[標簽檢查器],打開[標簽]
面板,選擇[屬性].找到[常規(guī)]-width屬性,選中他,這時 在他旁 邊會出現(xiàn)一個閃電按鈕。單擊閃電按鈕,會彈出一個動態(tài)數(shù)
據(jù)窗口。在
[域1列表框的記錄集中選擇Goodpercent,然后在 格 式下拉列表中選擇[百分比一2個小數(shù)位]項。單擊確定。
重復(fù)上面的步驟,分別在第二、三行插入一個小表格。只是在
設(shè)置動態(tài)屬性時,須在動態(tài)數(shù)據(jù)窗口的列表框的記錄 集中選擇
midpercent。
11、
badpercent項好了,Result。asp的頁面也到此就制作好
了??梢灶A(yù)覽下看看了哦!
六、更新頁add.asp
我們在投票頁v o t e a s p中設(shè)置for m的動作屬性
時,已經(jīng)設(shè)置了相應(yīng)動作的文件為a d d。a s p !
1??新建一個動態(tài)頁asp
VBScript文件
在這里可以作一個轉(zhuǎn)到r e
s u 1 t a s p的鏈接!
2,綁定一命令(預(yù)存過程)由于投票系統(tǒng)主要記錄各個選項的
投票人數(shù),所以這一步并不是對數(shù)據(jù)庫進行讀操作或者向數(shù)據(jù)庫插入
一條記錄,而是修改數(shù)據(jù)庫的表V 0 t e中某一字段的值。確切的
說,是對表v
12、o t e某一字段的數(shù)據(jù)進行累加,所以必須選擇[命
令(預(yù)存過程)]菜單項用簡單的SQ1語言進行定制!
單擊綁定面板的“十”選擇“命令(預(yù)存過程)”,設(shè)置如圖
在V。t e。a s P頁中設(shè)值但選按鈕的屬性時,已將3個單 選按鈕V a 1 u e屬性的值分別設(shè)置為表V 0 t e中的3個字段名, 所以Request.form ("rbResult")值一定是表v o t e的一個字段 名。所以這條S Q L語句的意思就是使某一字段加1,即在相應(yīng)的字 段中記下了一個投票者!
*注意:實際操作時,一定要把[SQL]中的where去掉*好
了,目前為止,這個投票系統(tǒng)的文件就全部作好了!發(fā)個
13、最終
預(yù)覽的效果看下!
七、制作重點及相關(guān)技巧
制作投票系統(tǒng),首先需要了解投票系統(tǒng)的機制、投票系統(tǒng)需要 建立的各個網(wǎng)頁文件以及制作這些文件的步驟!主要制作技術(shù)有:投 票系統(tǒng)的制作,單選按鈕的命名及v a 1 u 屬性的設(shè)置技巧,單選 按鈕的值的存儲技巧,s q 1中計算字段的使用,比例圖示的設(shè)計技 巧及動態(tài)數(shù)據(jù)格式的格式設(shè)置等等。
但是在測試上面介紹的簡單的投票系統(tǒng)時,我們發(fā)現(xiàn)在該投票 系統(tǒng)中投票者可以無限制的進行投票,這樣就使作弊很容易發(fā)生!那 怎么樣想辦法讓每一位投票者只投一次票以 減少發(fā)生串票的可能?大 家可以先考慮下這個問題,偶過幾天在把這個教程發(fā)上來!
終于做好了,有不對的地方還請版主大哥幫忙指出!