Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载!
一、项目简述
本系统功能包括:
学生管理,教师管理,课程管理,成绩管理,系统管理等等。
二、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。
学生管理控制层:
@Controller
@RequestMapping("admin/system/user")
public class UserController {@AutowiredUserService userService;@AutowiredRoleService roleService;@AutowiredUploadService uploadService;@RequestMapping("list")@SysLog("跳转系统用户列表页面")public String list(){return "admin/user/list";}@RequiresPermissions("sys:user:list")@PostMapping("list")@ResponseBodypublic PageData<User> list(@RequestParam(value = "page",defaultValue = "1")Integer page,@RequestParam(value = "limit",defaultValue = "10")Integer limit,ServletRequest request){Map map = WebUtils.getParametersStartingWith(request, "s_");PageData<User> userPageData = new PageData<>();QueryWrapper<User> userWrapper = new QueryWrapper<>();if(!map.isEmpty()){String type = (String) map.get("type");if(StringUtils.isNotBlank(type)) {userWrapper.eq("is_admin", "admin".equals(type) ? true : false);}String keys = (String) map.get("key");if(StringUtils.isNotBlank(keys)) {userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys));}}IPage<User> userPage = userService.page(new Page<>(page,limit),userWrapper);userPageData.setCount(userPage.getTotal());userPageData.setData(userPage.getRecords());return userPageData;}@RequestMapping("add")public String add(ModelMap modelMap){List<Role> roleList = roleService.selectAll();modelMap.put("roleList",roleList);return "admin/user/add";}@RequiresPermissions("sys:user:add")@PostMapping("add")@ResponseBody@SysLog("保存新增系统用户数据")public ResponseEntity add(@RequestBody User user){if(StringUtils.isBlank(user.getLoginName())){return ResponseEntity.failure("登录名不能为空");}if(user.getRoleLists() == null || user.getRoleLists().size() == 0){return ResponseEntity.failure("用户角色至少选择一个");}if(userService.userCount(user.getLoginName())>0){return ResponseEntity.failure("登录名称已经存在");}
// if(StringUtils.isNotBlank(user.getEmail())){
// if(userService.userCount(user.getEmail())>0){
// return ResponseEntity.failure("该邮箱已被使用");
// }
// }
// if(StringUtils.isNoneBlank(user.getTel())){
// if(userService.userCount(user.getTel())>0){
// return ResponseEntity.failure("该手机号已被绑定");
// }
// }//设置默认密码if(StringUtils.isBlank(user.getPassword())){user.setPassword(Constants.DEFAULT_PASSWORD);}userService.saveUser(user);if(StringUtils.isBlank(user.getId())){return ResponseEntity.failure("保存用户信息出错");}//保存用户角色关系userService.saveUserRoles(user.getId(),user.getRoleLists());return ResponseEntity.success("操作成功");}@RequestMapping("edit")public String edit(String id,ModelMap modelMap){User user = userService.findUserById(id);String roleIds = "";if(user != null) {roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(","));}List<Role> roleList = roleService.selectAll();modelMap.put("localuser",user);modelMap.put("roleIds",roleIds);modelMap.put("roleList",roleList);return "admin/user/edit";}@RequiresPermissions("sys:user:edit")@PostMapping("edit")@ResponseBody@SysLog("保存系统用户编辑数据")public ResponseEntity edit(@RequestBody User user){if(StringUtils.isBlank(user.getId())){return ResponseEntity.failure("用户ID不能为空");}if(StringUtils.isBlank(user.getLoginName())){return ResponseEntity.failure("登录名不能为空");}if(user.getRoleLists() == null || user.getRoleLists().size() == 0){return ResponseEntity.failure("用户角色至少选择一个");}User oldUser = userService.findUserById(user.getId());if(StringUtils.isNotBlank(user.getEmail())){if(!user.getEmail().equals(oldUser.getEmail())){if(userService.userCount(user.getEmail())>0){return ResponseEntity.failure("该邮箱已被使用");}}}if(StringUtils.isNotBlank(user.getLoginName())){if(!user.getLoginName().equals(oldUser.getLoginName())) {if (userService.userCount(user.getLoginName()) > 0) {return ResponseEntity.failure("该登录名已存在");}}}if(StringUtils.isNotBlank(user.getTel())){if(!user.getTel().equals(oldUser.getTel())) {if (userService.userCount(user.getTel()) > 0) {return ResponseEntity.failure("该手机号已经被绑定");}}}user.setIcon(oldUser.getIcon());userService.updateUser(user);if(StringUtils.isBlank(user.getId())){return ResponseEntity.failure("保存用户信息出错");}userService.saveUserRoles(user.getId(),user.getRoleLists());return ResponseEntity.success("操作成功");}@RequiresPermissions("sys:user:lock")@PostMapping("lock")@ResponseBody@SysLog("锁定或开启系统用户")public ResponseEntity lock(@RequestParam(value = "id",required = false)String id){if(StringUtils.isBlank(id)){return ResponseEntity.failure("参数错误");}User user = userService.getById(id);if(user == null){return ResponseEntity.failure("用户不存在");}userService.lockUser(user);return ResponseEntity.success("操作成功");}@RequiresPermissions("sys:user:delete")@PostMapping("delete")@ResponseBody@SysLog("删除系统用户数据(单个)")public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){if(StringUtils.isBlank(id)){return ResponseEntity.failure("参数错误");}User user = userService.getById(id);if(user == null){return ResponseEntity.failure("用户不存在");}else if(user.getAdminUser()) {return ResponseEntity.failure("不能删除后台用户");}userService.deleteUser(user);return ResponseEntity.success("操作成功");}@RequiresPermissions("sys:user:delete")@PostMapping("deleteSome")@ResponseBody@SysLog("删除系统用户数据(多个)")public ResponseEntity deleteSome(@RequestBody List<User> users){if(users == null || users.size()==0){return ResponseEntity.failure("请选择需要删除的用户");}for (User u : users){if(u.getAdminUser()){return ResponseEntity.failure("不能删除超级管理员");}else{userService.deleteUser(u);}}return ResponseEntity.success("操作成功");}@RequestMapping("userinfo")public String toEditMyInfo(ModelMap modelMap){String userId = MySysUser.id();User user = userService.findUserById(userId);modelMap.put("userinfo",user);modelMap.put("userRole",user.getRoleLists());return "admin/user/userInfo";}@SysLog("系统用户个人信息修改")@PostMapping("saveUserinfo")@ResponseBodypublic ResponseEntity saveUserInfo(User user){if(StringUtils.isBlank(user.getId())){return ResponseEntity.failure("用户ID不能为空");}if(StringUtils.isBlank(user.getLoginName())){return ResponseEntity.failure("登录名不能为空");}User oldUser = userService.findUserById(user.getId());if(StringUtils.isNotBlank(user.getEmail())){if(!user.getEmail().equals(oldUser.getEmail())){if(userService.userCount(user.getEmail())>0){return ResponseEntity.failure("该邮箱已被使用");}}}if(StringUtils.isNotBlank(user.getTel())){if(!user.getTel().equals(oldUser.getTel())) {if (userService.userCount(user.getTel()) > 0) {return ResponseEntity.failure("该手机号已经被绑定");}}}userService.updateById(user);return ResponseEntity.success("操作成功");}@RequestMapping("changePassword")public String changePassword(ModelMap modelMap){modelMap.put("currentUser",userService.getById(MySysUser.id()));return "admin/user/changePassword";}@CrossOrigin@SysLog("用户修改密码")@PostMapping("changePassword")@ResponseBodypublic ResponseEntity changePassword(@RequestParam(value = "userName",required = false)String userName,@RequestParam(value = "oldPwd",required = false)String oldPwd,@RequestParam(value = "newPwd",required = false)String newPwd,@RequestParam(value = "confirmPwd",required = false)String confirmPwd){if(StringUtils.isBlank(oldPwd)){return ResponseEntity.failure("旧密码不能为空");}if(StringUtils.isBlank(newPwd)){return ResponseEntity.failure("新密码不能为空");}if(StringUtils.isBlank(confirmPwd)){return ResponseEntity.failure("确认密码不能为空");}if(!confirmPwd.equals(newPwd)){return ResponseEntity.failure("确认密码与新密码不一致");}//小程序修改密码if(StringUtils.isBlank(userName)){//PC修改密码User user = userService.findUserById(MySysUser.id());byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS);String password = Encodes.encodeHex(hashPassword);if(!user.getPassword().equals(password)){return ResponseEntity.failure("旧密码错误");}user.setPassword(newPwd);Encodes.entryptPassword(user);userService.updateById(user);return ResponseEntity.success("操作成功");}else {//小程序修改密码User user = userService.findUserByLoginName(userName);byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS);String password = Encodes.encodeHex(hashPassword);if(!user.getPassword().equals(password)){return ResponseEntity.failure("旧密码错误");}user.setPassword(newPwd);Encodes.entryptPassword(user);userService.updateById(user);return ResponseEntity.success("操作成功");}}@SysLog("上传头像")@PostMapping("uploadFace")@ResponseBodypublic ResponseEntity uploadFile(@RequestParam("icon") MultipartFile file, HttpServletRequest httpServletRequest) {if(file == null){return ResponseEntity.failure("上传文件为空 ");}String url = null;Map map = new HashMap();try {url = uploadService.upload(file);map.put("url", url);map.put("name", file.getOriginalFilename());} catch (Exception e) {e.printStackTrace();return ResponseEntity.failure(e.getMessage());}return ResponseEntity.success("操作成功").setAny("data",map);}}
教师管理控制层:
@Controller
public class TeacherController {@Autowiredprivate TeacherService lxxTeacherService;@Autowiredprivate StudentService lxxStudentService;@Autowiredprivate DeleteService deleteService;// 跳转教师查询页面@RequestMapping("/selectTeacher")public String selectTeacher(){return "view/teacher/selTeacher";}// 查询教师信息@RequestMapping("selTeacher")@ResponseBodypublic LayuiResult<Map> selTeacher(TeacherDB teacherDB, pageCount pageCount){LayuiResult<Map> result = new LayuiResult<>();// 查询所有教师信息/模糊查询教师信息List<Map> list = lxxTeacherService.selTeacher(teacherDB,pageCount);// 查询符合条件的教师数量int count = lxxTeacherService.selTeacherCount(teacherDB);result.setData(list);result.setCount(count);return result;}// 根据教师编号查询教师信息@RequestMapping("/selTeacherId")public String selTeacherId(Integer id, Model model){List<TeacherDB> tea = lxxTeacherService.selTeacherId(id);// 查询政治面貌List<PoliticsTypeDB> selpol = lxxStudentService.selPolitics();model.addAttribute("tea",tea);model.addAttribute("selpol",selpol);return "view/teacher/updTeacher";}// 根据教师编号查询教师详细信息@RequestMapping("/selectTeaMessage")public String selectTeaMessage(Integer id, Model model){List<TeacherDB> tea = lxxTeacherService.selTeacherId(id);// 查询政治面貌List<PoliticsTypeDB> selpol = lxxStudentService.selPolitics();model.addAttribute("tea",tea);model.addAttribute("selpol",selpol);return "view/teacher/selTchMessage";}// 修改教师信息@RequestMapping("/updateTeacher")@ResponseBodypublic LayuiResult<TeacherDB> updTeacher(TeacherDB teacherDB, String birthday) throws Exception{LayuiResult result= new LayuiResult();SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date date=format.parse(birthday);teacherDB.setTbirthday(date);Integer state = teacherDB.getTchstate();Integer tid = teacherDB.getTid();if(state == 1){// 修改教师为离职状态并逻辑删除Integer deleteTeacher = deleteService.deleteTeacher(teacherDB);// 删除教师授课信息Integer deleteTchCourse = deleteService.deleteTchCourse(tid);// 删除教师班级信息Integer deleteTchClass = deleteService.deleteTchClass(tid);// 删除教师成绩信息Integer deleteTchExam = deleteService.deleteTchExam(tid);// 删除教评记录信息Integer deleteTeaRecord = deleteService.deleteTeaRecord(tid);// 改用户登录状态改为(1)锁定状态Integer deleteUser = deleteService.deleteUser(teacherDB.getTchid());//删除提示result.setMsg("修改成功!");return result;}else{int a =lxxTeacherService.updTeacher(teacherDB);//删除提示result.setMsg("修改成功!");return result;}}}
角色管理控制层:
@Controller
@RequestMapping("admin/system/role")
public class RoleController {@AutowiredRoleService roleService;@AutowiredUserService userService;@AutowiredMenuService menuService;@RequestMapping(value = "list")public String list(){return "admin/role/list";}@RequiresPermissions("sys:role:list")@PostMapping("list")@ResponseBodypublic PageData<Role> list(@RequestParam(value = "page",defaultValue = "1")Integer page,@RequestParam(value = "limit",defaultValue = "10")Integer limit,ServletRequest request){Map map = WebUtils.getParametersStartingWith(request, "s_");PageData<Role> rolePageData = new PageData<>();QueryWrapper<Role> roleWrapper = new QueryWrapper<>();roleWrapper.eq("del_flag",false);if(!map.isEmpty()){String keys = (String) map.get("key");if(StringUtils.isNotBlank(keys)) {roleWrapper.like("name", keys);}}IPage<Role> rolePage = roleService.page(new Page<>(page,limit),roleWrapper);rolePageData.setCount(rolePage.getTotal());rolePageData.setData(setUserToRole(rolePage.getRecords()));return rolePageData;}private List<Role> setUserToRole(List<Role> roles){roles.forEach(r -> {if(StringUtils.isNotBlank(r.getCreateId())){User u = userService.findUserById(r.getCreateId());if(StringUtils.isBlank(u.getNickName())){u.setNickName(u.getLoginName());}r.setCreateUser(u);}if(StringUtils.isNotBlank(r.getUpdateId())){User u = userService.findUserById(r.getUpdateId());if(StringUtils.isBlank(u.getNickName())){u.setNickName(u.getLoginName());}r.setUpdateUser(u);}});return roles;}@RequestMapping("add")public String add(ModelMap modelMap){Map<String,Object> map = new HashMap();map.put("parentId",null);map.put("isShow",false);List<Menu> menuList = menuService.selectAllMenus(map);modelMap.put("menuList",menuList);return "admin/role/add";}@RequiresPermissions("sys:role:add")@PostMapping("add")@ResponseBody@SysLog("保存新增角色数据")public ResponseEntity add(@RequestBody Role role){if(StringUtils.isBlank(role.getName())){return ResponseEntity.failure("角色名称不能为空");}if(roleService.getRoleNameCount(role.getName())>0){return ResponseEntity.failure("角色名称已存在");}roleService.saveRole(role);return ResponseEntity.success("操作成功");}@RequestMapping("edit")public String edit(String id,ModelMap modelMap){Role role = roleService.getRoleById(id);String menuIds = null;if(role != null) {menuIds = role.getMenuSet().stream().map(menu -> menu.getId()).collect(Collectors.joining(","));}Map<String,Object> map = new HashMap();map.put("parentId",null);map.put("isShow",Boolean.FALSE);List<Menu> menuList = menuService.selectAllMenus(map);modelMap.put("role",role);modelMap.put("menuList",menuList);modelMap.put("menuIds",menuIds);return "admin/role/edit";}@RequiresPermissions("sys:role:edit")@PostMapping("edit")@ResponseBody@SysLog("保存编辑角色数据")public ResponseEntity edit(@RequestBody Role role){if(StringUtils.isBlank(role.getId())){return ResponseEntity.failure("角色ID不能为空");}if(StringUtils.isBlank(role.getName())){return ResponseEntity.failure("角色名称不能为空");}Role oldRole = roleService.getRoleById(role.getId());if(!oldRole.getName().equals(role.getName())){if(roleService.getRoleNameCount(role.getName())>0){return ResponseEntity.failure("角色名称已存在");}}roleService.updateRole(role);return ResponseEntity.success("操作成功");}@RequiresPermissions("sys:role:delete")@PostMapping("delete")@ResponseBody@SysLog("删除角色数据")public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){if(StringUtils.isBlank(id)){return ResponseEntity.failure("角色ID不能为空");}Role role = roleService.getRoleById(id);roleService.deleteRole(role);return ResponseEntity.success("操作成功");}@RequiresPermissions("sys:role:delete")@PostMapping("deleteSome")@ResponseBody@SysLog("多选删除角色数据")public ResponseEntity deleteSome(@RequestBody List<Role> roles){if(roles == null || roles.size()==0){return ResponseEntity.failure("请选择需要删除的角色");}for (Role r : roles){roleService.deleteRole(r);}return ResponseEntity.success("操作成功");}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

UVA 11752 超级幂
UVA 11752 超级幂 Z - The Super PowersTime Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Practice UVA 11752Description 题意:定义一个数为超级幂,当这个数能表示成至少两个不同数字的幂时。如162^4&#x…

Awstats
c是一个非常简洁而且强大的统计工具。它可以统计您站点的如下信息:一:访问量,访问次数,页面浏览量,点击数,数据流量等精确到每月、每日、每小时的数据二:访问者国家、访问者IP、操作系统、浏览器…

fixture详细介绍-作为参数传入,error和failed区别
前言 fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手! fixture简介 fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统…

哈佛结构和冯诺依曼结构区别。
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储 器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和…

js 数据函数
//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var a [1,2,3,4,5]; var b a.shift(); //a:[2,3,4,5] b:1 //unshift:将参数添加到原数组开头,并返回数组的长度…

Java项目:平行志愿管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括: 系统管理,招生计划,学生管理,录取结果,自动分配,调剂管理等等。 二、项目运行 环境配置: J…

冒泡 MS Azure 不便宜。。。
一直在等 MS Azure 中国开卖, 最近有消息说正式商用了。。。 看看去,ok 发现官方网站 很奇葩。没有购买的地方 说毛线 啊 卧槽 欺骗感情还是吊人胃口? 好看了一下VM的价格,卧槽真不便宜。 即使是 768 MB的也要 0.22RMB 小时。本来…

数据库的概念以及MYSQL的安装和卸载
一、数据库的基本概念: 1、什么是数据库? DataBase,简称DB。是用来存储和管理数据的仓库。 2、数据库的特点: 持久化存储数据的。其实数据库就是一个文件系统。方便存储和管理数据使用了统一的方式操作数据库——SQL 3、最热门…

对ARM异常(Exceptions)的理解
对ARM异常(Exceptions)的理解 1 .对 ARM 异常( Exceptions )的理解 所有的系统引导程序前面中会有一段类似的代码,如下: .globl _start ;系统复位位置 _s…

Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 本系统功能包括: 商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理&#x…

简单又好看的按钮,扁平化按钮。
原文 http://blog.csdn.net/peijiangping1989/article/details/19333779主题 安卓开发今天分享一下流行的扁平化按钮。完全不需要用到图片哦。效果图如下: 里面有2个按钮都是一样的模式。只要修改的色值就可以。下面跟我来更新你的UI吧。 首先编写 button.xml 代码…

MahApps.Metro
ModernUI for WPF Mahapps.metro home Mahapps.metro Quick start Mahapps.metro controls转载于:https://www.cnblogs.com/xakml/p/3682173.html

用herl工具解决微信内链接或二维码可直接用外部浏览器打开
很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们实现微信跳转功能即可。 下面给大家推荐 herl工具(http://www.nicejump.cn/) 使用步骤 1. 用浏览器打开我们的工…

shell之“/dev/null 21”
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:“>/dev/null 2>&1” 为五部分。 1:> 代表重定向到哪里,例如:echo "123" &g…
Java项目:角色权限后台脚手架系统(java+Springboot+Maven+myBaits-Plus+Vue+Element-UI+Mysql)
源码获取:博客首页 "资源" 里下载! Springboot框架myBaits-PlusMySQL实现的角色权限后台管理脚手架系统实战项目,实现的是所有系统最基础的后台管理功能,有了这个脚手架,以后开发别的项目就在这上面快速增加…

30+程序员,平时都忙些什么事情?平时都想些什么?以后有啥计划?
很多人都说,30岁以后了,写程序还有前途嘛?我有时候也迷茫,但是迷茫过后,总会给自己寻找方向,每个人都需要有个信念、没有信念,活着就没意思,无聊,觉得没奔头了。 废话少说…

用于制图、写电子邮件、创建条形码控件Aspose.Total
2019独角兽企业重金招聘Python工程师标准>>> Aspose.Total 提供了 Aspose 可以使用的任何组件,以及你每年订阅中发布的所有新组件。通过它,你能够有计划地操纵一些商业中最流行的文件格式:Word, Excel, PowerPoint, Project, PDF …

循环for语句 if语句
if语句: if(表达式){ 代码 }else if(表达式){ 代码 } for循环: for(var i0; i<10; i){ alert(1); (弹窗) } if语句: if(表达式){ 代码 }else if(表达式){ 代码 } for循环: for(var i0; i<10; i){ alert(1); (弹窗…

Linux中的粘滞位
Linux中的粘滞位 Sticky 位是一个访问权限标志位,可以用来标示文件和路径。 历史: 粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件。当可执行文件设置粘滞位之后,它能够指示操作系统在程序退出后,保留程序…

Java项目:实现权限管理系统(java+SpringBoot+MyBatis+AOP+LayUI+Mysql)
源码获取:博客首页 "资源" 里下载! springbootmybatis使用面向切面编程(AOP)实现的权限管理系统。 共五个模块,角色管理,菜单管理,实验室管理,学生管理,管理员…

阅读10、11、12章
第10章 假设用户交付给我们一个 任务,然后我们通过调研的出来的结果进行设计,最后的结果跟用户想象的不一样,这应该怎么做? 第11章 团队合作真的需要有那么繁琐的步骤(例如每日例会)吗? 第12章 …

SQL删除重复数据方法
原文:SQL删除重复数据方法例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b …

#pragma once与#ifndef
在C/C中,在使用预编译指令#include的时候,为了防止重复引用造成二义性的两种方法。 #ifndef 它不光可以保证同一份文件不会被包含两次,也能够保证不同文件完全相同的内容不会被包含两次。但,同样的,如果自定义的宏名不…

grep 在HP-UX下的递归查找
grep 在HP-UX下的递归查找Linux: man grep 可以看到 -r 选项-R, -r, --recursiveRead all files under each directory, recursively; this is equivalent to the -d recurse option.即:-r 选项可以查找指定目录下每个子目录下的所有文件eg:grep -r "28281&quo…

Java项目:实现个人博客系统(java+springboot+mybatis+redis+vue+elementui+Mysql)
源码获取:博客首页 "资源" 里下载! springbootmybatis前端vue,使用前后端分离架构实现的个人博客系统,共7个模块,首页,写博客,博客详情页,评论管理,文章分类&a…

软件工程--总作业(已经完成)
用户调研:http://www.cnblogs.com/OuZeBo/p/4580146.htmlalpha阶段总结:http://www.cnblogs.com/OuZeBo/p/4580146.html对其他组评价的反馈:已评论其他组,暂时没有其他组对我们组进行评论描述项目的典型用户与场景:已完…

linux各文件夹的作用域
目錄應放置檔案內容/bin系統有很多放置執行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指…

LOJ 2721 「NOI2018」屠龙勇士——扩展中国剩余定理
题目:https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] % p[ i ] ,因为在 multiset 里找的时候还需要真实值。 2.注意用 multiset 。并且,因为要 upper_bound( a[ i ] ) ,而 a[ i ] 是一个 long long 类型的…

setuid和setgid
setuid 和 setgid (全称分别是:set user ID upon execution 和 set group ID upon execution)是Unix的访问权限标志位,它允许 用户以可执行文件owner或group的权限来运行这个可执行文件。它们经常适用于:为了运行特定的任务,可以允…

Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述功能包括: 用户分为宠物,医生,管理员,宠物主人可进行注册选择医生挂号,选择日期,选择号源,医生可进行宠物接诊…