用asp和ajax开发电子阅览室机位在线预约系统

时间:2022-04-29 04:26:22

用asp和ajax开发电子阅览室机位在线预约系统

〔摘要〕本文开发的基于ajax和asp的机位在线预约系统以较低的成本解决了机位分配问题。系统个性化地考虑读者个人习惯,允许读者自由选择机位。本文阐述了系统实现过程,为图书馆机位管理问题提供有效的解决途径。

〔关键词〕图书馆;电子阅览室;在线预约系统;Asp;ajax

〔中图分类号〕G255.2〔文献标识码〕B〔文章编号〕1008-0821(2013)02-0144-04

图书馆电子阅览室是读者利用与检索馆藏文献、电子出版物以及网络信息资源的重要场所,是图书馆数字化建设的重要组成部分和标志性部门。如何提高电子阅览室的各种资源的利用率一直是图书馆管理者需要解决的问题,国内同行研究类似问题的文章也举不胜举[1-7]。近期,我馆第3电子阅览室505室购进60台方正品牌机供读者使用。这批机器配置较高,因此,很受读者欢迎。最初,我们采用了传统的管理方式对这个电子阅览室进行管理。读者来到阅览室后,如果电子阅览室有位置,该读者就在电子阅览室机房管理系统终端的读卡器进行刷卡,然后选择空闲的设备进行上机操作;如果都没有位置,读者要么返回,要么在电子阅览室门口排队等候空余座位。在这种管理方式下,读者事先并不知道设备的使用情况。因此,在电子阅览室要么有一部分设备处于闲置状态,要么因设备都在被使用而导致读者在门口排起了长队。这种落后的管理方式常常给读者带来了诸多不便之处,同时也使得电子阅览室管理效率和设备利用率都比较低。

本文针对上述问题,根据公正、公开和公平的原则以及照顾大多数读者的原则,以校园网为依托,设计开发电子阅览室机位网上预约系统软件,将这个电子阅览室的机位通过网上预约的方式向读者开放。为了方便读者及时了解各个机位的使用情况,本系统实现了机位状态实时预览功能。同时,为了读者选择满意的机位,本系统实现了在读者浏览机位的使用情况时通过点击相应的机位号即可执行预约操作的功能。从而,使得读者可以随时了解各个设备的使用情况,即节省了时间,也提高了设备的利用率。下面本文就该系统的设计与实现过程进行详细的阐述。

1系统需求分析

根据我馆实际情况,为实现预约机位、浏览机位状态、查询机位预约信息、机位预约统计以及网上机位预约撤销等功能,笔者将本系统设计为以下5个模块:①登录模块;②机位预览;③机位预约;④预约查询;⑤管理中心。系统结构图如图1所示。

11图1电子阅览室网上预约系统结构图11

根据我馆的实际情况,系统设计的要点如下:

1.1用户信息识别

读者在预约机位时,首先通过图书馆主页进入本系统登录页面来进行身份确认,只有通过身份确认后才能进入系统主页进行预约机位操作。在我馆图书管理软件采用的是汇文系统。所以,笔者能够将汇文系统中的关于读者的一些数据例如用户名及密码等导入到本系统读者信息表中,这样读者在利用图书馆各种资源时实现了统一认证。

1.2机位预览

读者成功登录到系统主页后,若想了解各机位的具置和当前的状态,可以通过点击系统主页头部标签“机位预览”而进入到实现机位预览功能的网面。笔者设定各机位有3种状态,用3种颜色标识,其中绿色代表“等待预约”;黄色代表“已经预约”;红色代表“已经审核”。机位预览图的绘制是通过程序绘制而成,而且具有定时刷新功能。电子阅览室505室机位二维平面预览图如图2所示,其中有数字的方格代表机位,空白处没有机位。从图中可以看出该研修室共有60个机位,57个机位处于空闲状态,3个机位被预约,其中1个预约的机位已经通过系统审核。11图2图书馆在线预约系统11

读者在成功登录本系统主页后,通过点击主页顶部标签“机位预约”而进入预约页面。在此页面,读者可以选择房间和机位。读者在选择好房间和机位号后,点击“提交” 按钮即可申请预约。

