關(guān)鍵詞:Java;圖書館閱覽室;座位管理
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)25-0048-03
0引言
近年來,隨著高等教育的普及,高校學(xué)生數(shù)量不斷增長,圖書館閱覽室作為學(xué)生自學(xué)的重要場(chǎng)所,其座位資源日益緊張。然而,閱覽室座位資源有限,座位增長率遠(yuǎn)低于學(xué)生人數(shù)增長率,導(dǎo)致座位供需矛盾突出,“占座”現(xiàn)象屢禁不止[1]。尤其在考試前夕出現(xiàn)了“一座難求”的現(xiàn)象,甚至因霸座行為引發(fā)爭(zhēng)執(zhí),不僅影響學(xué)生學(xué)習(xí)效率,還加劇了座位資源與學(xué)生的供需矛盾。因此,設(shè)計(jì)開發(fā)一套圖書館閱覽室座位管理系統(tǒng),實(shí)現(xiàn)座位資源的公平分配,提高利用率,并為學(xué)生營造良好的學(xué)習(xí)環(huán)境,具有重要的現(xiàn)實(shí)意義。
1 需求分析
為了保證座位管理系統(tǒng)的順利開發(fā),須對(duì)系統(tǒng)的用戶劃分不同的角色,分析不同角色的流程和需求。閱覽室座位管理系統(tǒng)面向全體在校學(xué)生,因此系統(tǒng)的用戶角色可分為閱覽室的管理員和使用閱覽室的學(xué)生兩類。
1.1 管理員
1) 發(fā)布通知和公告,例如閱覽室開放時(shí)間、預(yù)約規(guī)則等。
2) 管理閱覽室座位,例如改變閱覽室布局、添加或刪除座位等。
3) 管理學(xué)生信息,例如查詢和更新讀者信息。
4) 接收和處理學(xué)生反饋的意見和建議。
1.2 學(xué)生
1) 查看管理員發(fā)布的通知和公告。
2) 進(jìn)行座位預(yù)約、入座和離座操作。
3) 查詢個(gè)人信息,例如違規(guī)次數(shù)、預(yù)約歷史等。
4) 向管理員反饋意見和建議。
2 系統(tǒng)設(shè)計(jì)
2.1 功能模塊設(shè)計(jì)
根據(jù)系統(tǒng)的需求分析,座位管理系統(tǒng)采用B/S架構(gòu)的Web應(yīng)用模式,由登錄管理、公告管理、學(xué)生管理、座位管理、預(yù)約管理、意見管理和閱覽室管理7個(gè)功能模塊組成??傮w功能模塊圖如圖1所示。
1) 登錄管理:系統(tǒng)采用統(tǒng)一身份認(rèn)證平臺(tái)進(jìn)行用戶登錄,實(shí)現(xiàn)單點(diǎn)登錄。管理員登錄后進(jìn)入系統(tǒng)管理首頁,學(xué)生登錄后進(jìn)入個(gè)人信息頁面,可查看個(gè)人信息、取消預(yù)約等。
2) 公告管理:管理員在公告欄發(fā)布閱覽室和座位預(yù)約的相關(guān)說明,如閱覽室開放時(shí)間和預(yù)約規(guī)則等。學(xué)生通過公告欄實(shí)時(shí)瀏覽這些信息。
3) 學(xué)生管理:管理員查詢參與座位預(yù)約的學(xué)生信息,修改提交申請(qǐng)學(xué)生的處罰信息,協(xié)助學(xué)生取消因故無法辦理入座的預(yù)約等。
4) 座位管理:管理員在座位管理模塊進(jìn)行閱覽室布局的調(diào)整操作,如擴(kuò)充新的閱覽室、添加或減少閱覽室座位、標(biāo)記閱覽室開放區(qū)域等。
5) 預(yù)約管理:預(yù)約管理是整個(gè)系統(tǒng)的核心模塊,學(xué)生可在此查看所有閱覽室座位的預(yù)約情況,選擇適合自己的閱覽室、空閑座位、日期和時(shí)間段完成座位的預(yù)約操作。
6) 意見管理:學(xué)生就閱覽室的學(xué)習(xí)環(huán)境和布局通過意見欄向管理員提出建議或意見,管理員則給予相應(yīng)的回復(fù)。
7) 閱覽室管理:預(yù)約的學(xué)生在規(guī)定的時(shí)間段到閱覽室辦理簽到入座和簽退離座操作。未預(yù)約的學(xué)生在閱覽室管理中現(xiàn)場(chǎng)申請(qǐng)簽到入座。管理員通過閱覽室管理的圖形界面實(shí)時(shí)查看閱覽室的上座率。
2.2 數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫作為一個(gè)系統(tǒng)的核心部分,其安全性是數(shù)據(jù)信息安全和隱私安全的保證。因此,本系統(tǒng)采用穩(wěn)定、高效和安全的SQL Server 2019 Standard數(shù)據(jù)庫來存儲(chǔ)和管理系統(tǒng)使用的數(shù)據(jù)[2]。
數(shù)據(jù)庫設(shè)計(jì)須根據(jù)系統(tǒng)中的實(shí)體進(jìn)行分析[3]。座位管理系統(tǒng)的實(shí)體包括管理員、學(xué)生、閱覽室的座位、學(xué)生的預(yù)約記錄、管理員發(fā)布的公告信息、學(xué)生提出的意見。實(shí)體間存在著多對(duì)多和1對(duì)多的關(guān)系,如管理員和學(xué)生之間是多對(duì)多的關(guān)系,管理員和公告信息之間是一對(duì)多的關(guān)系,如圖2所示。
實(shí)體由多個(gè)屬性組成,實(shí)體和屬性在數(shù)據(jù)庫中體現(xiàn)為數(shù)據(jù)表和字段的關(guān)系[4]。因此,座位管理系統(tǒng)涉及的主要數(shù)據(jù)表有:公告信息表(notice) 、學(xué)生信息表(user) 、座位信息表(seat) 、預(yù)約記錄表(order) 和意見表(opinion) 。
公告信息表(notice) 用于存儲(chǔ)管理員發(fā)布的公告信息,如表1所示。
學(xué)生的基本信息存儲(chǔ)在統(tǒng)一身份認(rèn)證平臺(tái),學(xué)生信息表(user) 只用來記錄學(xué)生在預(yù)約中的違規(guī)信息,如表2所示。
座位信息表(seat) 用來存儲(chǔ)閱覽室的座位信息,如表3所示。
預(yù)約記錄表(order) 用來存儲(chǔ)學(xué)生的座位預(yù)約信息,如表4所示。
意見表(opinion) 用來存儲(chǔ)學(xué)生提的意見和建議以及管理員的回復(fù)信息,如表5所示。
3 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)采用MyEclipse 10 作為開發(fā)平臺(tái),SQLServer 2019作為數(shù)據(jù)庫管理系統(tǒng)。后端采用Java語言,前端采用Vue.js框架。Vue.js是一款輕量級(jí)響應(yīng)式JavaScript框架[5],能夠方便地構(gòu)建用戶界面,并確保頁面在不同設(shè)備上的顯示效果。
座位管理系統(tǒng)提供了網(wǎng)上預(yù)約和現(xiàn)場(chǎng)申請(qǐng)兩種方式供學(xué)生使用閱覽室座位資源。學(xué)生可提前一天登錄管理系統(tǒng)網(wǎng)頁,確認(rèn)允許預(yù)約后選擇閱覽室、時(shí)間段和“空閑”的座位進(jìn)行預(yù)約操作。學(xué)生必須在預(yù)約規(guī)則規(guī)定的時(shí)間內(nèi)到預(yù)約的閱覽室進(jìn)行簽到辦理入座操作,否則會(huì)被判違規(guī)1次。違規(guī)累計(jì)3次,將進(jìn)入7天的處罰期,在此期間禁止申請(qǐng)座位,系統(tǒng)同時(shí)對(duì)違規(guī)次數(shù)清零。當(dāng)閱覽室有“空閑”座位時(shí),學(xué)生可現(xiàn)場(chǎng)刷卡申請(qǐng)座位,經(jīng)系統(tǒng)派位后入座。學(xué)生離開閱覽室時(shí)也須刷卡辦理離座操作,否則會(huì)被記錄違規(guī)。選擇“臨時(shí)離開”的,須在規(guī)定時(shí)間內(nèi)返回并刷卡辦理重新入座操作。學(xué)生使用座位的業(yè)務(wù)流程如圖3所示。
座位管理系統(tǒng)的核心是預(yù)約管理模塊,主要代碼如下:
int et=c.getTime();
//獲取預(yù)約時(shí)間
if(ct>et&&ResStatus.equals("空閑"))
//當(dāng)前時(shí)間大于預(yù)約時(shí)間且座位“空閑”,對(duì)預(yù)約
的學(xué)生和座位信息進(jìn)行更新,座位恢復(fù)為無預(yù)約
狀態(tài)。
{
int flag=seatD.userupdateresR(Integer.parseInt(Re?cordID));
int flagseat=seatD.seatTimeNum();
seaD.userupdateS(Integer.parseInt(RecordID));
}
Calendar b=Calendar.getInstance();
try {
b.setTime(df.parse(TimeEnd));
} catch (ParseException e) {
e.printStackTrace();
}
int etime=b.geTime();
//當(dāng)前時(shí)間大于預(yù)約時(shí)間且座位“忙碌”,對(duì)預(yù)約的學(xué)生和座位信息進(jìn)行更新
if(ct>etime&&ResStatus.equals("忙碌"))
{
int flag=seatD.userupdataR2(Integer.parseInt(Recor?dID));
int flagseat=seatD.seatTimeNum();
seatD.userupdateS(Integer.parseInt(RecordID));
}
4 結(jié)束語
本文設(shè)計(jì)并實(shí)現(xiàn)了基于Java的圖書館閱覽室座位管理系統(tǒng),該系統(tǒng)能夠有效解決閱覽室“占座”問題,實(shí)現(xiàn)座位資源的公平分配,提高座位利用率,為學(xué)生營造良好的學(xué)習(xí)環(huán)境,提升圖書館服務(wù)質(zhì)量。