最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

基于SSM實(shí)現(xiàn)圖書館座位預(yù)約系統(tǒng)

2022-09-22 16:06 作者:指南針畢業(yè)設(shè)計(jì)  | 我要投稿


項(xiàng)目編號(hào):BS-XX-014

一,項(xiàng)目簡(jiǎn)介

在當(dāng)今建設(shè)創(chuàng)新型國(guó)家的形勢(shì)下,隨著國(guó)家相關(guān)戰(zhàn)略的大力落實(shí),政府單位密切關(guān)注高等教育的發(fā)展,不僅增加了許多有利的社會(huì)制度,并且也大力投入學(xué)?;A(chǔ)設(shè)施建設(shè)[1]。通過種種舉措,使得高校的辦學(xué)條件及學(xué)生學(xué)習(xí)環(huán)境得到質(zhì)的提高。如果說高校是孕育人才的搖籃,那么圖書館就是編制這個(gè)搖籃的藤條。而學(xué)生在面對(duì)當(dāng)今培育人才計(jì)劃的壓力,他們需要汲取更多的不同領(lǐng)域的知識(shí)來不斷擴(kuò)充自己的知識(shí)層面,包括通過考證考研來增加自身資本。由于個(gè)人條件能力有限,每個(gè)人都不可能擁有各個(gè)領(lǐng)域相關(guān)的全部書籍,這時(shí)候,圖書館就可以充分發(fā)揮作用,履行它自身的職能,為廣大師生提供書籍及相關(guān)資料,滿足他們的需求。

基于我國(guó)人口基數(shù)大的基本國(guó)情下,哪怕政府已多增加對(duì)高校建設(shè)的投入,人均資源占有量仍然偏低[1]。尤其在圖書館座位資源利用中,最常見的問題無非是座位短缺,大多數(shù)人也曾稱之為“一座難求”。圖書館不合理的座位管理會(huì)制約館內(nèi)的資源使用,而上述的常見問題亟待解決,如果沒有很好地處理問題,將會(huì)影響學(xué)生對(duì)圖書館的使用率,同時(shí)也是對(duì)國(guó)家政府大力投入資源的浪費(fèi)。

現(xiàn)當(dāng)今信息網(wǎng)絡(luò)發(fā)展迅速,移動(dòng)服務(wù)將會(huì)是現(xiàn)在乃至未來發(fā)展的主流。由我國(guó)互聯(lián)網(wǎng)絡(luò)信息中心用確切數(shù)據(jù)指出:在2017年12月前,中國(guó)手機(jī)網(wǎng)民數(shù)量達(dá)7.53億,且該數(shù)量連續(xù)三年上升[2]。由此可見,互聯(lián)網(wǎng)的普及度很廣。中國(guó)14億人口中就有一半以上使用微信,可以說大部分的日常社交生活是離不開微信,而微信推出的小程序比APP更方便快捷。因此針對(duì)圖書館座位管理問題,我選擇用微信小程序設(shè)計(jì)圖書館座位管理系統(tǒng),希望能為合理管理圖書館座位提供點(diǎn)建議。

本項(xiàng)目主要使用jsp+ssm+mysql實(shí)現(xiàn)的圖書館預(yù)約占座管理系統(tǒng),前端采用的是當(dāng)下最流行的easyui框架,后臺(tái)用的ssm(spring、springMVC、mybaits)框架,主要實(shí)現(xiàn)的功能有:

用戶管理、菜單管理、角色管理、權(quán)限管理、學(xué)生管理、教師管理、班級(jí)管理、圖書館閱覽室管理、學(xué)生信用管理、預(yù)約占座管理、發(fā)帖評(píng)論管理、違規(guī)統(tǒng)計(jì)、占座預(yù)約統(tǒng)計(jì)等,添加學(xué)生和教師時(shí)會(huì)自動(dòng)在用戶表中注冊(cè),定時(shí)任務(wù)會(huì)定時(shí)生成座位信息,閱覽室分類中可設(shè)置信用等級(jí),學(xué)生被扣分后信用等級(jí)低于相應(yīng)的值后不能預(yù)約相應(yīng)的閱覽室座位。