此外,为了方便读者能够预约到理想机位,读者可以直接在机位预约图中点击绿色的机位号申请预约。在图2中,当读者将鼠标移到35号机位识别有效区时,鼠标处会实时显示“点击进行预约”的字样。这样,读者只要单击鼠标便执行了预约35机位的操作。当读者在成功预约到机位后,系统会显示该读者预约机位的详细信息,包括证件号、姓名、房间号、机位号、预约时间、开始使用时间、结束时间和客户端IP地址等信息。

1.4机位查询

读者在成功登录本系统主页后,通过点击主页顶部标签“机位查询”而进入查询页面。在查询页面,读者可以看到预约机位的详细信息,包括房间号、机位号、开始使用时间和预约时间等。

1.5管理中心

管理中心是管理员管理系统的重要模块,只有通过系统的身份认证,管理员才能登陆该模块。在管理中心,管理员能够执行预约统计以及重新派位等操作。管理者也可以通过“预约统计”功能看到电子阅览室当前机位的预约统计情况。

为提高机位利用率及减少占座现象,我们规定某读者已经预约了机位,其应在开始使用时间的10分钟内来到电子阅览室使用相应的设备。如果读者在规定的时间内没有及时赶到,而且也没有执行预约撤销操作,管理员会通过“重新派位”的 功能收回该机位并将其释放,以供其他读者继续预约。同时,该读者被加入了黑名单,并记录读者违约次数,当读者违约次数达到3次将不能再预约机位。

2开发工具及数据库系统选择

本系统是基于B/S 模式的Web 数据库软件。B/S模式下,在客户端几乎不需要做任何修改,系统软硬件的安装、升级、维护仅集中在服务器端,且Web浏览器具有统一的用户界面,形式简单,操作方便。系统采用的开发工具为ASP。ASP是一个服务器端的脚本编写环境,在站点的Web服务器上解释脚本,可以用来创建和运行交互式、高效率的动态网页或站点服务下器应用程序。ASP可以与数据库和其他程序进行交互,可以胜任基于微软Web服务器的各种动态数据。本系统读者总量为2万多人,在线预约人数为600人,因此选择使用access数据库能够很好的满足系统要求。同时,在系统中使用Ajax,能够根据用户信息的变化实现页面的局部更新,这样客户端可以得到丰富的应用体验和交互操作,无需刷新页面,也无需等待,用户提交的信息就能得到及时的回应。

3预约系统的实现

预约系统的实现主要包括数据库的设计、ASP业务逻辑的实现及系统部署及测试三部分。

3.1数据库的设计

数据库作为系统服务器端的后台存储了读者的数据、机位的状态数据和机位使用历史数据。本系统数据库表有3个表:读者信息表、机位状态表和预约信息表,下面分别加以介绍。

读者信息表中包含了用户证件号、密码、姓名以及班级等信息。为标识读者是否预约到机位,表中设置了预约标识字段flag。当flag=0表示该读者可以预约机位;当flag=1表示该读者已经预约机位,不能再进行预约其他1个机位。这样,通过字段flag就可避免1人预约多个机位的现象发生。机位状态表中包含了机位的房间号、机位号及机位状态等信息。当前机位所处的状态可能有3种情况:已经预约、等待预约和已经审核,具体处于哪个状态用字段zwzt来表示。为了方便读者选择机位,本文实现了房间与机位联动功能,即选择了房间,就能将该房间对应的机位自动显示出来。为此本文设置了字段father,用来表示房间号与机位的父子节点关联。比如房间号505在表中ID值为145,则该表中凡father字段值为145的机位均位于505房间中。预约信息表表中包含了证件号、姓名、房间号、机位号、预约时间、预约时间、开始时间、结束时间和客户端IP地址等信息,其中字段sh用来表示读者预约到机位后,是否办理了预约手续。当sh值为审核时表示读者办理了预约手续,否则没有办理预约手续。

3.2ASP业务逻辑的实现

ASP服务器程序部分是实现机位管理业务逻辑功能的核心部分,包括用户身份认证、机位状态图形显示、机位预约信息保存、机位预约信息查询以及实现管理员的相关管理操作。其中,机位状态图形显示及机位预约信息保存是本系统的关键。这两个部分都是通过asp程序实现的。机位预览图具体绘制过程如下:

(1)首先根据505室机位二维平面图对电子阅览室的各个机位进行排号。

(2)开始绘制第一行。平面图第一行是有窗户的墙体,可通过一个单循环语句来进行绘制。并且在此单循环体内进行判断,如果是窗户的所在位置,则绘制成一个带“窗”字的方格;如果不是窗户的所在位置,则绘制成一个空白方格。方格的大小通过css统一进行设置。

