java高校学生电器报修系统ssm高校后勤报修系统小程序源码和论文

news2024/9/23 5:23:39

随着高校每年的扩大招生,学校人数越来越多,学校后勤报修管理的工作量也越来越繁重。使用传统的管理手段和方法,很难完成大量的信息分析和处理。因此,充分利用网络资源和信息化技术,建设一套基于校园网的学校后勤报修管理系统,提高后勤管理水平、效率和质量,使学校后勤管理科学化、信息化、现代化,是新时期学校后勤管理工作面临的一个新的课题。设计开发学校后勤报修管理系统,主要有一下几方面的原因:1、传统的报修、维修环节,存在着方法落后、手续烦琐、工作量大的缺点,以不能适应新形势的要求;2、高校不断扩招,学校的设备也不断增多,需利用现代化手段进行管理;3、赶上新时代的步伐,实现后勤报修管理的规化、信息化,提高后勤报修管理的服务质量和服务效率。基于以上的原因,原有的后勤报修维修手段,以不能适应新情况要求,为提高后勤管理效率和质量,降低后勤管理的人力、物力和财力,方便广大师生生活和学习,开发一个学校后勤报修管理系统十分重要。 

 开发工具:idea ,微信开发者工具
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等

演示视频:

基于微信小程序的java高校学生电器报修系统ssm高校后勤报修系统小程序

 

在信息化社会迎来知识经济的时代,校园的信息化和数字化建设成为国外高校建设的热点。它的基本特征体现为高起点、高投资和快速,相对于国高校而言,还存在起步早的特点。在一个多世纪以前,美国的一所大学就提出了数字化校园的概念,随后美国的麻省理工学院对这个概念,经过多年的努力研究,设计、构建出一个比较成熟的数字化校园的模型。调查显示,在西方的发达国家中一些著名的世界大学,已经于上世纪末成功地建设好了数字化校园。此外,我国在现阶段的信息数字化方面的工作,也开始进入一个全新的发展时期。尤其是在信息化高校的建设方面,已经步入了全面的发展阶段。许多高校都意识到信息化建设,是提高管理手段和水平,保证管理效率和质量的重要渠道。

项目截图:

 小程序登录注册关键代码如下:

<van-dialog id="van-dialog" />

<view class='root_view'>
	<image class='background' src="../../images/bg2.jpeg" mode="aspectFill"></image>
	<view class="content_view">
		<view style="text-align: center;padding-top: 100rpx;">
			<image class='iv_logo' mode='widthFix' src='../../images/sq-logo.png'></image>
		</view>
		
		<form bindsubmit="onLogin">
			<view class='iput_pan'>
				<!-- 密码登录 -->
				<view class='iput_pss_pan'>
					<input name="tel" class='iput_telphone' placeholder-class='ipt_placeholder_style' placeholder='请输入电话'>
					</input>
					<input name="upwd" class='iput_password_login' type="password" placeholder-class='ipt_placeholder_style'
					 placeholder='请输入密码'>
					</input>
				</view>
			</view>

			<button formType="submit" class='btn_login'>登录</button>
		</form>
		<view class='tv_click'>

			<!-- <text class='tv_vcode' bindtap='vcodelogin'></text> -->
			<view class='tv_forget_psswd'>
				<view  bindtap='onJzRegister'>学生注册</view>
			</view>

		</view>
	</view>
</view>

 

package com.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.model.Tadmin;
import com.service.TadminService;

/**
 * 登录Controller控制类
 */
@Controller
public class LoginController {
	/**
	 * 注入Service
	 */
	@Autowired
	private TadminService tadminService;

	/**
	 * 用户登录
	 * 
	 * @param request
	 * @return
	 * @throws Exception
	 */
	@ResponseBody
	@RequestMapping(value = "/tadmin_login")
	public String login(HttpServletRequest request) throws Exception {
		String flag = "false";
		String uname = request.getParameter("uname");
		String upwd = request.getParameter("upwd");

		Tadmin tadmin = new Tadmin();
		tadmin.setUname(uname);
		tadmin.setUpwd(upwd);
		List<Tadmin> tadminList = tadminService.queryTadminList(tadmin, null);
		if (tadminList != null && tadminList.size() > 0) {
			Tadmin admin = tadminList.get(0);
			request.getSession().setAttribute("cuser", admin);
			flag = "true";
		}

		return flag;
	}