本系統(tǒng)有著完備的權(quán)限管理和控制系統(tǒng),基于用戶、角色、權(quán)限三方實(shí)現(xiàn),可以給不同的用戶分配不同的角色,為不同的角色分配不同的權(quán)限,角色即是一個(gè)系列權(quán)限的集合。

二,環(huán)境介紹

語言環(huán)境:Java:? jdk1.8

數(shù)據(jù)庫:Mysql: mysql5.7

應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31

開發(fā)工具:IDEA或eclipse

前端技術(shù):jsp+easyui+ajax+jquery

后端技術(shù):spring+springmvc+mybatis+定時(shí)任務(wù)

三,系統(tǒng)展示

下面展示一下系統(tǒng)的主要功能:

登陸頁面:

編輯

后臺(tái)系統(tǒng)首頁

編輯



用戶管理

編輯


編輯

菜單管理

編輯


信用積分

編輯


編輯


選座功能

編輯


查看空余選座

編輯


違規(guī)統(tǒng)計(jì)

編輯


占座統(tǒng)計(jì)

編輯


其它功能不在一一展示,所有菜單功能均己實(shí)現(xiàn)

四,核心代碼展示

package dingzhen.controller;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import dingzhen.util.StringUtil;import dingzhen.util.WriterUtil;import dingzhen.entity.Menu;import dingzhen.entity.Role;import dingzhen.entity.User;import dingzhen.service.MenuService;import dingzhen.service.RoleService;import dingzhen.service.UserService;/** * 登錄 */@Controller@SuppressWarnings("unchecked")public class LoginController { private User user; private User currentUser; @Autowired private UserService<User> userService; @Autowired private MenuService<Menu> menuService; private Role role; @Autowired private RoleService<Role> roleService; private Map map; @RequestMapping("login") public void login(HttpServletRequest request,HttpServletResponse response){ try { HttpSession session = request.getSession(); String userName=request.getParameter("userName"); String password=request.getParameter("password"); String imageCode=request.getParameter("imageCode"); request.setAttribute("userName", userName); request.setAttribute("password", password); request.setAttribute("imageCode", imageCode); if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){ request.setAttribute("error", "賬戶或密碼為空"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } if(StringUtil.isEmpty(imageCode)){ request.setAttribute("error", "驗(yàn)證碼為空"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } if(!imageCode.equals(session.getAttribute("sRand"))){ request.setAttribute("error", "驗(yàn)證碼錯(cuò)誤"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } map = new HashMap<String, String>(); map.put("userName", userName); map.put("password", password); currentUser = userService.loginUser(map); if(currentUser==null){ request.setAttribute("error", "用戶名或密碼錯(cuò)誤"); request.getRequestDispatcher("login.jsp").forward(request, response); }else{ role = roleService.findOneRole(currentUser.getRoleId()); String roleName=role.getRoleName(); currentUser.setRoleName(roleName); session.setAttribute("currentUser", currentUser); session.setAttribute("currentOperationIds", role.getOperationIds()); response.sendRedirect("main.htm"); } } catch (Exception e) { e.printStackTrace(); } } // 進(jìn)入系統(tǒng)主界面 @RequestMapping("main") public String toMain(HttpServletRequest request){ Object attribute = request.getSession().getAttribute("currentUser"); if(attribute == null){ return "redirect:login.htm"; } //return "main"; return "sys/main"; } // 加載最上級(jí)左菜單樹 @RequestMapping("menuTree") public void getMenuTree(HttpServletRequest request,HttpServletResponse response){ try { String parentId = request.getParameter("parentId"); currentUser = (User) request.getSession().getAttribute("currentUser"); role = roleService.findOneRole(currentUser.getRoleId()); String[] menuIds = role.getMenuIds().split(","); map = new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); JSONArray jsonArray = getMenusByParentId(parentId, menuIds); WriterUtil.write(response, jsonArray.toString()); } catch (Exception e) { e.printStackTrace(); } } // 遞歸加載所所有樹菜單 public JSONArray getMenusByParentId(String parentId,String[] menuIds)throws Exception{ JSONArray jsonArray=this.getMenuByParentId(parentId,menuIds); for(int i=0;i<jsonArray.size();i++){ JSONObject jsonObject=jsonArray.getJSONObject(i); if("open".equals(jsonObject.getString("state"))){ continue; }else{ jsonObject.put("children", getMenusByParentId(jsonObject.getString("id"),menuIds)); } } return jsonArray; } // 將所有的樹菜單放入easyui要求格式的json public JSONArray getMenuByParentId(String parentId,String[] menuIds)throws Exception{ JSONArray jsonArray=new JSONArray(); map= new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); List<Menu> list = menuService.menuTree(map); for(Menu menu : list){ JSONObject jsonObject = new JSONObject(); jsonObject.put("id", menu.getMenuId()); jsonObject.put("text", menu.getMenuName()); jsonObject.put("iconCls", menu.getIconCls()); JSONObject attributeObject = new JSONObject(); attributeObject.put("menuUrl", menu.getMenuUrl()); if(!hasChildren(menu.getMenuId(), menuIds)){ jsonObject.put("state", "open"); }else{ jsonObject.put("state", menu.getState()); } jsonObject.put("attributes", attributeObject); jsonArray.add(jsonObject); } return jsonArray; } // 判斷是不是有子孩子,人工結(jié)束遞歸樹 public boolean hasChildren(Integer parentId,String[] menuIds){ boolean flag = false; try { map= new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); List<Menu> list = menuService.menuTree(map); if (list == null || list.size()==0) { flag = false; }else { flag = true; } } catch (Exception e) { e.printStackTrace(); } return flag; } // 更新密碼 @RequestMapping("updatePassword") public void updatePassword(HttpServletRequest request,HttpServletResponse response){ JSONObject result=new JSONObject(); try { String userId=request.getParameter("userId"); String newPassword=request.getParameter("newPassword"); user=new User(); user.setUserId(Integer.parseInt(userId)); user.setPassword(newPassword); userService.updateUser(user); result.put("success", "true"); } catch (Exception e) { e.printStackTrace(); result.put("success", "true"); result.put("errorMsg", "對(duì)不起!密碼修改失敗"); } WriterUtil.write(response, result.toString()); } //安全退出 @SuppressWarnings("unused") @RequestMapping("logout") private void logout(HttpServletRequest request,HttpServletResponse response) throws Exception{ request.getSession().invalidate(); response.sendRedirect("login.jsp"); } }


package dingzhen.controller;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import dingzhen.util.StringUtil;import dingzhen.util.WriterUtil;import dingzhen.entity.Menu;import dingzhen.entity.Role;import dingzhen.entity.User;import dingzhen.service.MenuService;import dingzhen.service.RoleService;import dingzhen.service.UserService;/** * 登錄 */@Controller@SuppressWarnings("unchecked")public class LoginController { private User user; private User currentUser; @Autowired private UserService<User> userService; @Autowired private MenuService<Menu> menuService; private Role role; @Autowired private RoleService<Role> roleService; private Map map; @RequestMapping("login") public void login(HttpServletRequest request,HttpServletResponse response){ try { HttpSession session = request.getSession(); String userName=request.getParameter("userName"); String password=request.getParameter("password"); String imageCode=request.getParameter("imageCode"); request.setAttribute("userName", userName); request.setAttribute("password", password); request.setAttribute("imageCode", imageCode); if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){ request.setAttribute("error", "賬戶或密碼為空"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } if(StringUtil.isEmpty(imageCode)){ request.setAttribute("error", "驗(yàn)證碼為空"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } if(!imageCode.equals(session.getAttribute("sRand"))){ request.setAttribute("error", "驗(yàn)證碼錯(cuò)誤"); request.getRequestDispatcher("login.jsp").forward(request, response); return; } map = new HashMap<String, String>(); map.put("userName", userName); map.put("password", password); currentUser = userService.loginUser(map); if(currentUser==null){ request.setAttribute("error", "用戶名或密碼錯(cuò)誤"); request.getRequestDispatcher("login.jsp").forward(request, response); }else{ role = roleService.findOneRole(currentUser.getRoleId()); String roleName=role.getRoleName(); currentUser.setRoleName(roleName); session.setAttribute("currentUser", currentUser); session.setAttribute("currentOperationIds", role.getOperationIds()); response.sendRedirect("main.htm"); } } catch (Exception e) { e.printStackTrace(); } } // 進(jìn)入系統(tǒng)主界面 @RequestMapping("main") public String toMain(HttpServletRequest request){ Object attribute = request.getSession().getAttribute("currentUser"); if(attribute == null){ return "redirect:login.htm"; } //return "main"; return "sys/main"; } // 加載最上級(jí)左菜單樹 @RequestMapping("menuTree") public void getMenuTree(HttpServletRequest request,HttpServletResponse response){ try { String parentId = request.getParameter("parentId"); currentUser = (User) request.getSession().getAttribute("currentUser"); role = roleService.findOneRole(currentUser.getRoleId()); String[] menuIds = role.getMenuIds().split(","); map = new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); JSONArray jsonArray = getMenusByParentId(parentId, menuIds); WriterUtil.write(response, jsonArray.toString()); } catch (Exception e) { e.printStackTrace(); } } // 遞歸加載所所有樹菜單 public JSONArray getMenusByParentId(String parentId,String[] menuIds)throws Exception{ JSONArray jsonArray=this.getMenuByParentId(parentId,menuIds); for(int i=0;i<jsonArray.size();i++){ JSONObject jsonObject=jsonArray.getJSONObject(i); if("open".equals(jsonObject.getString("state"))){ continue; }else{ jsonObject.put("children", getMenusByParentId(jsonObject.getString("id"),menuIds)); } } return jsonArray; } // 將所有的樹菜單放入easyui要求格式的json public JSONArray getMenuByParentId(String parentId,String[] menuIds)throws Exception{ JSONArray jsonArray=new JSONArray(); map= new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); List<Menu> list = menuService.menuTree(map); for(Menu menu : list){ JSONObject jsonObject = new JSONObject(); jsonObject.put("id", menu.getMenuId()); jsonObject.put("text", menu.getMenuName()); jsonObject.put("iconCls", menu.getIconCls()); JSONObject attributeObject = new JSONObject(); attributeObject.put("menuUrl", menu.getMenuUrl()); if(!hasChildren(menu.getMenuId(), menuIds)){ jsonObject.put("state", "open"); }else{ jsonObject.put("state", menu.getState()); } jsonObject.put("attributes", attributeObject); jsonArray.add(jsonObject); } return jsonArray; } // 判斷是不是有子孩子,人工結(jié)束遞歸樹 public boolean hasChildren(Integer parentId,String[] menuIds){ boolean flag = false; try { map= new HashMap(); map.put("parentId",parentId); map.put("menuIds", menuIds); List<Menu> list = menuService.menuTree(map); if (list == null || list.size()==0) { flag = false; }else { flag = true; } } catch (Exception e) { e.printStackTrace(); } return flag; } // 更新密碼 @RequestMapping("updatePassword") public void updatePassword(HttpServletRequest request,HttpServletResponse response){ JSONObject result=new JSONObject(); try { String userId=request.getParameter("userId"); String newPassword=request.getParameter("newPassword"); user=new User(); user.setUserId(Integer.parseInt(userId)); user.setPassword(newPassword); userService.updateUser(user); result.put("success", "true"); } catch (Exception e) { e.printStackTrace(); result.put("success", "true"); result.put("errorMsg", "對(duì)不起!密碼修改失敗"); } WriterUtil.write(response, result.toString()); } //安全退出 @SuppressWarnings("unused") @RequestMapping("logout") private void logout(HttpServletRequest request,HttpServletResponse response) throws Exception{ request.getSession().invalidate(); response.sendRedirect("login.jsp"); } }

package dingzhen.controller;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import dingzhen.entity.Menu;import dingzhen.entity.Operation;import dingzhen.service.MenuService;import dingzhen.service.OperationService;import dingzhen.util.StringUtil;import dingzhen.util.WriterUtil;/** * 菜單管理 */@RequestMapping("menu")@Controllerpublic class MenuController { private Menu menu; private Operation operation; @Autowired private MenuService<Menu> menuService; @Autowired private OperationService<Operation> operationService; @RequestMapping("menuIndex") public String index(){ return "sys/menu"; } @RequestMapping("treeGridMenu") public void treeGridMenu(HttpServletRequest request,HttpServletResponse response){ try { String parentId=request.getParameter("parentId"); JSONArray jsonArray = getListByParentId(parentId); WriterUtil.write(response, jsonArray.toString()); } catch (Exception e) { e.printStackTrace(); } } public JSONArray getListByParentId(String parentId)throws Exception{ JSONArray jsonArray=this.getTreeGridMenuByParentId(parentId); for(int i=0;i<jsonArray.size();i++){ JSONObject jsonObject=jsonArray.getJSONObject(i); if("open".equals(jsonObject.getString("state"))){ continue; }else{ jsonObject.put("children", getListByParentId(jsonObject.getString("id"))); } } return jsonArray; } public JSONArray getTreeGridMenuByParentId(String parentId)throws Exception{ JSONArray jsonArray=new JSONArray(); menu = new Menu(); menu.setParentId(Integer.parseInt(parentId)); List<Menu> list = menuService.findMenu(menu); for(Menu menu : list){ JSONObject jsonObject = new JSONObject(); Integer menuId = menu.getMenuId(); jsonObject.put("id", menuId); jsonObject.put("text", menu.getMenuName()); jsonObject.put("iconCls", menu.getIconCls()); jsonObject.put("state", menu.getState()); jsonObject.put("seq", menu.getSeq()); jsonObject.put("menuUrl", menu.getMenuUrl()); jsonObject.put("menuDescription", menu.getMenuDescription()); // 加上該頁面菜單下面的按鈕 operation = new Operation(); operation.setMenuId(menuId); List<Operation> operaList = operationService.findOperation(operation); if (operaList!=null && operaList.size()>0) { String string = ""; for (Operation o : operaList) { string += o.getOperationName() + ","; } jsonObject.put("operationNames", string.substring(0,string.length()-1)); } else { jsonObject.put("operationNames", ""); } jsonArray.add(jsonObject); } return jsonArray; } @RequestMapping("reserveMenu") public void reserveMenu(HttpServletRequest request,HttpServletResponse response,Menu menu){ String menuId = request.getParameter("menuId"); JSONObject result=new JSONObject(); try { if (StringUtil.isNotEmpty(menuId)) { ?//更新操作 menu.setMenuId(Integer.parseInt(menuId)); menuService.updateMenu(menu); } else { String parentId = request.getParameter("parentId"); menu.setParentId(Integer.parseInt(parentId)); if (isLeaf(parentId)) { // 添加操作 menuService.addMenu(menu); ? // 更新他上級(jí)狀態(tài)。變成CLOSED menu = new Menu(); menu.setMenuId(Integer.parseInt(parentId)); menu.setState("closed"); menuService.updateMenu(menu); } else { menuService.addMenu(menu); } } result.put("success", true); } catch (Exception e) { e.printStackTrace(); result.put("success", true); result.put("errorMsg", "對(duì)不起,操作失敗!"); } WriterUtil.write(response, result.toString()); } // 判斷是不是葉子節(jié)點(diǎn) public boolean isLeaf(String menuId){ boolean flag = false; try { menu = new Menu(); menu.setParentId(Integer.parseInt(menuId)); List<Menu> list = menuService.findMenu(menu); if (list==null || list.size()==0) { flag = true; } } catch (Exception e) { e.printStackTrace(); } return flag; } @RequestMapping("deleteMenu") public void deleteMenu(HttpServletRequest request,HttpServletResponse response){ JSONObject result = new JSONObject(); try { String menuId = request.getParameter("menuId"); String parentId = request.getParameter("parentId"); if (!isLeaf(menuId)) { ?//不是葉子節(jié)點(diǎn),說明有子菜單,不能刪除 result.put("errorMsg", "該菜單下面有子菜單,不能直接刪除"); } else { menu = new Menu(); menu.setParentId(Integer.parseInt(parentId)); int sonNum = menuService.countMenu(menu); if (sonNum == 1) { ? // 只有一個(gè)孩子,刪除該孩子,且把父親狀態(tài)置為open menu = new Menu(); menu.setMenuId(Integer.parseInt(parentId)); menu.setState("open"); menuService.updateMenu(menu); menuService.deleteMenu(Integer.parseInt(menuId)); } else { //不只一個(gè)孩子,直接刪除 menuService.deleteMenu(Integer.parseInt(menuId)); } result.put("success", true); } } catch (Exception e) { e.printStackTrace(); result.put("errorMsg", "對(duì)不起,刪除失??!"); } WriterUtil.write(response, result.toString()); } }


五,項(xiàng)目總結(jié)

在國(guó)內(nèi),傳統(tǒng)的圖書館管理容易引起矛盾爭(zhēng)紛,“占座”現(xiàn)象一直是存在的,由該現(xiàn)象引起的矛盾也是絡(luò)繹不絕。許多高校在館內(nèi)隨處附上“禁止占座”的標(biāo)示語,管理員也會(huì)提醒學(xué)生離館時(shí)一定要把自己的物品都帶走,否則將全部清掉。然而有些學(xué)生視若無睹,管理員在閉館后還是要去收拾他們用來占座的物品,這在一定程度上,使得管理人員的工作量被增加了。當(dāng)隔天學(xué)生來找不到自己被清理掉的物品時(shí),又極度容易和管理員鬧不愉快,亦或者是學(xué)生間也會(huì)因?yàn)檎甲鶈栴}產(chǎn)生矛盾[3]。曲奎等人綜合多種因素總結(jié)出產(chǎn)生“占座”現(xiàn)象的原因,他們認(rèn)為用計(jì)算機(jī)管理可以解決這個(gè)問題,并在這個(gè)問題的基礎(chǔ)上,建議圖書館的座位需要有個(gè)系統(tǒng)來方便管理[4]。通過文獻(xiàn)查找發(fā)現(xiàn)高校中圖書館不乏有些可行方案,比如華北電力大學(xué)曾創(chuàng)建了基于VB的圖書館座位管理系統(tǒng),王炳江等人指出了該系統(tǒng)可以有效保障用戶使用圖書館的權(quán)力,同時(shí)遏止了占座陋習(xí)[5]。但是王孝亮等人認(rèn)為該系統(tǒng)通過刷卡進(jìn)行座位分配,用戶僅借書,系統(tǒng)也會(huì)隨機(jī)幫他們安排座位,這在一定程度上也會(huì)造成座位浪費(fèi)[6];河北工業(yè)大學(xué)曾利用RFID射頻技術(shù)進(jìn)行座位資源管理,韓慧在其論文中指出,該系統(tǒng)需要較多的硬件成本,且容易被數(shù)據(jù)收集、系統(tǒng)布線制約,存在一定局限性[1]。

國(guó)外教育發(fā)展早,他們十分重視圖書館在人類社會(huì)的作用,比如說德國(guó),它被稱為圖書館最多的國(guó)家之一,每年都有上億人來參觀[7]。專家們把圖書館資源當(dāng)作資源分配的問題來處理,在提高資源的利用性以及分配問題下了許多功夫,尤其是從九十年代以來,國(guó)外大多數(shù)學(xué)校通過網(wǎng)絡(luò)化來管理圖書館,這使得管理效率得到一定的提升,21世紀(jì)初,他們把社交媒體軟件融入到圖書館的網(wǎng)絡(luò)管理,如Facebook、Instagram等。國(guó)外的占座現(xiàn)象沒有像國(guó)內(nèi)這么普遍嚴(yán)重,但是這一現(xiàn)象也是不可避免地存在著,德國(guó)大學(xué)通過分散用戶需求來解決圖書館座位資源不充分的問題,該校把學(xué)生的上課時(shí)間和考試分散安排,這也能適當(dāng)緩解高峰時(shí)段過多的人流量給圖書館帶來的壓力[8]。目前大多數(shù)外國(guó)圖書館座位預(yù)約管理系統(tǒng)已經(jīng)獲得了較大的發(fā)展。




基于SSM實(shí)現(xiàn)圖書館座位預(yù)約系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
鄂州市| 澎湖县| 龙口市| 吉木萨尔县| 望都县| 手游| 斗六市| 峨边| 博兴县| 呼伦贝尔市| 北流市| 海阳市| 怀远县| 泰兴市| 科尔| 北京市| 临汾市| 都江堰市| 元阳县| 拉孜县| 灵川县| 乃东县| 威海市| 财经| 宣汉县| 锦州市| 杭锦后旗| 郸城县| 靖宇县| 石狮市| 政和县| 民勤县| 防城港市| 英山县| 湖口县| 泽普县| 平乡县| 阿城市| 咸丰县| 汝南县| 温宿县|