APP下载

基于数据库技术的抽号建模的实现

2010-05-29黄良斌

浙江交通职业技术学院学报 2010年1期
关键词:顺序号数组字段

黄良斌

(南通纺织职业技术学院 信息系,江苏 南通 226007)

0 引 言

每年学生在进行毕业论文答辩时均要遇到如何确定答辩顺序的问题。以前学校的做法,没有体现公正、公平、公开,为了确定答辩顺序也浪费了大量的精力与时间。

通过网络软件就可以解决当前抽号问题,做到一人只能自己抽一次号[1]。在抽号完成时计算机自动记录抽号人所抽取的号码,并立即回馈给抽号人自己。学生也可以提前知道自己的答辩顺序号,方便自己的日程安排。

1 抽号数据库的设计

数据库的设计非常重要,一个良好的数据库的设计可以简化程序设计,加快程序的响应时间,提高安全性能与效率。本例采用SQL Server 2000数据库。SQL Server 2000是微软公司发布的一种性能优越的面向客户机/服务器的关系型数据库管理系统[2]。利用数据库的字段名可以为数字的特点,把字段名建立成如1、2、3、4……100,假设其班级参加抽号的总人数不超过100,如果总人数要增加,可以按此方法增加数据库字段名,其数据库结构与程序抽号保存结果如表1、表2所示。

表1 数据结构表

表2 抽号结果汇总表

2 抽号程序总体设计

毕业答辩顺序号的抽号程序总体分为学生用户与教师用户两部分。学生用户个体采用自己的用户名与密码登录,登录后即可进行抽号,在抽号之前,可以看到全班至目前为此已经完成抽号的情况,每人限抽号一次,抽号完成后即在页面上显示抽号结果,且不能修改抽号结果,以体现公平。其程序总体设计流程图如图1所示。

图1 系统流程图

3 抽号程序详细设计

进入抽号程序的第一步是获得抽号的总人数,学校的每个自然班的总人数是个动态的过程,程序登录后,即要获得班级的总人数,这也是数据库字段名的最大值的确定过程,以便在抽号时得到一个范围值。

开始抽号之后的第一步是取剩余号,即从数据库中查看每个字段内是否有姓名,如果没有,则该号未参加过抽号,可以从字段的名称来得到号码,把剩余为空的字段名汇总得到一个数组[3]。

根据数组的最大下标,开始在数组内随机抽一个数字,把这个数作为数据库的字段名来查看是否为空,如果为空则写入;如果不空,则刚刚有人成功参与了抽号,所以这个号不能用,必须重新取号再重新抽号,直至抽号完成。具体部分程序如下所示:

”定义一个未知数组

DimmyArray()

”找出没有参与抽号的总人数

S=0”总人数变量

for i=3 to studentnumber+2”因字段偏移,故从第3个字段开始读取,第1~3字段分别为班级、系部、学校

if RT.fields(i)=“”or isnull(RT.fields(i))then S=S+1

next

”根据未抽号的总人数,重新定义数组大小并赋值Redim myArray(S)

i=0”数组下标变量

for j=3 to studentnumber+2”因字段偏移,故从第3个字段开始读取,第1~3字段分别为班级、系部、学校

if RT.fields(j)=“”or isnull(RT.fields(j))then

myArray(i)=RT.fields(j).name”把未抽的号记入数组,号即字段名称

i=i+1

end if

next

”开始进入抽号程序

for i=0 to S-1

Randomize”初始化随机数生成器

”把随机数作为数组下标得到抽的号码

numberRT=myArray(int(S*rnd))

if RT(numberRT)= “”or isnull(RT(numberRT))then”判断是否有人抽了这个号,如果是空,则写入

sql= “update tablename set[” &numberRT&“]='” &Session(“NAME”)&“‘where classname='”&classname&“‘and partname='”&partname&“‘and schoolname='” &schoolname&“'”

con.execute(sql)

exit for

end if

next

4 结 语

依靠数据库本身的字段名来实现抽号过程,可以简化程序设计,提高程序的响应时间与效率,在用户总数不是太多的情况下,采用此方式有着一定优势。

[1]王正敏,刘厚泉.抽号建模的实现与探讨[J].微计算机信息,2007,23(33):195-196.

[2]宋阳,严平,曹彤.基于ASP、SQL Server 2000实现的Web文献检索系统及其查询优化[J].计算机应用与软件,2006,23(10):25-28.

[3]张琳,程敏熙.基于ASP的实验考试抽签系统[J].中山大学学报论丛,2006,26(1):27-31.

猜你喜欢

顺序号数组字段
关于参考文献著录格式
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
浅谈台湾原版中文图书的编目经验
更高效用好 Excel的数组公式
寻找勾股数组的历程
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究
正确表示国家标准的编号