	@RequestMapping(value = "/tadmin_loginout")
	public String loginout(HttpServletRequest request) throws Exception {
		request.getSession().setAttribute("cuser", null);
		request.getSession().invalidate();
		return "/admin/login.jsp";
	}

}

 

 

 

 

 发布维修单关键代码:

<wux-toast id="wux-toast" />
<view class="page">
	<view>
		<van-cell-group>
			<van-field value="{{fxsq}}" label="" type="textarea" placeholder="请输入详情" autosize border="{{ false }}" bind:change="onChange" />
		</van-cell-group>
	</view>
	
	<view class="imgs">
		<van-uploader file-list="{{ fileList }}" bind:after-read="afterRead" preview-size="160rpx"  max-count="1"/>
	</view>
	<van-divider />
	<view class="foot" style="">
		<van-button bind:click="saveSQ" size="small" type="warning">提交</van-button>
	</view>
</view>

 

 

 

 

 

package com.controller;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.model.Userinfo;
import com.model.Wxuser;
import com.model.Xminfo;
import com.model.Zhaopin;
import com.response.LoginResponse;
import com.response.Response;
import com.response.UinfoResponse;
import com.response.WxuserListResponse;
import com.response.WxuserResponse;
import com.response.XminfoListResponse;
import com.response.ZhaopinListResponse;
import com.response.ZhaopinResponse;
import com.service.UserinfoService;
import com.service.WxuserService;
import com.service.XminfoService;
import com.service.ZhaopinService;

@Controller
@RequestMapping(value = "/rest")
public class RestApiController {

