基于.NET通用考试报名系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于.NET通用考试报名系统的设计与实现
马鹏烜
【摘要】文章讨论了基于.NET应用开发平台的通用考试报名系统的设计与实现。
系统实现了考试报名流程的自定义及自动流转及考试报名信息的自定义及信息记录。
文章应用面向对象的分析与设计技术,对系统的设计与实现进行了详细的讨论。
%This paper discusses the design and realization of general examination registration system based on .NET application development plaffoml. The system achieves the custom exam registration process and transfer automatically and custom exam registration information and information recorded. This article uses the object oriented analyzing and design technology, discuss system design and implementation in detail.【期刊名称】《电脑与信息技术》
【年(卷),期】2011(019)006
【总页数】4页(P44-47)
【关键词】.NET;考试报名;系统分析
【作者】马鹏烜
【作者单位】内蒙古财经学院,呼和浩特010070
【正文语种】中文
【中图分类】TP393.08
随着社会的不断进步,各种认证考试、等级考试、资格考试层出不穷,如公务员考试,各行业资格考试、英语等级考试、计算机等级考试、各类特殊应用的认证考试等等。
同时参与考试的人员也越来越多,据报道,2010年国家公务员招考涉及
89个部门的1.5万个职位,共有104万人通过网络提交了报名申请。
为了解决人工报名带来的效率低,错误率高的问题,大型考试普遍使用B/S结构软件来报名,如大学英语考试、公务员考试等等。
但是这些考试报名软件功能强大、专业性强,很难把它们迁移到中小型考试应用中,如企业招考等。
设计一通用的考试报名软件就是为了解决在各类考试中人工报名可能造成的错误,把报名工作尽可能数字化,只要有少量的人员进行报考审核就可以顺利报名。
该软件将针对中小型考试如:企业招考,教育培训机构培训考试,学校内部考试等进行开发。
通用报名软件中需要解决:
(1)特定考试报名流程的自定义及自动流转;
(2)特定考试报名信息的自定义及信息记录。
对考试报名流程问题的解决,可以借鉴工作流技术,对考试报名这一管理流程进行分析,建立一般的报名流程模块,并把它们组织为一个基本报名流程。
系统用户可以根据实际情况新建流程模块,并把它添加到报名流程中;也可以修改流程、删除流程中的某些模块,从而保证报名流程的定制。
考试报名信息的自定义问题,把报名人员信息分为基本信息及扩展信息两部分:基本信息内容有系统预定义,不可改变;扩展信息由系统用户自行定义。
在系统设计中应用数据库结构定义及软件技术解决考试人员扩展信息采集的定制。
1 系统分析
通过对X市人事考试中心的详细调查,把系统分为流程控制部分及一般报名系统
部分。
1.1 报名系统流程控制用例
系统流程控制基本信息的用例图如图1所示。
在图中流程系统管理员主要是对系统考试项目、流程、基本功能页面进行定义、修改、删除,完成流程定义的需求。
图1 系统流程控制用例图
1.2 考试报名用例
报名系统用例模型中有二个角色,其一是系统报名用户。
系统报名用户使用的诸如注册、登陆为一般报名流程。
其中扩展项目用例按照系统管理员预定义项目完成用户扩展信息录入修改编辑等功能;页面引擎是为后台用例,按照系统管理员设定报名流程自动完成页面流转。
扩展项目用例及页面引擎用例为系统核心用例。
系统报名管理员是指报名工作的管理员,完成报名人员的查询,修改,打印等工作,不对系统流程作任何修改。
报名系统用例模型图如图2所示:
图2 报名系统用例图
1.3 核心用例—页面引擎用例的分析
页面引擎用例是系统用例,为了完成系统页面活动的流转而设置。
不同考试机构在考试报名工作中流程不一定是相同的,即使是同一考试机构在不同的考试项目中报名流程也有可能不一致。
系统借鉴了工作流管理的思想,把报名工作分为若干个流程(过程),每一个流程由若干个页面活动组成。
在页面引擎的管理下实现页面活动的自动跳转。
页面引擎的活动图如图3所示:
图3 页面引擎活动图
2 系统设计
系统流程控制类的整体结构如图4所示,以下分别介绍其功能作用。
图4 统流程控制类图
(1)页面类
页面类是一个基于.NET的类System.Web.UI.Page。
它表示从Web应
用程序的宿主服务器请求的.ASPX文件。
这个类封装了动态网页所需的所有属性、方法。
在这里表示了所有的报名页面。
(2)引擎类
引擎类是系统中重要的类,实现活动的流转。
这个类只有一个方法即页面选择。
该方法实现读取预定义的项目、流程、页面三方面的内容,把系统正确引导在一个正确的活动上。
引擎类要调用项目数据类、安全类、参数类等,但不直接使用数据库连接类。
(3)项目数据类
项目数据类是提供项目、流程、活动的基本数据类。
它有两个方法:一个是取项目数据;另一个是置项目数据。
置项目数据完成读取数据库中的项目、流程、页面数据,保存到一个xml文件中;取项目数据完成读取xml文件中的项目数据给客户
返回一个系统DataSet类。
引擎类使用取项目数据完成其功能。
(4)安全类
安全类实现了系统流程控制中安全控制的功能。
它有两个方法:一是用户验证,完成一个报名系统管理员的验证功能;二是流程验证功能,完成用户是否可以执行该流程的验证。
流程验证通过当前用户所属角色的权限来完成该功能。
(5)参数类
参数类是保存系统执行参数的一个类。
系统定义一个参数结构体类型记录系统的执行参数。
参数类中有该结构类型的一个公开属性。
参数类中四个方法:一是保存参数,把参数类中参数属性保存在session中;二是取参数,把session中参数取到属性中;三是修改属性,把属性中的字段进行修改后保存;四是置空参数,把session中参数清空。
(6)数据库连接类
数据库连接类只有一个方法即连接数据库,返回一个数据库连接connection类。
(7)引擎接口类
引擎接口类是为了页面类使用引擎数据而设置。
有一个属性两个方法:属性表示的是引擎所用的参数;第一个方法是返回页面执行成功消息,第二个方法是是返回页面执行失败的消息。
(8)系统流程控制实体类
描述系统流程控制中所用的实体类的总体情况如图5所示。
每一个类可能将对应一个或多个实体表,在数据库定义中将明确的说明每个类中拥有的属性,另外在每个类中有一个保存方法,是为了在数据库中保存属性修改。
图5 系统流程控制实体类图
(9)项目类是系统流程控制对应工作流管理中的商业业务,在本系统中表示一个系统报名。
项目类可以对应多个流程类。
(10)流程类对应工作流管理中的过程。
一个项目可以对应多个流程,一个流程可以对应多个页面类。
(11)页面类对应工作流管理中的任务,是工作流中的最小单位。
一个页面可以出现在多个流程中。
(12)角色类中流程列表属性表示了一个流程对象能够访问的流程编号的数组。
访问该数组可以获取角色访问的流程信息。
用户列表属性表示了已分配该角色用户的用户编号数组,访问该数组可以容易的获取角色中的用户。
(13)用户类中角色列表属性表示了一个用户拥有角色的角色编号数组。
访问该数组可以方便的查询管理分配给用户的角色。
流程控制时序模型如图6所示。
模型中未画出实体类,其中报名用户是系统外操作人员,项目选择和流程选择是两个界面类,安全类、引擎类、项目数据类是控制类。
图6 系统流程控制时序图
报名用户无参数调用引擎,引擎调用项目选择返回给用户。
当用户选择项目编号后,发送消息给引擎,引擎根据项目编号返回流程选择信息给用户。
用户选择流程后首先进行安全验证,如果该用户所在的角色组拥有该流程的执行权限则进入页面选择阶段,否则返回错误信息。
进入页面选择后引擎获取页面信息后调用页面返回给用户,用户操作完成后发出执行情况消息给引擎。
引擎根据执行情况获取下一个页面或停止执行。
3 系统实现
3.1 系统数据库设计
为了解决不同考试报名中考生信息不同的问题,在数据库设计中把考生信息分为主要信息及扩展信息。
所有考生主要信息相同,在考生注册时提供。
扩展信息则可以在考试报名时进行设置。
在数据库表中(参阅数据库设计部分),扩展信息表(bm_kzxx)保存了系统所有扩展信息名称及类型,项目扩展信息表
(bm_kz_xm)保存了系统各个项目使用的扩展信息,考生扩展信息表
(bm_kskzxx)记录考生在报名中填写的扩展信息。
这样设置的优点有:
(1)不同项目可以共享扩展项目,同时每个项目扩展信息又可以不同;
(2)每个扩展项目拥有自定义类型,可以在软件编程中予以完整性检查。
3.2 报名高峰时数据库读写流量问题
本系统中,考生访问每个页面提交后,系统需要访问数据库来确定下一个页面。
在报名高峰时,势必造成数据库的拥塞。
为了解决这一问题系统设计了项目数据类,此类中有置项目数据和取项目数据两个方法。
置项目数据是在系统项目、流程、页面信息修改后调用,主要完成把数据库数据写为XML文档。
取项目数据主要是在系统流程控制时把XML文档内容发送给系统流程控制模块。
这样设置的优点有:
(1)系统流程控制中,不需要每次读取数据库,避免数据库在系统高峰时可能的拥塞;
(2)项目数据库类以WEB Service技术完成,可以在一定程度上提高系统的稳定性、安全性和系统数据库之间独立性。
4 结论
应用先进的.NET开发平台,实现的通用考试报名系统,可以解决中小型考试如企业招考,学校内考试的报名信息化的问题。
同时在系统中使用的网页流程引擎对需要多页面流转软件功能模块的实现具有较高的应用价值。
参考文献:
[1]罗惠平.网上报名系统技术实现框架研究[J].科技创业月刊,2010(04):158-160.
[2]宋海兰,李航,沙继东 3.5项目开发实战[M].电子工业出版社,2009.
[3]麦克唐纳(美),兹普兹塔(美)著.博思工作室译高级程序设计(第3版)[M].人民邮电出版社,2009,11.
[4]曾宪群,黄继民.CET四六级考试网上报名系统的设计与实现[J].计算机与现代
化 ,2009(12):176-178,182.
[5]刘升贵.基于UML和的全国计算机等级考试报名系统的设计与实现[J].电脑知识与技术,2010,06(26):173-175.。