(3)现在绘制各机位的空间位置及其状态显示。这需要通过一个三层循环语句来进行绘制。首先利用数据集对象recordset从机位数据表中取出所有机位记录,并将指针指向第一条记录。然后,进入三层循环体。最外层循环体作用是依次取出每一个记录数据,然后在本循环体内的两层嵌套循环体内分别按行和列依次进行处理。两层嵌套循环体的外面一层是按平面图的行进行循环,里面的循环体是按列进行循环。在最里面的循环体对每一条记录进行处理以绘制带有机位号及颜色的用来表示机位状态的小方格。在asp程序具体实现时,机位号可以通过当前记录中的机位号字段zwh获得,然后根据机位状态字段zwzt进行绘制背景颜色。我们规定如果zwzt值为“等待预约”,则背景颜色为绿色;如果zwzt值为“已经预约”,则背景颜色为黄色;如果zwzt值为“已经审核”,则背景颜色为红色。当处理完当前记录后,将记录指针下移一行,指向下一条记录。

(4)当绘制完所有机位后,我们将绘制“门”等图形。

通过上面的四个步骤,我们可以绘制出比较直观的机位二维状态图,其中三重循环关键代码如下所示:

在本系统中,读者有两种方式进行预约,下面分别进行介绍。第一种方式,读者在成功登陆系统主页后,通过点击标签“机位预约”,从而进入机位预约页面。在此页面,可以选择房间号和机位号,预约时间和预约天数则由系统来确定。读者选好房间及机位号后,通过点击“提交”按钮,系统将转换到yybc.asp处理页面进行相应的处理作。如果预约成功,系统会保存预约相关信息;如果预约失败,系统会提示出错原因。“提交”操作过程的流程图如图3所示。

11图3机位预约流程图〖〗

为方便读者操作,我们提供了另外一种方式进行预约,即读者可以直接在机位二维平面预览图上点击背景为绿色的机位号即可实现预约。这时系统将由机位阅览页面zzyl505.asp转到yybc.asp页面,并进行相应的处理。同时,两个动态参数“房间号”和“机位号”也将由页面zzyl505.asp传递到yybc.asp页面传递,具体操作流程与如图3类似。参数传递的代码如下:

如果当前机位的状态为″等待预约″,则绘制成绿色方格

3.3系统测试

本系统在实际运行前经过了一系列测试。需要注意的问题有以下两点:

(1)为提供系统执行效率,往数据库添加新记录时不要用append语句,而应该用insert语句。同时,为了保证各个数据表的数据保持一致,在程序中加入了事务管理。

(2)在读者预约机位的过程中可能会存在大量的并发事件。因此,预约系统对于服务器有一定的要求。服务器不能太繁忙,最好不要放在图书馆主页所在的服务器上,而应放在相对空闲的服务器上。否则,系统运行速度会较慢,甚至导致服务器瘫痪,从而引起读者不满。

4结束

笔者在设计开发的图书馆机位网上预约系统的过程中,充分考虑了读者的实际需求,争取做到界面更加友好,具体操作更人性化。本系统在我馆试运行期间,有效缓解了505室占座及排队等现象,并且提高了资源利用率,达到了预期效果。同时,也为解决类似问题提供了有效的解决问题的途径。

参考文献

[1]杜波.基于单片机及CAN技术的图书馆自习室机位管理系统的实现[J].情报探索,2003,(3):62-63.

[2]周国栋,王新赤,卞树檀等.基于时分多址的图书馆机位管理系统[J].电子工程师,2008,34(7):77-80.

[3]肖红.高校图书馆自习室自动排坐系统研究[J].图书馆,2009,(2):127-128.

[4]范红月. 图书馆自习室自动排座系统 [J ].图书馆杂志,2008,(9):48-49.

[5]孙发,潘鹏程,廖文献.图书馆书架定位系统的设计与实现[J].现代图书情报技术,2008,(12):95-98.

[6]孙发,吴代莉,曾为众.图书馆自习室管理系统的设计与实现[J].现代图书情报技术,2010,(5):93-98.

[7]高培超,曾涛,张玲,等.高校图书馆座位资源的使用现状及建议[J].中国校外教育,2010,(8):139-140.

上一篇:图书馆内及与外界知识流动的相关因素研究 下一篇:排版知识问答(五)