南京电大监考安排系统的研究与实现

2017-04-15 00:09程永青
电脑知识与技术 2016年34期
关键词:数据库算法

程永青

摘要:该文针对我校各类考试采用人工方式进行监考人员安排工作的现况,对我校监考安排工作进行了需求分析、功能模块分析、算法分析,研究设计南京电大监考安排系统,该系统能自动、快速完成监考安排工作,输出相应的报表,减少了人工失误和工作量,提高了工作效率。

关键词: 监考安排;考试项目;数据库;算法

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)34-0084-02

1 概述

目前,我校组织开放教育、远程教育、成人教育、高职高专、社会行业培训等多种类型的考试,安排监考人员是各类考试中必不缺少的一项工作,而我校在这些考试中安排监考人员都是通过人工方式进行,这种方式不仅费时、费力,繁琐,还容易出错,效率低,特别是遇到轮次多、场次多的大型考试时,这些缺点尤为突出。如: 开放教育每学期期末考试工作分选修课考试和必修课考试两个阶段进行,每阶段安排监考时,需要两位工作人员整理、核对监考人员、教室等信息数据,最后按要求制作表格,需要几个工作日的时间,一学年仅开放教育期末考试安排监考所需时间累计近三十个人次工作日。以此为依据,我校在各类考试工作中安排监考人员所花的时间和人力是无法忽视的。

为了提高工作效率,针对我校的具体情况,本人根据我校监考安排的特点,设计了“南京电大监考安排系统”。

2 需求分析

学校在安排监考时,其所用的教室数和所需监考人员的人数是确定的,但还需要考虑诸多其他因素,具体如下:

1)同一时间段每位监考人员只能安排一个考场,或不安排;

2)某教师由于工作或其他原因,在某个时间段不能参加监考;

3)每位监考人员的监考场次大致平均;

4)男女搭配监考;

5)每间考场所需监考人员数可以设置;

6)如果某时间内某考场有留考,那该考场监考人员不能参加下一时间段的监考;

7)每个时间段监考费用不一样,需要时可以设置;

8)可生成报表,包括总的监考人员表,用于给每位监考人员发放只有自己监考任务的表;监考費用总表和监考费用个人表;

9)系统可以随机进行编排;

10)可以同时进行多个考试项目的编排。

3 系统功能模块

人员管理:可以对监考人员的基本信息进行添加、修改、删除,可设置某监考人员本次不可监考。

教室管理:可以对教室的基本信息进行添加、修改、删除,可设置某教室本次不可使用。

考试项目管理:包括新建考试项目,包括设置基本信息,一次完整的考试定义为一个考试项目。可以设置本次考试名称,类型,本次开始日期,结束日期。设置考试时间安排,包括对本次考试的各个时间段进行设置,“添加时间段”时,可输入日期、本场开始时间、结束时间,选择要使用的教室,设置可参加本时间段监考的人员等,设置完成后,本时间段可用教室信息显示“考场设置”列表中。“修改,删除时间段”均可对添加时间段时输入的信息进行编辑。考场设置,包括选择不同的时间段时,“考场设置”列表显示该时间段对应的教室。选中相应的考场,可对该考场的结束时间、费用、留考等信息进行修改。也可以进行批量修改某时间段的费用等信息。

自动安排与输出:包括自动安排人员,必须在人员、教室、时间等信息设置好后,才能进行自动安排人员;输出设置,可以统一设置生成报表的标题,备注等信息;报表输出,可以导出监考总表,监考个人表,费用总表,费用个人表。

帮助:用户可以查询操作说明,及系统版本信息。

系统退出功能。

其他设置:包括默认值设置,系统中用到的某些默认值的设置,这些值将放到系统配置文件中,可以手动修改;字典设置,校区、系部、科室、工作状态、教室状态等内容保存于字典表,可以直接在数据库中手动修改字典表。

4 系统数据库

根据系统主要功能设置了数据库。数据库中主要几个数据表如下: 人员信息表,用于存放监考人员信息,包括姓名、编号、性别、出生日期、所属部门、是否可用等;教室表,存放教室信息,包括教室名称、所属校区;考试项目表,存放一次完整考试的项目信息,如考试名称、考试类型、日期范围;开考时间段表,存放时间段信息,包括开始结束时间、可以安排的人员、使用的教室;考场信息表,存放具体考场的信息,包括教室、监考人数、监考费用、其他费用、是否留考、留考计算场次;考试人员安排表,记录考场安排的监考人员信息;字典表。

5 主要算法

设计人员在考虑需求分析要求之后,使用的算法如下:

首先,将某时间段不可监考的人员,通过每个时间段设置可用监考人员的方式排除;

其次,对可用本考试项目中所有可用人员进行排序,排序的依据有以下几种:姓名、编号、出生日期、电话、电子邮箱,再加上正序、倒序两种排序类型,共有10种排序方法;

再者,对第一时间段安排之前设置以上人员已安排监考次数为0;

然后,对每个时间段进行安排。排序的依据如下:

1)从“本考试项目所有可用人员”中按监考次数由小到大的顺序选择出符合本时间段的人员,选出的人员必须是本时间段的可用人员;

2)将选出的人员按男女分成两组,将这两组人员进行交叉编入人员列表;

3)对本时间段内每个考场安排人员,其顺序是按男女交叉人员列表从前往后的顺序进行安排,安排到每一个考场,每个人员安排后,将其监考次数加1;

4)本时间段安排结束后,再对“本考试项目所有可用人员”按监考次数由小到大的顺序进行排序,继续安排下一个时间段,直到所有时间段的考场安排结束。

通过以上的算法,实现将某时间段不可监考的人员排除,监考人员的场次大致平均,男女搭配,随机排序等要求。

6 系统主要功能实现

1)考试项目管理界面如图1。

其中,修改项目信息部分代码:

……

private bool ValidateValue()

this.errorProvider1.Clear();

if (this.textEdit_prjectName.Text.Trim() == "")

this.errorProvider1.SetError(this.textEdit_prjectName,"考试名称不可以为空!");

return false;

……

if (this.isAdd)

if (ManagerFactory.GetProjectManager().isExistProjectName(this.textEdit_prjectName.Text.Trim()))

this.errorProvider1.SetError(this.textEdit_prjectName, "此考試名称在系统中已存在,请输入新的考试名称!");

return false;

else

if (ManagerFactory.GetProjectManager().isExistProjectNameExcept(this.textEdit_prjectName.Text.Trim(), this.currentProject.ID))

this.errorProvider1.SetError(this.textEdit_prjectName, "此考试名称在系统中已存在,请输入新的考试名称!");

return false;

return true;

......

2)输出设置对话框的界面如图2。

7 结束语

本系统具有较好的通用性及实用性,能够按照要求自动快速完成我校各类型考试的监考安排,生成需要的监考安排表及相应费用表,因此具有一定的参考和实用价值。

参考文献:

[1] 叶乃文,王丹. 面向对象程序设计[M]. 2版. 北京: 清华大学出版社, 2012.

[2] 刘勇军,蒋文君. SQL Server 2005数据库应用教程[M]. 北京:电子工业出版社, 2009.

[3] Nagel C, Evjen B, Glynn J. C#高级编程[M]. 4版.北京:清华大学出版社,2006.

猜你喜欢
数据库算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法