摘要:采用ASP技術(shù)開發(fā)的一套基于B/S模式的等級考試網(wǎng)上報名系統(tǒng)。解決了傳統(tǒng)報名方法的諸多不便問題,系統(tǒng)運行穩(wěn)定,操作方便,能較好地滿足管理的需求。
關(guān)鍵詞: 報名系統(tǒng); ASP技術(shù);B/S模式
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)04-0892-03
The Design and Implementation of Test Registration System Based on B/S Mode
CHENG Nan1, LIU Xian-fen1, YU Rui2
(Nanchang Hangkong University, Nanchang 330063, China)
Abstract: An on-line test registration system is developed based on the ASP technology. To remove any inconvenience in the process of traditional registering, the system operates conveniently and proceeds stablely, thus it can meet the managing demand well.
Key words: Registration System; ASP technology; B/S mode
1 引言
隨著社會的進步,網(wǎng)絡(luò)的普及率越來越高,人們在工作和生活中也越來越享受網(wǎng)絡(luò)帶來的種種便利。近幾年來,隨著高校招生規(guī)模的不斷擴大,在校學(xué)生人數(shù)急速增長,參加英語四、六級;計算機等級考試的學(xué)生人數(shù)也急速增加,現(xiàn)有的考試報名方法已經(jīng)不能滿足需求。因此結(jié)合現(xiàn)階段普及的網(wǎng)絡(luò),開發(fā)一套高效,方便,穩(wěn)定的報名系統(tǒng)是和有意義的。
2 系統(tǒng)簡介
該系統(tǒng)采用ASP、Macromedia Dreamweaver 8、Javascript、Microsoft SQL SERVER等工具,通過基于Web服務(wù)器訪問動態(tài)Web頁面,實現(xiàn)網(wǎng)上報考的功能。
此應(yīng)用程序采用B/S模式設(shè)計,它由客戶機發(fā)出請求,經(jīng)Web服務(wù)http請求和響應(yīng)器處理后,調(diào)用數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù),再由Web服務(wù)器將調(diào)用數(shù)據(jù)返回給客戶機。在這種結(jié)構(gòu)下,用戶機僅需通過瀏覽器就可以實現(xiàn)系統(tǒng)的全部功能。并且由于大部分的數(shù)據(jù)處理是在服務(wù)器上完成,客戶機的負載大大降低,減少了系統(tǒng)的維護成本。系統(tǒng)結(jié)構(gòu)如圖1所示。
3 系統(tǒng)設(shè)計
3.1 需求分析
等級考試報名系統(tǒng)的設(shè)計在實際應(yīng)用中應(yīng)滿足以下幾點功能:
1) 全國計算機等級考試分為筆試和機試兩部分,如果在這一次考試中,過了筆試或者機試,那么在緊接著的下一次考試中,允許保留上次考試過了的那部分成績。
2) 等級考試對考生的個人信息準確性要求嚴格,考生報考的時候能夠核對并修改自己個人的信息。
3) 自動生成準考證號。
4) 能夠?qū)W(xué)生庫中以身份證號命名的照片轉(zhuǎn)化成考辦系統(tǒng)中規(guī)定的命名方式。
3.2 功能設(shè)計
根據(jù)系統(tǒng)的需求,設(shè)計了了一個身份驗證模塊,一個考試種類選擇模塊,各種考試報名模塊(全國計算機等級考試、大學(xué)英語四六級考試、高校英語應(yīng)用能力考試、高校計算機等級考試)和管理員操作模塊。
1) 身份驗證模塊主要是用于檢驗登陸系統(tǒng)用戶身份的合法性。
2) 考試種類選擇模塊主要讓報考學(xué)生選擇需要報考的項目。選擇界面如圖2所示。
3) 報名模塊主要用于讓學(xué)生進行考試報考。學(xué)生在這個模塊可以查看并修改自己的所有個人信息,選擇相應(yīng)的考試級別。對于計算機等級考試,可以查看并選擇是否保留何種成績,是否參加上機等功能。報考界面如圖3所示。
由于等級考試報考種類繁多,下面給出一個最具有代表性的“全國計算機等級考試”報考的關(guān)鍵代碼,其他考試報考的代碼與此類似。
sqlstr=\"SELECT * FROM bmxx_view WHERE SUBSTRING(LXDZ, 1, CHARINDEX('', LXDZ)-1) = '\"bjid\"' ORDER BY SUBSTRING(LXDZ, CHARINDEX('', LXDZ) + 1, { fn LENGTH(LXDZ) } - CHARINDEX('', LXDZ))\"rs.open sqlstr,conn,1,1session(\"jls\")=rs.recordcount
%>
<form name=\"form1\" method=\"post\" action=\"postself.asp\">
<div align=\"center\">你輸入的班級是:<font color=\"#0000FF\"><%=bjid%></font>共有<font color=\"#FF0000\"><strong><%=session(\"jls\")%>條</strong></font>記錄
<a href=\"modi_pass1.asp\">修改用戶密碼</a></div>
<table border=\"1\" align=\"center\" cellpadding=\"2\" cellspacing=\"2\">
<tr> <td>學(xué)號</td>
<td>姓 名</td>
<td>性別</td>
<td>民族</td>
<td>輸入身份證號</td>
<td>報考類型</td>
<td>保留成績種類</td>
<td>原準考證號</td>
</tr>
<%n=0
do while not rs.eof
n=n+1 %>
<tr><td><input name=\"xh<%=n%>\" class=\"ying\" type=\"text\" size=\"8\" maxlength=\"12\" value=\"<%=mid(rs(\"lxdz\"),instr(rs(\"lxdz\"),\"\")+1,len(trim(rs(\"lxdz\")))-instr(rs(\"lxdz\"),\"\"))%>\" disabled></td>
<td><input class=\"ying\" type=\"text\" size=\"8\" value=\"<%=rs(\"xm\")%>\" disabled></td>
<td> <select name=\"xb<%=n%>\" class=\"sel\">
<%sql=\"select * from tc_xb\"rs1.open sql,connif not rs1.eof thenwhile not rs1.eof if rs1(\"xb\")=rs(\"xb\") then%>
<option value=<%=rs1(\"xb\")%> selected><%=rs1(\"xbmc\")%></option>
<%else%>
<option value=\"<%=rs1(\"xb\")%>\"><%=rs1(\"xbmc\")%></option>
<%end ifrs1.movenextwendrs1.closeend if%>
</select> </td>
<td> <select name=\"mz<%=n%>\" class=\"sel\">
<% sql=\"select * from tc_mz\"rs1.open sql,conn if not rs1.eof then while not rs1.eof if rs(\"mz\")=rs1(\"mz\") then %>
<option value=<%=rs1(\"mz\")%> selected><%=rs1(\"mz\")+\" \"+rs1(\"mzmc\")%></option>
<%else%>
<option value=<%=rs1(\"mz\")%>><%=rs1(\"mz\")+\" \"+rs1(\"mzmc\")%></option>
<% end if rs1.movenextwendrs1.closeend if%>
</select></td>
<td><input name=\"sfzh<%=n%>\" type=\"text\" maxlength=\"18\" size=\"18\" value=\"<%=rs(\"sfzh\")%>\" ></td>
<td><select name=\"jb<%=n%>\" size=\"1\" class=\"sel\">
<option value=\"0\" selected>不報</option>
<% sql=\"select jbyydm,jbyy from tc_jbyy\" rs1.open sql,connif not rs1.eof then while not rs1.eofif rs(\"jb\")=rs1(\"jbyydm\") then %>
<option value=\"<%=rs1(\"jbyydm\")%>\" selected><%=rs1(\"jbyy\")%></option>
<% else %>
<option value=\"<%=rs1(\"jbyydm\")%>\"><%=rs1(\"jbyy\")%></option>
<% end ifrs1.movenext wendend ifrs1.close %>
</select></td>
<td>
<select name=\"blcjzl<%=n%>\" size=\"1\" class=\"sel\">
<% sql=\"select * from tc_blcj\" rs1.open sql,conn
if not rs1.eof then
while not rs1.eofif rs1(\"blcj\")=rs(\"blcjzl\") then %>
<option value=\"<%=rs1(\"blcj\")%>\" selected><%=rs1(\"blcjmc\")%></option>
<%else%>
<option value=\"<%=rs1(\"blcj\")%>\"><%=rs1(\"blcjmc\")%></option>
<% end if rs1.movenextwendend ifrs1.close%>
</select></td>
<td><input type=\"text\" name=\"yzkzh<%=n%>\" value=\"<%=rs(\"yzkzh\")%>\" maxlength=\"16\" size=\"16\"></td> </tr>
<% rs.movenext loop %>
</table>
<p align=\"center\">
<input type=\"submit\" name=\"Submit\" value=\"確定\" onClick=\"return form_check(<%=n%>)\">
<input type=\"reset\" name=\"Submit2\" value=\"重寫\">
4) 管理員操作模塊主要包括修改學(xué)生登陸密碼;添加、刪除學(xué)生信息;生成準考證號;將照片庫中的照片轉(zhuǎn)換成考辦系統(tǒng)中可識別的照片;對數(shù)據(jù)庫系統(tǒng)進行備份,以保證數(shù)據(jù)的完整性和
安全性。照片轉(zhuǎn)換結(jié)果界面如圖4所示。
4 系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
1) 由于系統(tǒng)由多個子報名系統(tǒng)構(gòu)成,各個子報名系統(tǒng)的數(shù)據(jù)既有共同點,又有大量不同點,為了提高系統(tǒng)數(shù)據(jù)的共通性,減少數(shù)據(jù)冗余,系統(tǒng)數(shù)據(jù)庫設(shè)計了大量的視圖,可以充分利用數(shù)據(jù)資源,提高了系統(tǒng)的可用性。
2) 個人信息不完整的應(yīng)對策略。由于報考涉及的學(xué)生數(shù)量大,不可避免的會出現(xiàn)學(xué)生對個人信息輸入的不正確,這就需要系統(tǒng)來驗證這些信息,例如:學(xué)生學(xué)生輸入身份證號,如果不為18位或者15位,系統(tǒng)會不允許學(xué)生提交報考信息,并出現(xiàn)提示。
3) 數(shù)據(jù)庫的備份和恢復(fù),利用文件存儲方法,可以直接將現(xiàn)有的數(shù)據(jù)庫存儲到某個路徑實現(xiàn)數(shù)據(jù)庫的備份;數(shù)據(jù)庫恢復(fù)的時候必須將數(shù)據(jù)庫連接斷開,然后再從某個路徑調(diào)用數(shù)據(jù)庫備份覆蓋現(xiàn)有數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫的恢復(fù)。此方法被分恢復(fù)數(shù)據(jù)庫,方便快捷,有較高的可靠性。
5 結(jié)束語
“等級考試報名系統(tǒng)” 能很好的完成學(xué)生及管理部門對等級考試報考的需求,很好的處理了傳統(tǒng)報名方法在面對大規(guī)模學(xué)生報名時所帶來的不便。實現(xiàn)了一個報考系統(tǒng)所應(yīng)具有的功能。此系統(tǒng)通過多次實踐檢驗,能基本實現(xiàn)高校等級考試報考的要求,使考試報名以最快,最準確的方式完成。
參考文獻:
[1] Kalen Delaney.Inside Microsoft SQL Server 2000. Microsoft Press,2001(2).
[2] 李勁. 精通ASP數(shù)據(jù)庫程序設(shè)計[M]. 北京:科學(xué)出版社,2001.
[3] 余波. 動態(tài)Web應(yīng)用高級開發(fā)指南[M]. 北京:人民郵電出版社,2000.
[4] 楊威. ASP3.0網(wǎng)絡(luò)開發(fā)技術(shù)[M]. 北京:人民郵電出版社,2001.
[5] Kalen Delaney.Microsoft SQL Server 2000 技術(shù)內(nèi)幕. Microsoft Press,2002(12).