教育信息化:基于web的单独招生管理系统设计 |
2013-10-18 12:46 作者:曹郁辉 黄宁 来源:硅谷网《电脑知识与技术》杂志 HV: 编辑: 【搜索试试】
|
|
硅谷网10月18日据《电脑知识与技术》杂志刊文,本文介绍了一个单独招生管理系统的设计过程。该系统采用asp动态网页技术,考生在线报名,工作人员在线管理。其中重点介绍了一些主要模块的设计过程。该系统在实际使用中提高了工作效率,发挥了重大作用。
1背景介绍
单独招生是国家授权高职院校独立组织考试录取的一种方式,是进一步完善高等教育多样化选拔机制的试点,是国家高考的组成部分。学生入校后与统招的学生待遇相同。该招生方式的应用范围已经扩大到国家示范性高职院校、国家骨干高职院校以及各省级示范高职院校。
虽然各省对单独招生制定的政策有所不同,但基本上时间都是安排在每年的三、四月份,都是从报名、审核再到考试,在一个月左右完成。而且报名基本上都上采取“网上报名”加“现场确认”的方式。
某职业技术学院作为国家骨干高职建设院校,湖北省示范高职院校,从2011年起开始单独招生,每年的报名人数逐年增加。2013年预计报名人数将突破千人。为保证当年该院单独招生工作的正常开展,我们设计了《单独招生管理系统》,可以做到从考生网上报名,到现场确认,再到准考证发放,以及后来的考试成绩录入和查询的整个过程的管理。
2系统设计思路及功能实现
为实现考生网上报名,多名招生工作人员同时进行考生的审核和准考证发放的功能,该系统基于web进行设计,采用asp动态网页技术[1],使用ms-sqlserver数据库技术,使用VBscript和Javascript脚本语言。考生通过访问单独招生报名网站,在网页表单上填写报名信息,上传照片,并可以在以后增加和修改信息内容。进行招生管理的老师通过网站后台,对考生进行管理,并在现场确认时放发确认表,确认无误后发放准考证,考试后录入考试成绩。考生最后可以通过网站查询自己的成绩了解录取情况。
由于该系统采用asp动态网页技术,因此具有设计周期短,调试容易方便,对使用环境要求低的优点。但在设计过程中要注意网络安全问题,防止数据泄露或遭到破坏,尽最大可能保护考生的隐私。
图1单独招生管理系统工作流程图
该系统由下列模块构成:
1)考生录入修改报名信息模块:用于参加单独招生的考生填写报名表单,根据自己设定的密码重新登录,修改或填加个人报名信息。并且自助打印纸质的《单独招生报名表》。
2)考生管理模块:用于招生工作人员对已经报名的考生进行管理。查询考生的信息,对错误的考生数据进行删除操作,单独或批量打印考生的单独招生报名表。如果有考生忘记登录密码无法修改自己的信息,还可以重置考生的密码。
3)考生现场确认模块:用于考生现场确认时打印确认表,帮助考生完成现场审核、采像、交费等事务。
4)理论考试考场生成模块:根据招生工作人员提供的教室数量、每教室的人数和每专业报考的人数,自动或半人工划分考场,生成各考场考生的准考证号。
5)准考证发放模块:为完成现场确认的考生打印准考证。准考证内容包括考生的姓名、身份证号、准考证号和照片,考试须知、考试的时间和地点等内容。
6)考生成绩录入模块:用于招生工作人员录入考生的单独招生考试成绩。
7)成绩查询模块:考生可以凭自己的身份证号码查询考试成绩,了解录取情况。
3系统设计过程
在进行每一个模块的设计时都要考虑到,用户并非计算机专业人员,要有良好的用户界面,容易上手的操作方式,全方位的帮助指导信息。下面就系统设计的一些关键内容作一下介绍。
3.1考生身份证号的校验
考生身份证号的参加单独招生考生的关键信息,由于身份证号的唯一性,我们把它用作考生再次登录、考生成绩查询、考生在数据库中数据不发生重复的重要数据。因此我们要求考生在第一次录入个人信息时,身份证号一定要正确。并且为了减少考生录入表单的信息量,降低错误发生的可能性,考生的性别、出生日期的信息,我们也从考生输入的身份证号当中提取,而无需考生手工输入。为最大限度地防止考生的身份证号出现错误,当考生录入身份证号后,我们立即用Javascript脚本语言对该身份证号进行校验,如果不符合身份证号的规则,必须重新修改,否则不能保存。
校验身份证号的部分javascript程序如下[2]:
if(parseInt(sID.substring(0,17))!=sID.substring(0,17)){
returnfalse;//sID为输入的身份证号,如果前17位其中包含有字符则报错
}
AreaCode=sID.substring(0,6);//1至6位为地区代码
sYear=sID.substring(6,10);//7至9位为年份
sMonth=sID.substring(10,12);//10、11位为月份
sDay=sID.substring(12,14);//12、13位为日
varnDate=newDate(sYear,sMonth-1,sDay)//将以上几位重新组合成日期
if((sYear!=nDate.getFullYear())||(sMonth!=(nDate.getMonth()+1))||(sDay!=nDate.getDate())){
returnfalse;//如果组合成的新日期和原日期对不上则报错
}
……//后面的程序按照身份证号的1至17位生成校验码,再根据校验码生成第18位。如果与用户输入的第18位不同则报错。
3.2考生照片的上传
考生网上报名时,要将照片上传。这样便于考生报名后自动生成《单独招生报名表》,考生也可以自助打印该表。同时考生上传的照片也将用于准考证的打印。采用这种方式,减少了差错,提高了工作效率。
照片上传的部分vbscript程序如下:
SetoFilestream=Server.CreateObject("ADODB.Stream")‘建立"ADODB.Stream"对像
oFilestream.Type=1‘设置对像类型
oFilestream.Mode=3‘设置对像模式
oFilestream.Open
oUpFilestream.Position=cFileStart
oUpFilestream.CopyTooFilestream,cFileSize
oFilestream.SaveToFileServer.MapPath(tmpPath)'上传并保存文件
oFilestream.Close
SetoFilestream=Nothing‘上传完后关闭对像
……
上传后在表单上显示考生的照片用于核对
response.writestrJS
3.3系统的安全防范
由于每一个考生都可以通过表单录入和修改信息,系统的安全就显得十分重要。我们要防止有人恶意篡改数据,也要防止有人借机对系统进行攻击,尽最大可能保护考生的隐私。我们采取了这样一些防范措施[3]:
1)用session在网页间传递考生的身份证号,并以此作为访问修改个人信息的必要条件,防止他人的信息被非法修改或误修改,也尽可能防止个人隐私的泄露。
2)考生可以上传个人的照片文件,为防止有人借机上传木马文件,文件上传程序中要对上传的文件进行过滤,凡是非图像文件或上带有脚本语言扩展名的文件一律不允许上传。部分代码如下:
IfLeft(LCase(cFileMIME),5)="text/"AndCheckFileExt(NeedCheckFileMimeExt,cFileExt)=TrueThen
FoundErr=True
msg="为了系统安全,不允许上传用文本文件伪造的图片文件”
endif‘如果上传的不是图片,禁止上传
3)在操作数据库的页面加入防注入代码。SQL注入是使用数据库的asp动态网页最明显的漏洞。但该漏洞也是有办法防范的,就是加入防注入代码。典型的防注入代码如下:
ErrorSql="'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare"‘每个敏感字符或者词语请使用半角"~"格开)
ErrorSql=split(ErrorSql,"~")
ForI=0ToUbound(ErrorSql)
IfInstr(LCase(Request.QueryString(RequestKey)),ErrorSql(I))<>0Then
response.write"<script>alert(""警告:\n请不要尝试非法注入!!"");history.go(-1);</script>"‘如果发现非法注入则报错
Response.End
EndIf
4)招生工作人员限制在内网进行操作,每次操作都记录IP地址,操作内容和操作时间。这样出现错误也有据可查。
3.4打印的实现
该系统要实现三个打印项目:《单独招生报名表》、《现场确认表》和《准考证》。为使打印能够简单方便地进行操作,我们将打印项目形成网页,在浏览器中直接打印网页即可。在设计打印项目时,网页要用DIV+CSS方式[4],不要用Table表格方式。用Table表格方式不容易精确控制每个表格的宽度,而且非常容易变形。由于是用于打印,DIV的宽度和高度可以直接以cm(厘米)为单位。为了便于直观设计,DIV的宽度和高度也可以用像素来定义,像素与实际打印尺寸之间的关系是:38个像素的宽度(或高度)大约等于打印的1厘米宽度(或高度)。
打印时,浏览器的打印设置要将页眉和页脚都设置为空,否则会将一些额外的信息也打印出来了。
图2该系统打印的三个表格
3.5系统设计中的其它问题
1)在对考生进行管理时,可以按照考生的身份证号或姓名进行查询。为方便工作人员使用,只设一个查询输入框,当工作人员输入数字(或末尾带x的数字)时,按身份证号进行查询,当工作人员输入汉字时,按姓名进行查询。而且采用模糊查询的方式,只输入部分信息也可以查询。用于查询的代码:
rq_str=request("sc")‘查询表单传递的参数
setrs=server.createobject("adodb.recordset")
ifIsNumeric(left(rq_str,len(rq_str)-1))orIsNumeric(rq_str)then
sql="select*fromdz_baomingwheredz_namelike'%"&rq_str&"%'orderbyiddesc"‘如果除最后一位外是数字,按身份证号模糊查询
else
sql="select*fromdz_baomingwheredz_idlike'%"&rq_str&"%'orderbyiddesc"‘否则按姓名模糊查询
endif
rs.opensql,conn,1,1
2)为保护考生的隐私,考生报名时在报名表单上要设置密码,以便重新登录修改或补充信息。为保证密码安全,该密码经过md5加密。md5是一种不可逆的算法,即使是工作人员也不可能知道密码是什么。为了应付出现考生忘记密码的情况,工作人员通过后台可以对密码进行重新设置。进一步方便了考生的使用。
3)根据使用人员的要求,在打印准考证时,要选择技能考试的选考项目,因此进入打印页面和最终打印时间有个时间差。由于打印准考证是由多个工作人员同时进行操作,为防止准考证号码出现重复,在最终打印时要准认一下该号码有没有其他考生使用,如果有其他考生已经使用该号码,重新选择号码打印准考证。代码如下:
setrs=server.createobject("adodb.recordset")
sql="select*fromdz_baomingwheredz_zhunkao='"&trim(request("dz_zhunkao"))&"'"
rs.opensql,conn,1,1
ifnotrs.eofthen
rs.close
setrs=nothing
Response.Write"<script>alert('准考证号被占用,请重新操作!');window.location.href='admin_zhunkao.asp';</script>"‘如果准考证号码已经有其他考生使用,重新选择号码
response.end
endif
4结束语
该系统从2013年2月开始投入应用,除去放假时间,在一个多月的时间里完成了一千三百多考生的网上报名,在一天的时间里,为一千多考生打印现场确认表和准考证。丰富的功能方便了招生人员对考生的管理,也方便了考生采用自助方式进行报名,使用户能享受到互联网带来的便利,极大地提高了工作效率,取得了较好的使用效果。
作者简介
1.曹郁辉(1967—),男,十堰职业技术学院信息与智能工程系实验师。
2.黄宁(1984—),男,十堰职业技术学院招生办公室科长。 |
|
|
|
【对“教育信息化:基于web的单独招生管理系统设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|