華澤,韓東旭,陸悠,張妮
(蘇州科技大學電子與信息工程學院,江蘇215009)
學校圖書館自習室自動選座系統的設計與實現
華澤,韓東旭,陸悠,張妮
(蘇州科技大學電子與信息工程學院,江蘇215009)
當今大量圖書館的座位資源往往受多種人為因素的影響與制約而得不到合理的分配與使用。為此,基于B/S模式和完整的三層結構設計,設計和開發圖書館自習室自動選座系統,具有查看自習室座位使用情況、手動與自動選座、續座、暫時離開、座位預約及取消預約、消息推送、查看常用座位等功能。
自習室;自動選座;入座;座位預約
學校圖書館是一個相對寬敞、安靜的公共區域,擁有多數自習室以及豐富的書籍,為學生們提供了一個良好的讀書氛圍。比之其他區域的自習室,更加安靜、和諧,作為一個最佳閱讀自習場所最好不過;自然而然,圖書館自習室本身就是一處公共場所,每日進進出出的學生形形色色,無可避免的是每個人都會產生不同的行為和思維模式,一些不良現象也應運而生。在此之中,“占位”現象尤為突出。伴隨著越來越多的校園擴招,圖書館自習室的座位問題層出不窮,當寒冷的冬天到來時,圖書館成為一個最佳學習場所,然而自習室的空位數量有限,于是座位的占用現象開始出現,有的學生在座位上放水杯和一堆書籍,甚至粘紙等占有方式……在圖書館,許多學生都疲憊不堪,只是為了得到一個地方。自習室的座位資源開始越來越匱乏,每每可以看到一個個座位上堆放著一本本的書,或者是放著一些其他事物,但是顯而易見的是,大部分座位都是空置的,學生們難免有不滿的聲音。與此同時,圖書館的規定往往會被學生們拋諸腦后,當學生們離開座位的時候,位置上仍然擺放著諸多私人物品,以宣誓座位的主權。
圖書館自習室自動選座系統是針對自習室占座等不良現象而導致的圖書館座位資源浪費而開發的軟件平臺,自動選座系統能夠實現與用戶的友好交互,它可以從根本上處理了自習室座位資源被占據使用卻不能實現有效運用的問題,改善了圖書館自習室座位資源被浪費的情況,提高讀者的行動效率與維系好圖書館自習室井井有條的良好秩序。該系統為用戶創造舒心流暢的交互界面,系統具備快速的運轉效率,可以實現提升圖書館自習室座位資源利用率的目的。完善運用歷史記錄的數據資源,剖析學生在自習室里的選座規律,發掘和提煉出相關信息,以此來實現對圖書館自習室座位管理的合理安排,為學校對圖書館自習室的座位安排及規則的制定提供幫助。
本系統采用三層架構的系統結構設計:
數據層:該層實現的是對數據庫或者文本文件中的數據的操作,通過從數據庫中提取數據并進行相關處理再將數據傳遞給業務邏輯層或者直接傳遞給表示層即UI界面。
業務邏輯層:本業務層是對具體功能的具體操作,也就是調用該層的方法對數據層進行操作,是界面和數據庫的連接樞紐。
表示層:該層主要表現為UI界面,也即網頁,該層主要向業務邏輯層提交請求,并獲取返回數據與界面中顯示出來。
系統主要有三大部分構成:校內用戶的操作、校外用戶的操作以及違規檢測,系統功能結構圖如圖1所示。

圖1 系統整體功能模塊圖
該模塊是整個系統的開始模塊,在登錄時要對用戶進行區分,劃分為校內用戶和校外用戶兩種。此兩者最大的區別就在于數據的持久性。校內用戶的賬戶信息是系統中所存在的并且將一直保留,每一次的操作記錄數據都將保留一個星期后由系統自動刪除。而校外用戶的登錄賬號是臨時分配的,具有臨時性,在一段時間后將會自動將該賬號回收,并且清楚有關該賬戶的一系列數據信息。
該模塊作為整個系統的核心、關鍵,該模塊負責將自習室A,B,C中的座位桌椅具體顯示出來,最重要的是將座位的狀態區分為5種:可選、預約、有人、暫離和我的座位。該模塊負責從數據庫中讀取每一個座位的狀態數據,并對這些數據集進行解析,將與這些狀態數據相對應的狀態圖片在網頁頁面上進行切換顯示。
除了桌椅狀態圖片的顯示,另外還有對消息推送的顯示和我的常用座位的顯示。在消息推送模塊和我的常用座位模塊中,采用輪詢的方式,運用AJAX技術,每間隔0.1秒向后臺服務器發送更新的request,收到response后解析返回的json數據并且顯示。
除此之外,該模塊還負責數據分析顯示的功能,將后臺傳輸到網頁的數據通過折線圖和餅狀圖形象的顯示出來。
該模塊主要負責檢驗用戶的座位預約是否合法。首先當用戶點擊座位的預約時,系統將檢測該用戶是否已經擁有座位,若該用戶當前沒有擁有座位才可以進行預約,在成功進行預約后,系統將把用戶名和用戶所預約的座位號發送給后臺,后臺對數據進行存儲。預約座位流程圖如圖2所示。
該模塊包括兩種選座的方式:手動選座和自動選座。選座模式類似于預約,一個用戶只能擁有一個座位,在成功進行選座后,系統將把用戶名和用戶所選擇的座位號發送給后臺,后臺對數據進行存儲。額外的是,自動選座采取的是常用座位優先選座方式,前面提到數據顯示中有我的常用座位的顯示功能,系統會先對這些常用座位進行檢測,檢測的順序的優先級為最近使用的時間,若該座位目前可選,則自動分配給用戶,若常用座位都已經有人,則系統通過隨機數的方式為用戶生成座位號,并將數據存儲于數據庫中。實現選座業務功能的流程圖如圖3所示。

