摘要:采用ASP技術開發(fā)的一套基于B/S模式的等級考試網上報名系統(tǒng)。解決了傳統(tǒng)報名方法的諸多不便問題,系統(tǒng)運行穩(wěn)定,操作方便,能較好地滿足管理的需求。
關鍵詞: 報名系統(tǒng); ASP技術;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 引言
隨著社會的進步,網絡的普及率越來越高,人們在工作和生活中也越來越享受網絡帶來的種種便利。近幾年來,隨著高校招生規(guī)模的不斷擴大,在校學生人數急速增長,參加英語四、六級;計算機等級考試的學生人數也急速增加,現有的考試報名方法已經不能滿足需求。因此結合現階段普及的網絡,開發(fā)一套高效,方便,穩(wěn)定的報名系統(tǒng)是和有意義的。
2 系統(tǒng)簡介
該系統(tǒng)采用ASP、Macromedia Dreamweaver 8、Javascript、Microsoft SQL SERVER等工具,通過基于Web服務器訪問動態(tài)Web頁面,實現網上報考的功能。
此應用程序采用B/S模式設計,它由客戶機發(fā)出請求,經Web服務http請求和響應器處理后,調用數據庫服務器中的數據,再由Web服務器將調用數據返回給客戶機。在這種結構下,用戶機僅需通過瀏覽器就可以實現系統(tǒng)的全部功能。并且由于大部分的數據處理是在服務器上完成,客戶機的負載大大降低,減少了系統(tǒng)的維護成本。系統(tǒng)結構如圖1所示。
3 系統(tǒng)設計
3.1 需求分析
等級考試報名系統(tǒng)的設計在實際應用中應滿足以下幾點功能:
1) 全國計算機等級考試分為筆試和機試兩部分,如果在這一次考試中,過了筆試或者機試,那么在緊接著的下一次考試中,允許保留上次考試過了的那部分成績。
2) 等級考試對考生的個人信息準確性要求嚴格,考生報考的時候能夠核對并修改自己個人的信息。
3) 自動生成準考證號。
4) 能夠將學生庫中以身份證號命名的照片轉化成考辦系統(tǒng)中規(guī)定的命名方式。
3.2 功能設計
根據系統(tǒng)的需求,設計了了一個身份驗證模塊,一個考試種類選擇模塊,各種考試報名模塊(全國計算機等級考試、大學英語四六級考試、高校英語應用能力考試、高校計算機等級考試)和管理員操作模塊。
1) 身份驗證模塊主要是用于檢驗登陸系統(tǒng)用戶身份的合法性。
2) 考試種類選擇模塊主要讓報考學生選擇需要報考的項目。選擇界面如圖2所示。
3) 報名模塊主要用于讓學生進行考試報考。學生在這個模塊可以查看并修改自己的所有個人信息,選擇相應的考試級別。對于計算機等級考試,可以查看并選擇是否保留何種成績,是否參加上機等功能。報考界面如圖3所示。
由于等級考試報考種類繁多,下面給出一個最具有代表性的“全國計算機等級考試”報考的關鍵代碼,其他考試報考的代碼與此類似。
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>學號</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) 管理員操作模塊主要包括修改學生登陸密碼;添加、刪除學生信息;生成準考證號;將照片庫中的照片轉換成考辦系統(tǒng)中可識別的照片;對數據庫系統(tǒng)進行備份,以保證數據的完整性和
安全性。照片轉換結果界面如圖4所示。
4 系統(tǒng)實現的關鍵技術
1) 由于系統(tǒng)由多個子報名系統(tǒng)構成,各個子報名系統(tǒng)的數據既有共同點,又有大量不同點,為了提高系統(tǒng)數據的共通性,減少數據冗余,系統(tǒng)數據庫設計了大量的視圖,可以充分利用數據資源,提高了系統(tǒng)的可用性。
2) 個人信息不完整的應對策略。由于報考涉及的學生數量大,不可避免的會出現學生對個人信息輸入的不正確,這就需要系統(tǒng)來驗證這些信息,例如:學生學生輸入身份證號,如果不為18位或者15位,系統(tǒng)會不允許學生提交報考信息,并出現提示。
3) 數據庫的備份和恢復,利用文件存儲方法,可以直接將現有的數據庫存儲到某個路徑實現數據庫的備份;數據庫恢復的時候必須將數據庫連接斷開,然后再從某個路徑調用數據庫備份覆蓋現有數據庫實現數據庫的恢復。此方法被分恢復數據庫,方便快捷,有較高的可靠性。
5 結束語
“等級考試報名系統(tǒng)” 能很好的完成學生及管理部門對等級考試報考的需求,很好的處理了傳統(tǒng)報名方法在面對大規(guī)模學生報名時所帶來的不便。實現了一個報考系統(tǒng)所應具有的功能。此系統(tǒng)通過多次實踐檢驗,能基本實現高校等級考試報考的要求,使考試報名以最快,最準確的方式完成。
參考文獻:
[1] Kalen Delaney.Inside Microsoft SQL Server 2000. Microsoft Press,2001(2).
[2] 李勁. 精通ASP數據庫程序設計[M]. 北京:科學出版社,2001.
[3] 余波. 動態(tài)Web應用高級開發(fā)指南[M]. 北京:人民郵電出版社,2000.
[4] 楊威. ASP3.0網絡開發(fā)技術[M]. 北京:人民郵電出版社,2001.
[5] Kalen Delaney.Microsoft SQL Server 2000 技術內幕. Microsoft Press,2002(12).