	@Autowired
	private UserinfoService userinfoService;
	@Autowired
	private WxuserService wxuserService;
	@Autowired
	private ZhaopinService zhaopinService;
	@Autowired
	private XminfoService xminfoService;
	/**
	 * 用户注册
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/register", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
	@ResponseBody
	public Response register(HttpServletRequest req, Userinfo user) {
		Response sres = new Response();
		try {
			Userinfo uinfo = new Userinfo();

			uinfo.setTel(user.getTel());
			List<Userinfo> ulist = userinfoService.queryUserinfoList(uinfo,
					null);
			if (ulist == null || ulist.size() == 0) {
				userinfoService.insertUserinfo(user);
				sres.setCode(200);
			} else {
				sres.setCode(201); // 手机号已存在
			}
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 用户登录
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/ulogin")
	@ResponseBody
	public LoginResponse ulogin(HttpServletRequest req, Userinfo user) {
		LoginResponse sres = new LoginResponse();
		try {
			int uid = 0;
			List<Userinfo> ulist = userinfoService
					.queryUserinfoList(user, null);
			if (ulist != null && ulist.size() > 0) {
				uid = ulist.get(0).getId();
				sres.setCode(200);
				sres.setOpenid(uid + "");
				sres.setName(ulist.get(0).getName());
				sres.setTel(ulist.get(0).getTel());
				sres.setUtype(ulist.get(0).getUtype());
				sres.setAddress(ulist.get(0).getAddress());
			} else {
				sres.setCode(201);
			}
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 用户资料
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/uinfo")
	@ResponseBody
	public UinfoResponse uinfo(HttpServletRequest req) {
		UinfoResponse sres = new UinfoResponse();
		int uid = Integer.parseInt(req.getParameter("uid"));
		try {
			Userinfo uinfo = userinfoService.queryUserinfoById(uid);
			sres.setUinfo(uinfo);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 修改个人资料
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/updateuser")
	@ResponseBody
	public Response updateuser(HttpServletRequest req, Userinfo userinfo) {
		Response sres = new Response();
		try {
			userinfoService.updateUserinfo(userinfo);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 维修人员信息列表
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/tlist")
	@ResponseBody
	public WxuserListResponse tlist(HttpServletRequest req) {
		WxuserListResponse sres = new WxuserListResponse();
		try {
			String keywords = req.getParameter("keywords");
			Wxuser teainfo = new Wxuser();
			teainfo.setState("通过");
			teainfo.setKeywords(keywords);
			List<Wxuser> dlist = wxuserService.queryWxuserList(teainfo, null);
			sres.setCode(200);
			sres.setDlist(dlist);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	 
	 
	
	/**
	 * 维修项目列表
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/xmlist")
	@ResponseBody
	public XminfoListResponse xmlist(HttpServletRequest req) {
		XminfoListResponse sres = new XminfoListResponse();
		try {
			List<Xminfo> dlist = xminfoService.queryXminfoList(new Xminfo(), null);
			sres.setCode(200);
			sres.setDlist(dlist);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}
	/**
	 * 自己查看维修人员信息详情
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/tinfoView")
	@ResponseBody
	public WxuserResponse tinfoView(HttpServletRequest req) {
		WxuserResponse sres = new WxuserResponse();
		try {
			Wxuser teainfo = null;
			int uid = Integer.parseInt(req.getParameter("uid") == null ? "0"
					: req.getParameter("uid"));
			Wxuser tinfo = new Wxuser();
			tinfo.setUid(uid);
			List<Wxuser> tlist = wxuserService.queryWxuserList(tinfo, null);
			if (tlist != null && tlist.size() > 0) {
				teainfo = tlist.get(0);
			}

			sres.setCode(200);
			sres.setDinfo(teainfo);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 修改维修人员信息
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/updateTinfo")
	@ResponseBody
	public Response updateTinfo(HttpServletRequest req, Wxuser wxuser) {
		Response sres = new Response();
		try {
			if (wxuser.getId() != null) {
				wxuserService.updateWxuser(wxuser);
			} else {
				wxuser.setState("待审核");
				wxuserService.insertWxuser(wxuser);
			}
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 报修单列表 任务大厅
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/zplist")
	@ResponseBody
	public ZhaopinListResponse zplist(HttpServletRequest req) {
		ZhaopinListResponse sres = new ZhaopinListResponse();
		try {
			Zhaopin zinfo = new Zhaopin();
			zinfo.setState("待接单");
			String keywords = req.getParameter("keywords");
			zinfo.setKeywords(keywords);
			List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
			sres.setCode(200);
			sres.setDlist(dlist);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 报修单详情
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/zpinfo")
	@ResponseBody
	public ZhaopinResponse zpinfo(HttpServletRequest req) {
		ZhaopinResponse sres = new ZhaopinResponse();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
			if (zinfo.getWuid() != null && zinfo.getWuid() != 0) {
				Wxuser wxuser = new Wxuser();
				wxuser.setUid(zinfo.getWuid());
				List<Wxuser> wxlist = wxuserService.queryWxuserList(wxuser,
						null);
				if (wxlist != null && wxlist.size() > 0) {
					zinfo.setWxuserVO(wxlist.get(0));
				}
			}
			sres.setCode(200);
			sres.setDinfo(zinfo);

		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 发布报修单
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/addZhaopin")
	@ResponseBody
	public Response addZhaopin(HttpServletRequest req, Zhaopin zhaopin) {
		Response sres = new Response();
		try {
			int xmid = Integer.parseInt(req.getParameter("xmid"));
			Xminfo xminfo = xminfoService.queryXminfoById(xmid);
			zhaopin.setTitle(xminfo.getName());
			zhaopin.setGj(xminfo.getBj());
			zhaopin.setState("待接单");
			zhaopin.setFbsj(new SimpleDateFormat("yyyy-MM-dd")
					.format(new Date()));
			zhaopinService.insertZhaopin(zhaopin);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 修改报修单
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/updateZhaopin")
	@ResponseBody
	public Response updateZhaopin(HttpServletRequest req, Zhaopin zhaopin) {
		Response sres = new Response();
		try {
			zhaopin.setFbsj(new SimpleDateFormat("yyyy-MM-dd")
					.format(new Date()));
			zhaopinService.updateZhaopin(zhaopin);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 删除报修单
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/delZhaopin")
	@ResponseBody
	public Response delZhaopin(HttpServletRequest req) {
		Response sres = new Response();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			zhaopinService.deleteZhaopin(id);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 我发布的报修单
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/myzplist")
	@ResponseBody
	public ZhaopinListResponse myzplist(HttpServletRequest req) {
		ZhaopinListResponse sres = new ZhaopinListResponse();
		try {
			int uid = Integer.parseInt(req.getParameter("uid"));
			Zhaopin zinfo = new Zhaopin();
			zinfo.setUid(uid);
			List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
			sres.setCode(200);
			sres.setDlist(dlist);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 维修人员接单
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/jiedan")
	@ResponseBody
	public Response jiedan(HttpServletRequest req) {
		Response sres = new Response();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			int uid = Integer.parseInt(req.getParameter("uid"));

			Wxuser wxuser = new Wxuser();
			wxuser.setUid(uid);
			List<Wxuser> wlist = wxuserService.queryWxuserList(wxuser, null);
			if (wlist != null && wlist.size() > 0) {
				wxuser = wlist.get(0);
				if (wxuser.getState().equals("通过")) {
					Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
					zinfo.setWuid(uid);
					zinfo.setState("已接单");
					zhaopinService.updateZhaopin(zinfo);
					sres.setCode(200);
				} else {
					sres.setCode(202);
				}
			} else {
				sres.setCode(201);
			}

		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 我接的维修单 维修人员
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/mjdlist")
	@ResponseBody
	public ZhaopinListResponse mjdlist(HttpServletRequest req) {
		ZhaopinListResponse sres = new ZhaopinListResponse();
		try {
			int uid = Integer.parseInt(req.getParameter("uid"));
			Zhaopin zinfo = new Zhaopin();
			zinfo.setWuid(uid);
			List<Zhaopin> dlist = zhaopinService.queryZhaopinList(zinfo, null);
			sres.setCode(200);
			sres.setDlist(dlist);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 维修工报价
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/baojia")
	@ResponseBody
	public Response baojia(HttpServletRequest req) {
		Response sres = new Response();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			String baojia = req.getParameter("baojia");
			Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
			zinfo.setBaojia(baojia);
			zinfo.setState("已维修");
			zhaopinService.updateZhaopin(zinfo);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	
	
	/**
	 * 用户确认完成
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/wancheng")
	@ResponseBody
	public Response wancheng(HttpServletRequest req) {
		Response sres = new Response();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
			zinfo.setState("已完成");
			zhaopinService.updateZhaopin(zinfo);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}

	/**
	 * 返修申请
	 * 
	 * @param req
	 * @return
	 */
	@RequestMapping(value = "/fxsqInfo")
	@ResponseBody
	public Response fxsqInfo(HttpServletRequest req) {
		Response sres = new Response();
		try {
			int id = Integer.parseInt(req.getParameter("id"));
			String fxsq = req.getParameter("fxsq");
			String fujian = req.getParameter("fujian");
			Zhaopin zinfo = zhaopinService.queryZhaopinById(id);
			zinfo.setFxsq(fxsq);
			zinfo.setFujian(fujian);
			zinfo.setState("申请返修");
			zhaopinService.updateZhaopin(zinfo);
			sres.setCode(200);
		} catch (Exception e) {
			sres.setCode(500);
			e.printStackTrace();
		}
		return sres;
	}
	
	
	
 
	/**
	 * 上传文件
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/uploadFile")
	@ResponseBody
	public String uploadFile(HttpServletRequest req, HttpServletResponse res,
			Userinfo user) {
		String url = "";
		try {

			FileItemFactory factory = new DiskFileItemFactory();
			// 创建文件上传处理器
			ServletFileUpload upload = new ServletFileUpload(factory);
			// 开始解析请求信息
			List items = null;
			try {
				items = upload.parseRequest(req);
			} catch (FileUploadException e) {
				e.printStackTrace();
			}
			// 对所有请求信息进行判断
			Iterator iter = items.iterator();
			while (iter.hasNext()) {
				FileItem item = (FileItem) iter.next();
				// 信息为普通的格式
				if (item.isFormField()) {
					String fieldName = item.getFieldName();
					String value = item.getString();

				}
				// 信息为文件格式
				else {
					String fileName = item.getName();

					int index = fileName.lastIndexOf(".");
					fileName = fileName.substring(index);

					String fname = new SimpleDateFormat("yyyyMMddHHmmss")
							.format(new Date())
							+ fileName;
					String basePath = req.getRealPath("/upload");
					String furl = "/upload/" + fname;
					File file = new File(basePath, fname);
					try {
						item.write(file);
						url = furl;
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		} catch (Exception e) {

			e.printStackTrace();
		}
		return url;
	}

	 
 

}

系统需求分析

系统开发的第一步,就是要对系统进行需求分析,这是开发应用系统中最举足轻重且不可缺少的一项工作[1]。需求分析的好坏程度,决定着系统开发的速度。系统需求分析工作做得越精细,开发系统的过程就越快。做需求分析的时候,一般需要了解本系统开发的背景,在信息收集的基础上,决定系统开发的技术、经济和操作可行性,进行业务调查和分析,了解用户的功能需求和工作流程,确定开发系统的总体方案,明确系统开发的总体思路和系统要达到的目标,以及系统开发所需要的时间和资金等问题。通过对问题的理解和分析,将需求整理成规格说明书,为问题涉及的信息建立模型,描述如何实现系统。

 

 

 

 

经过多次测试,可以确定本系统的基本功能已经实现了,基本符合要求。本次测试主要利用黑盒测试的方法对系统的功能进行测试,从测试的结果上看,总体上来说还是蛮好的,没有太多的bug和严重的错误。测试出来的都是一些模块上,设计不够完善的一些错误。测试的结果证明,本系统所实现的功能,与需求分析上所要求的功能基本符合,系统的运行速度和稳定性也比较好。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fpga实操训练(uart串口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果说led灯、按键、数码管这些都只能算是基础的话&#xff0c;那么学习fpga遇到的第一个门槛就是uart。要做好uart&#xff0c;首先需要了解串口的…

Thymeleaf 预处理表达式__${表达式}__之国际化使用案例

目录一. 前期准备1.1 国际化项目获取类1.2 国际化配置文件类1.3 项目配置文件1.4 国际化资源文件二. __${表达式}__预处理表达式2.1 在Thymeleaf中使用Spring的Bean2.2 通过#{}获取国际化资源2.3 预处理表达式__${表达式}__的使用三. 效果一. 前期准备 1.1 国际化项目获取类 …

linux系统中RGBLCD的基本操作和实现方法

大家好&#xff0c;今天主要来聊一聊&#xff0c;如何控制RGBLCD屏的方法。 目录 第一&#xff1a;LCD基本简介 第二&#xff1a;LCD屏的要点 第三&#xff1a;LCD屏具体配置步骤 第四&#xff1a;LCD屏具体的代码实现 第一&#xff1a;LCD基本简介 LCD液晶屏是常用的外设&…

Linux常用命令,能解决工作中99%的Linux操作问题

目录 一、ls 二、pwd 三、cd 四、touch 五、mkdir 六、rmdir&rm 七、man 八、cp 九、mv 九、cat 十、move 十一、less 十二、head 十三、tail 十四、时间 十五、cal 十六、find 十七、grep 十八、zip/unzip 十九、tar 二十、计算器 二十一、uname 二…

SpringBoot 整合Netty自定义消息协议

本文主要介绍springboot项目&#xff0c;配置netty进行消息通信&#xff0c;自定义的netty消息协议&#xff0c;本文消息主要以表格中进行 消息头消息体长度加密标识&#xff08;可选&#xff09;加密类型&#xff08;可选&#xff09;消息体标识消息体校验码2字节2字节1字节&…

SAP ABAP——SAP简介(一)【SAP发展历程】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

研究必备的 5 个外文文献检索网站

1. Google scholar 网址&#xff1a; https://scholar.google.com.hk/?hlzh-CN 如今搜索论文的首选&#xff0c;可以在这里查看论文统计和引用参考文献&#xff0c;还能通过关注作者或者论文获得新论文更新提醒&#xff0c;以及利用自动化推荐来提供一个基本库 2. DBLP 网址…

MSVC C++ UTF-8编程

除windows平台外大部分其他平台&#xff0c;编译器默认使用的编码都是UTF-8编码&#xff0c;最新版本的Clang编译器只支持UTF-8编码。如果程序需要在多个平台编译运行&#xff0c;则代码必须使用UTF-8。使用UTF-8可以更容易的在多字节字符串(char, std::string)和宽字符(wchar_…

Java+SSM汽车租赁系统汽车出租(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;jQuery 、JSP 数据库&#xff1a;MySQL 系统功能 系统分为前台用户租车和后台系统管理&#xff1a; 1.前台用户租车 用户注册、用户登录、用户中心、浏览车辆、车辆…

Java项目:SSM在线二手图书交易商城网站平台

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 用户角色包含以下功能&#xff1a; 用户登录,查看商品详情,按分类查看,查看我的书架,上传二手书等功能。 由于本程序规模不大&#xff0c;可供课…

三、CAM可解释性分析——可解释性机器学习(DataWhale组队学习)

文章目录前言CAM算法的精妙之处相关工作CAM算法其它相关问题为什么不用池化操作&#xff1f;CAM的优点CAM算法的缺点扩展阅读和思考题前言 CAM算法奠定了可解释分析的基石 CAM算法的精妙之处 对深度学习实现可解释性分析、显著性分析可扩展性强&#xff0c;后续衍生出各种…

域名备案怎么查?怎么批量查询域名备案

ICP备案&#xff0c;是为了防止在网上从事非法的网站经营活动&#xff0c;打击不良互联网信息的传播&#xff0c;国家对互联网信息服务实行的备案制度。 备案的目的就是为了防止在网上从事非法的网站经营活动&#xff0c;打击不良互联网信息的传播&#xff0c;如果网站不备…

Android TP驱动模型框架分析

本文主要是对TP驱动框架的学习。 一、概述 1、触摸IC的工作原理 tp与主控间的通信接口一般是i2c&#xff0c;即scl、sda、gnd、vcc。在正常工作时需要加上rst、int脚。 整个过程是&#xff1a;通过点击屏幕&#xff0c;tp ic端会将int 脚电平拉低&#xff0c;等待主控的读取。…

【技术分享】Anaconda下载、安装、pip切换镜像源、conda切换镜像、conda创建指定Python版本虚拟环境教程

文章目录1.下载Anaconda1.1.下载最新版本Anaconda1.2.下载历史版本的Anaconda2.安装Anaconda3.conda切换镜像源4.pip切换镜像源5.conda创建指定版本Python环境1.下载Anaconda 1.1.下载最新版本Anaconda 步骤&#xff1a; 进入Anaconda官网&#xff0c;点击Download按钮下载最…

海量数据小内存!如何找到高频数

文章目录题目解答总结题目 如何在 20 亿个无符号整数中找到出现次数最多的那个数&#xff0c;在只提供 1 G 内存的条件下 解答 找到出现次数最多的数&#xff0c;通常的思维就是使用 HashMap 来统计这 20 亿个无符号整数中每个数出现的次数 已知只有 20 亿个数&#xff0c;…

b站黑马的Vue快速入门案例代码——【axios+Vue2】悦听player(音乐播放器)

目录 本文中修改的原代码中的BUG&#xff1a; 修改方法&#xff1a; 本文案例代码仍有的BUG&#xff1a;&#xff08;欢迎大家献计献策&#xff09; 目标效果&#xff1a; 悦音player案例——效果展示视频&#xff1a; 更换的新接口/参数&#xff1a; 1.歌曲搜索接口&…

实战讲解及分析Spring新建Bean的几种方式以及创建过程(图+文+源码)

1 缘起 作为一个应用开发人员而言&#xff0c;会使用某一个工具分为两个层次&#xff08;个人观点&#xff09;&#xff1a; 第一个层次&#xff0c;知道工具&#xff0c;会使用这个工具解决问题&#xff1b; 第二个层次&#xff0c;理解工具的实现原理。 关于Spring的学习&am…

Linux Centos7 磁盘的分区、挂载

1、前言 注&#xff1a;看不懂的同学可以直接跟着后面的步骤操作 一块新的磁盘放到电脑上&#xff0c;要经过分区-->给分区设置文件系统--->挂载才能用。 也就是说要想将磁盘挂载&#xff0c;必须完成给磁盘分区和给分区设置文件系统这两步。 分区的时候先分成主分区和扩…

【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】

一、深度置信网络DBN变压器故障诊断简介 1 DBN模型 DBN是深度学习中最关键的一个多层网络架构&#xff0c;如图2所示&#xff0c;由多层RBM堆叠而成&#xff0c;前一层RBM的输出为后一层RBM的输入&#xff0c;最顶层采用Softmax分类器作为标签层&#xff0c;输出分类识别的结果…

AD-DA转换(PCF8591)

AD转换目录一、AD转换&#xff08;PCF8591&#xff09;①初始化函数②读取ADC值的函数二、DA转换&#xff08;PCF8591&#xff09;三、STC15系列单片机用户手册.pdf—第10章一、AD转换&#xff08;PCF8591&#xff09; 思路&#xff1a;&#xff08;66&#xff0c;两个地址0x90…