圖3 選座業務流程圖
該模塊負責對座位進行續座功能。每個座位的分配時效為兩個小時,在座位使用的前一個半小時中續座功能是不會提供的,當該座位的使用時間達到一個半小時時,系統會通過消息推送提醒用戶需要進行續座,與此同時,在用戶的功能選擇欄中會自動跳出續座的按鈕。用戶通過點擊,系統會自動修改座位的使用時間,并延長兩個小時的時效。
該模塊負責的修改座位的狀態為暫離狀態。暫離狀態類似于續座功能,在用戶沒有擁有座位前,該功能是不對用戶提供的。暫離狀態分為兩種:普通暫離和吃飯時間的暫離。當用戶進行暫離申請時,系統會自動獲取當前時間,檢測時間段是否在飯點上,若是則自動申請60分鐘的暫離,否則申請30分鐘的暫離。
該模塊負責座位的離座功能。離座即意味著該座位當前沒有用戶在使用,為可選狀態。類似于暫時離座模塊,在用戶沒有擁有座位前,該功能是不對用戶提供的。當用戶點擊離座按鈕后,系統將自動獲取用戶名,并將該用戶所擁有的的座位狀態進行修改,同時將用戶的此次選座記錄存入日志數據表中以及清空用戶的消息推送。
該模塊是出于對系統的安全考慮,為防止某些用戶的惡意使用,而對用戶進行約束的功能。在用戶預約座位模塊中,用戶必須在30分鐘內到達;在用戶暫離模塊中,用戶必須在申請的暫離時間內及時返回。在以上兩個模塊中,系統將每隔0.1秒對數據進行檢測,如果用戶的到達時間和返回時間不在規定的時間范圍中,則自動記違規一次,并且每次違規都會對用戶進行相應的消息提醒,當用戶的違規次數達到3次時,系統則會自動對用戶的權限進行修改,類似于拉入黑名單的操作,用戶將無法登入系統。
該模塊負責實現用戶預約座位的到達和用戶暫離后的到達。由于用戶是在到達圖書館自習室時才能確認到達,為了模擬該到達,在導航欄中添加到達的模擬頁面,用戶只有在到達后才可以在給定的頁面確認到達。
JSP:JSP具有更新快,易于升級,易于部署,維護和修改的優點。我們使用JSP技術作為整個圖書館自習室自動選座系統的開發。使用Java作為開發語言。
Tomcat:Tomcat是一種Web應用服務器,因其免費的開放源代碼而風靡編程界。該服務器性能較為穩定,另一方面,它又是JSP和Servlet的容器。
MySQL:MySQL檢索快,相對于其他付費工具,MySQL免費且支持數種操作系統,對于中小型應用的實現較為方便。在Web查詢模塊中我們使用JDBC接口。
功能模塊的實現包括:登陸模塊、數據顯示模塊、預約模塊、選座模塊、續座模塊、暫時離座模塊、離座模塊、違規檢測模塊。這里只列舉幾個重要模塊實現。
(1)登錄功能模塊的實現
登錄功能模塊包括校內用戶和校外用戶的登錄,實現其不同的功能。
(2)數據顯示模塊
數據顯示模塊包括自習室座位當前狀況的顯示,如圖4所示、我的常用座位的顯示、消息推送如圖5所示和數據分析的顯示。

圖4 自習室座位顯示頁面

圖5 查看我的常用座位頁面
(3)預約座位模塊的實現
預約座位模塊需在對應的自習室座位顯示頁面中進行操作,通過對當前可以預約的座位進行點擊向服務器提交用戶預約用戶信息并修改數據庫中座位的狀態表,預約成功后,座位狀態將會自動改變為被預約狀態,即由原來的可預約狀態轉換為不可在預約的紅色狀態,同時消息推送中會提示用戶在30分鐘內盡快到達,預約成功界面如圖6所示。

圖6 預約座位成功頁面
預約成功的主要實現代碼:
String roomNum=null,tableNum=null,seatNum=null;
roomNum=seatid.substring(0,1);
tableNum=seatid.substring(1,3);
seatNum=seatid.substring(3,4);
seatService.update(new Seat(roomNum,tableNum,seatNum,"2",time,num));
myappointService.add(new Myappointment(num,roomNum,tableNum,seatNum,time,null,"2"));
String content="您已經預約了"+seatid+"座位!您需要在30分鐘內到達!";
String title="預約信息";
newsService.add(new News(num,title,content,time));
(4)到達模塊的實現
在預約成功后,用戶需在30分鐘內到達;在申請暫時離開后,用戶也需要在規定時間內返回。在到達頁面中點擊自己的座位即可完成,座位狀態將會發生改變為有人狀態,但是為了用戶便于找到自己的座位,將用戶自己的座位標識為綠色即“我的座位”。如圖7所示。
(5)續座模塊的實現
在用戶的座位即將過期前,系統將通過消息推送自動提示用戶座位即將過期,且續座按鈕開放,用戶點擊續座按鈕即可,如圖8所示。實現續座模塊核心代碼:
Date afterDate=new Date(date.getTime()+7200000);
String aftertime=dateFormat.format(afterDate);
seatService.updateTime(new Seat(aftertime,num));
String content="您已經成功對"+seatid+"座位進行了續座2小時!";
String title="續座信息";
newsService.add(new News(num,title,content,aftertime));
logdataService.add(new Logdata(num,roomNum,tableNum,seat-Num,time,nowtime));

圖7 到達頁面

圖8 續座頁面

圖9 申請暫時離開頁面
(6)暫時離座模塊的實現
暫時離座模塊獲取用戶名后到數據庫中查找到用戶對應擁有的座位,并對數據庫做相應的修改,當申請成功后,座位狀態相應改變為暫時離開狀態圖片,如圖9所示。關鍵的實現代碼:
roomNum=seatid.substring(0,1);
tableNum=seatid.substring(1,3);
seatNum=seatid.substring(3,4);
seatService.update(new Seat(roomNum,tableNum,seatNum,"4",time,num));
temppartService.add(new Temporarilypart(num,roomNum,table-
Num,seatNum,nowtime,type));
String content="您已經成功申請"+seatid+"座位暫離30分鐘!";
String title="暫離信息";
if(type.equals("2")){
content="您已經成功申請"+seatid+"座位暫離60分鐘!";
}
newsService.add(new News(num,title,content,time));
本文闡述了圖書館自習室自動選座系統的開發背景與意義,并對系統進行了全面設計,進而實現了該系統。學校圖書館自習室自動選座系統實現的功能從根本上解決了圖書館自習室座位資源得不到合理分配,用戶體驗較差的問題。本系統除了具有傳統信息管理系統的功能外,還具有頁面自適應化、響應式布局等功能。支持多個客戶端同時在線操作;通過日程管理,實現網頁的自動更新及普通的網頁編輯與正式發布分離,規避了錯誤的操作而顯示不正確的頁面。
[1]葉莎莎.國外大學圖書館對外開放服務模式探析[J].圖書館學研究,2012,(6):88-93.
[2]胡文康.圖書館自習室自動排座系統設計[J].計算機時代,2016,(8):50-52.
[3]蘇新寧.大數據時代數字圖書館面臨的機遇和挑戰[J].中國圖書館學報.2015,(6):4-12.
[4]耿祥義,張躍平著.Java面向對象程序設計[M].清華大學:清華大學出版社,2010.
[5]傳智播客高教產品研發部.《MySQL數據庫入門》[M].清華大學出版社,2015.
[6]鄭阿奇.JavaEE實用教程[Z].北京:電子工業出版社,2013.
[7]楊新涯,王文清,張潔,王寧.CALIS三期共享域與圖書館系統整合的實踐研究[J].大學圖書館學報,2012(1):5-8+99.
[8]武依文.O2O模式下電影在線選座系統設計與實現[D].北京交通大學,2016.
[9]嚴蔚敏,吳偉民著.數據結構(C語言版).清華大學出版社,2011.
華澤(1968-),女,河南南陽人,碩士,副教授,研究方向為軟件設計,智能交通技術、網絡應用
Design and Implementation of Automatic Selection System for Library Self-Study Room
HUA Ze,HAN Dong-xu,LU You,ZHANG Ni
(SchoolofElectronic and Information Engineering,Suzhou University ofScience and Technology,Suzhou 215009)
There are a lotoflibraries in Chinese society,and the library's seatresources are often influenced and restricted by many kinds ofhuman factors,and cannotbe used and allocated rationally.In order to solve this problem,based on B/S mode and a complete three-tier structure design,designs and develops the library selection room automatic seatselection system,has the function ofchecking the seatofthe study room,manually and automatically selects the seat,renews the seat,temporarily leaves the function,and cancelappointments,push messages,view common seats,etc.
Self-Study Room;Automatic SeatSelection;Be Seated;SeatPre-book
1007-1423(2017)30-0056-05
10.3969/j.issn.1007-1423.2017.30.012
2017-06-27
2017-10-15