基于SpringBoot+Vue大学生兼职管理系统的设计与实现

目录

一、前言介绍 

二、功能需求

三、功能结构设计

四、管理员功能实现

招聘单位管理

用户管理

论坛管理

公告信息管理

五、招聘单位功能实现

职位招聘管理

职位留言管理

简历投递管理

六、用户功能实现

在线论坛

职位招聘信息

简历投递

简历

七、部分核心代码

职位招聘代码

一、前言介绍 

互联网社会的到来,让各行各业通过互联网实现了浴火重生的可能,每个行业都发现了完全可以使用互联网技术用来提高信息在内部的传递效率,提高管理水准。通过对大学生兼职管理系统的设计和开发,不仅能巩固已经学到的知识,还能学习更多的专业知识,提升专业素养,熟悉设计流程,掌握编程知识。不管是从程序的设计分析以及编码,都有了很多的感悟。

大学生兼职管理系统采用当前最流行的IDEA工具进行开发,使用Java语言,框架使用Spring Boot框架。能实现公告管理,职位招聘管理,论坛管理,招聘单位管理,简历投递管理等功能。

大学生兼职管理系统不仅在操作上面符合常规操作,在信息处理环节更加的符合设计需求,符合生产需求,提高了 

二、功能需求

大学生兼职管理系统将使用人员划分为三类,分别是管理员,招聘单位,用户。这些使用者中,管理员的操作权限最大,拥有所有功能的操作权限,其他使用者都是根据工作需要合理的安排部分功能。

(1)管理员功能分析

图3.1展示了管理员用例图。针对管理员角色,系统允许其操作所有的功能,其主要包括增删改查用户信息,招聘单位信息,公告信息等,参与论坛的帖子内容和帖子回复信息的查看和管理,对职位招聘信息,简历投递信息进行管理等。

(2)招聘单位功能分析

图3.2展示了招聘单位用例图。针对招聘单位角色,系统允许其登录系统之后,可以参与论坛交流,以及可以发布职位招聘信息,回复职位招聘的留言,查看职位招聘的收藏,审核用户的简历投递信息等。

(3)用户功能分析

图3.3展示了用户用例图。针对用户角色,系统允许其登录系统之后,可以参与论坛交流,以及可以对职位招聘投递简历或者发布职位招聘的留言,查看招聘单位信息,管理个人简历信息等。

三、功能结构设计

前面对大学生兼职管理系统的功能需求的分析只是大致的划分功能模块,接下来的工作就是对这些大致的功能进行细分。让大学生兼职管理系统的内容变得更具体,更丰富。

(1)管理员功能结构设计

图4.1展示的是管理员功能结构。系统将管理员的个人中心模块划分为个人信息管理与修改密码子模块,将基础数据管理功能划分为招聘单位类型管理,求职意向管理,招聘类型管理,公告类型管理,招聘岗位管理子模块。

(2)招聘单位功能结构设计

图4.2展示的是招聘单位功能结构。系统将招聘单位的职位招聘管理模块划分为职位招聘管理,职位留言管理,职位收藏管理子模块。

(3)用户功能结构设计

图4.3展示的是用户功能结构。系统将用户的个人中心模块划分为更改个人信息,简历,简历投递,职位收藏子模块。

四、管理员功能实现

招聘单位管理

 图5.1展示的是招聘单位管理界面。

此界面展示了招聘单位名称,联系方式,招聘单位封面等信息。每条招聘单位信息的右侧区域都展示了可供管理员选择的操作,包括修改招聘单位信息,为招聘单位的账户进行密码重置,删除招聘单位信息等。 

用户管理

 图5.2展示的是用户管理界面。

此界面展示了注册的用户信息以及管理员自己新增的用户信息等,其中包括用户姓名,用户手机号,账户,性别等信息。每条用户信息的右侧区域都展示了可供管理员选择的操作,包括修改,删除,用户账户的密码重置。

论坛管理

 图5.3展示的是论坛管理界面。

此界面展示了前台用户在论坛模块的发帖与评论帖子的信息。每条帖子信息都有身份,姓名,帖子标题,发帖时间等信息。每条帖子信息的右侧区域都展示了可供管理员选择的操作,包括查看该帖子的回复信息,删除帖子信息,对该帖子进行修改等。

公告信息管理

 图5.4展示的是公告信息管理界面。

此界面展示了公告信息的标题,公告信息的图片以及发布公告的时间等信息。每条公告信息的右侧区域都展示了可供管理员选择的操作,包括删除,修改。

五、招聘单位功能实现

职位招聘管理

 图5.5展示的是职位招聘管理界面。

此界面主要用于展示招聘单位自行发布的职位招聘信息,包括薪资待遇,招聘岗位,招聘电话,招聘人数等信息。每条职位招聘信息的右侧区域都展示了可供招聘单位选择的操作,包括下架已经发布的职位招聘信息,对发布的职位招聘信息进行修改,删除职位招聘信息等。

职位留言管理

 图5.6展示的是职位留言管理界面。

此界面主要用于展示用户在查看招聘单位发布的职位招聘信息之后,提交的留言内容,作为招聘单位,其需要对每条用户的职位招聘的留言信息进行认真查看,然后点击职位留言信息右侧的回复按钮发布回复信息。

简历投递管理

 图5.7展示的是简历投递管理界面。

此界面展示了用户对招聘单位发布的职位招聘信息进行查看之后,投递的简历信息,该信息需要招聘单位进行审核,招聘单位审核用户的简历投递信息时,不管是同意还是拒绝用户的简历投递请求,招聘单位可以回复相应的拒绝或者同意的理由。

六、用户功能实现

在线论坛

 图5.8展示的是在线论坛界面。

此界面展示了所有用户的发帖信息,作为用户,其点击任意一条帖子标题就能查看其详细的帖子内容,同时,每条帖子内容查看完毕之后,在帖子内容的正下方都提供了评论功能让用户发布关于该帖子内容的评论信息。

职位招聘信息

 图5.9展示的是职位招聘信息界面。

此界面展示了职位招聘信息的详细内容,包括招聘人数,招聘岗位,点赞数,踩数等信息。用户在查看了招聘单位发布的职位招聘信息之后,如果觉得与自己的求职意向相匹配,可以点击“投递简历”按钮提交个人简历文件,如果用户对该职位招聘信息存在许多不理解的方面,可以在界面的下方编辑留言内容然后提交,待该职位招聘信息的招聘单位发布方,在查看完该留言之后,会回答用户的疑问。

简历投递

 图5.10展示的是简历投递界面。

此界面展示了所有的用户对职位招聘投递的简历信息,用户在该界面查看招聘单位的审核以及答复信息。

简历

 图5.11展示的是简历界面。

此界面展示了所有的用户自行新增的简历信息,作为用户,其新增简历信息时,也能上传简历文件。

七、部分核心代码

职位招聘代码
/*** 职位招聘* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/zhaopin")
public class ZhaopinController {private static final Logger logger = LoggerFactory.getLogger(ZhaopinController.class);private static final String TABLE_NAME = "zhaopin";@Autowiredprivate ZhaopinService zhaopinService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//字典表@Autowiredprivate ForumService forumService;//论坛@Autowiredprivate GongsiService gongsiService;//招聘单位@Autowiredprivate JianliService jianliService;//简历@Autowiredprivate NewsService newsService;//公告信息@Autowiredprivate ToudiService toudiService;//简历投递@Autowiredprivate YonghuService yonghuService;//用户@Autowiredprivate ZhaopinCollectionService zhaopinCollectionService;//职位收藏@Autowiredprivate ZhaopinLiuyanService zhaopinLiuyanService;//职位留言@Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));else if("招聘单位".equals(role))params.put("gongsiId",request.getSession().getAttribute("userId"));CommonUtil.checkMap(params);PageUtils page = zhaopinService.queryPage(params);//字典表数据转换List<ZhaopinView> list =(List<ZhaopinView>)page.getList();for(ZhaopinView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);ZhaopinEntity zhaopin = zhaopinService.selectById(id);if(zhaopin !=null){//entity转viewZhaopinView view = new ZhaopinView();BeanUtils.copyProperties( zhaopin , view );//把实体数据重构到view中//级联表 招聘单位//级联表GongsiEntity gongsi = gongsiService.selectById(zhaopin.getGongsiId());if(gongsi != null){BeanUtils.copyProperties( gongsi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "gongsiId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setGongsiId(gongsi.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ZhaopinEntity zhaopin, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,zhaopin:{}",this.getClass().getName(),zhaopin.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");else if("招聘单位".equals(role))zhaopin.setGongsiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));Wrapper<ZhaopinEntity> queryWrapper = new EntityWrapper<ZhaopinEntity>().eq("gongsi_id", zhaopin.getGongsiId()).eq("zhaopin_name", zhaopin.getZhaopinName()).eq("zhaopin_daiyu", zhaopin.getZhaopinDaiyu()).eq("zhaopin_address", zhaopin.getZhaopinAddress()).eq("lianxiren_name", zhaopin.getLianxirenName()).eq("zhaopin_phone", zhaopin.getZhaopinPhone()).eq("zan_number", zhaopin.getZanNumber()).eq("cai_number", zhaopin.getCaiNumber()).eq("zhaopin_types", zhaopin.getZhaopinTypes()).eq("leixing_types", zhaopin.getLeixingTypes()).eq("zhaopin_renshu_number", zhaopin.getZhaopinRenshuNumber()).eq("shangxia_types", zhaopin.getShangxiaTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());ZhaopinEntity zhaopinEntity = zhaopinService.selectOne(queryWrapper);if(zhaopinEntity==null){zhaopin.setShangxiaTypes(1);zhaopin.setCreateTime(new Date());zhaopinService.insert(zhaopin);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody ZhaopinEntity zhaopin, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,zhaopin:{}",this.getClass().getName(),zhaopin.toString());ZhaopinEntity oldZhaopinEntity = zhaopinService.selectById(zhaopin.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("招聘单位".equals(role))
//            zhaopin.setGongsiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));if("".equals(zhaopin.getZhaopinPhoto()) || "null".equals(zhaopin.getZhaopinPhoto())){zhaopin.setZhaopinPhoto(null);}zhaopinService.updateById(zhaopin);//根据id更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<ZhaopinEntity> oldZhaopinList =zhaopinService.selectBatchIds(Arrays.asList(ids));//要删除的数据zhaopinService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))try {List<ZhaopinEntity> zhaopinList = new ArrayList<>();//上传的东西Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段Date date = new Date();int lastIndexOf = fileName.lastIndexOf(".");if(lastIndexOf == -1){return R.error(511,"该文件没有后缀");}else{String suffix = fileName.substring(lastIndexOf);if(!".xls".equals(suffix)){return R.error(511,"只支持后缀为xls的excel文件");}else{URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径File file = new File(resource.getFile());if(!file.exists()){return R.error(511,"找不到上传文件,请联系管理员");}else{List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行,因为第一行是提示for(List<String> data:dataList){//循环ZhaopinEntity zhaopinEntity = new ZhaopinEntity();
//                            zhaopinEntity.setGongsiId(Integer.valueOf(data.get(0)));   //招聘单位 要改的
//                            zhaopinEntity.setZhaopinName(data.get(0));                    //招聘信息名称 要改的
//                            zhaopinEntity.setZhaopinPhoto("");//详情和图片
//                            zhaopinEntity.setZhaopinDaiyu(data.get(0));                    //薪资待遇 要改的
//                            zhaopinEntity.setZhaopinAddress(data.get(0));                    //上班地点 要改的
//                            zhaopinEntity.setLianxirenName(data.get(0));                    //联系人 要改的
//                            zhaopinEntity.setZhaopinPhone(data.get(0));                    //招聘电话 要改的
//                            zhaopinEntity.setZanNumber(Integer.valueOf(data.get(0)));   //赞 要改的
//                            zhaopinEntity.setCaiNumber(Integer.valueOf(data.get(0)));   //踩 要改的
//                            zhaopinEntity.setZhaopinTypes(Integer.valueOf(data.get(0)));   //招聘岗位 要改的
//                            zhaopinEntity.setLeixingTypes(Integer.valueOf(data.get(0)));   //招聘类型 要改的
//                            zhaopinEntity.setZhaopinRenshuNumber(Integer.valueOf(data.get(0)));   //招聘人数 要改的
//                            zhaopinEntity.setShangxiaTypes(Integer.valueOf(data.get(0)));   //是否上架 要改的
//                            zhaopinEntity.setZhaopinContent("");//详情和图片
//                            zhaopinEntity.setCreateTime(date);//时间zhaopinList.add(zhaopinEntity);//把要查询是否重复的字段放入map中//招聘电话if(seachFields.containsKey("zhaopinPhone")){List<String> zhaopinPhone = seachFields.get("zhaopinPhone");zhaopinPhone.add(data.get(0));//要改的}else{List<String> zhaopinPhone = new ArrayList<>();zhaopinPhone.add(data.get(0));//要改的seachFields.put("zhaopinPhone",zhaopinPhone);}}//查询是否重复//招聘电话List<ZhaopinEntity> zhaopinEntities_zhaopinPhone = zhaopinService.selectList(new EntityWrapper<ZhaopinEntity>().in("zhaopin_phone", seachFields.get("zhaopinPhone")));if(zhaopinEntities_zhaopinPhone.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(ZhaopinEntity s:zhaopinEntities_zhaopinPhone){repeatFields.add(s.getZhaopinPhone());}return R.error(511,"数据库的该表中的 [招聘电话] 字段已经存在 存在数据为:"+repeatFields.toString());}zhaopinService.insertBatch(zhaopinList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 个性推荐*/@IgnoreAuth@RequestMapping("/gexingtuijian")public R gexingtuijian(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("gexingtuijian方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);List<ZhaopinView> returnZhaopinViewList = new ArrayList<>();//查看收藏Map<String, Object> params1 = new HashMap<>(params);params1.put("sort","id");params1.put("yonghuId",request.getSession().getAttribute("userId"));PageUtils pageUtils = zhaopinCollectionService.queryPage(params1);List<ZhaopinCollectionView> collectionViewsList =(List<ZhaopinCollectionView>)pageUtils.getList();Map<Integer,Integer> typeMap=new HashMap<>();//购买的类型listfor(ZhaopinCollectionView collectionView:collectionViewsList){Integer zhaopinTypes = collectionView.getZhaopinTypes();if(typeMap.containsKey(zhaopinTypes)){typeMap.put(zhaopinTypes,typeMap.get(zhaopinTypes)+1);}else{typeMap.put(zhaopinTypes,1);}}List<Integer> typeList = new ArrayList<>();//排序后的有序的类型 按最多到最少typeMap.entrySet().stream().sorted((o1, o2) -> o2.getValue() - o1.getValue()).forEach(e -> typeList.add(e.getKey()));//排序Integer limit = Integer.valueOf(String.valueOf(params.get("limit")));for(Integer type:typeList){Map<String, Object> params2 = new HashMap<>(params);params2.put("zhaopinTypes",type);PageUtils pageUtils1 = zhaopinService.queryPage(params2);List<ZhaopinView> zhaopinViewList =(List<ZhaopinView>)pageUtils1.getList();returnZhaopinViewList.addAll(zhaopinViewList);if(returnZhaopinViewList.size()>= limit) break;//返回的推荐数量大于要的数量 跳出循环}//正常查询出来商品,用于补全推荐缺少的数据PageUtils page = zhaopinService.queryPage(params);if(returnZhaopinViewList.size()<limit){//返回数量还是小于要求数量int toAddNum = limit - returnZhaopinViewList.size();//要添加的数量List<ZhaopinView> zhaopinViewList =(List<ZhaopinView>)page.getList();for(ZhaopinView zhaopinView:zhaopinViewList){Boolean addFlag = true;for(ZhaopinView returnZhaopinView:returnZhaopinViewList){if(returnZhaopinView.getId().intValue() ==zhaopinView.getId().intValue()) addFlag=false;//返回的数据中已存在此商品}if(addFlag){toAddNum=toAddNum-1;returnZhaopinViewList.add(zhaopinView);if(toAddNum==0) break;//够数量了}}}else {returnZhaopinViewList = returnZhaopinViewList.subList(0, limit);}for(ZhaopinView c:returnZhaopinViewList)dictionaryService.dictionaryConvert(c, request);page.setList(returnZhaopinViewList);return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page = zhaopinService.queryPage(params);//字典表数据转换List<ZhaopinView> list =(List<ZhaopinView>)page.getList();for(ZhaopinView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put("data", page);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);ZhaopinEntity zhaopin = zhaopinService.selectById(id);if(zhaopin !=null){//entity转viewZhaopinView view = new ZhaopinView();BeanUtils.copyProperties( zhaopin , view );//把实体数据重构到view中//级联表GongsiEntity gongsi = gongsiService.selectById(zhaopin.getGongsiId());if(gongsi != null){BeanUtils.copyProperties( gongsi , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setGongsiId(gongsi.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ZhaopinEntity zhaopin, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,zhaopin:{}",this.getClass().getName(),zhaopin.toString());Wrapper<ZhaopinEntity> queryWrapper = new EntityWrapper<ZhaopinEntity>().eq("gongsi_id", zhaopin.getGongsiId()).eq("zhaopin_name", zhaopin.getZhaopinName()).eq("zhaopin_daiyu", zhaopin.getZhaopinDaiyu()).eq("zhaopin_address", zhaopin.getZhaopinAddress()).eq("lianxiren_name", zhaopin.getLianxirenName()).eq("zhaopin_phone", zhaopin.getZhaopinPhone()).eq("zan_number", zhaopin.getZanNumber()).eq("cai_number", zhaopin.getCaiNumber()).eq("zhaopin_types", zhaopin.getZhaopinTypes()).eq("leixing_types", zhaopin.getLeixingTypes()).eq("zhaopin_renshu_number", zhaopin.getZhaopinRenshuNumber()).eq("shangxia_types", zhaopin.getShangxiaTypes())
//            .notIn("zhaopin_types", new Integer[]{102});logger.info("sql语句:"+queryWrapper.getSqlSegment());ZhaopinEntity zhaopinEntity = zhaopinService.selectOne(queryWrapper);if(zhaopinEntity==null){zhaopin.setZanNumber(1);zhaopin.setCaiNumber(1);zhaopin.setCreateTime(new Date());zhaopinService.insert(zhaopin);return R.ok();}else {return R.error(511,"表中有相同数据");}}}

 

 此源码非开源,若需要此源码可扫码添加微信或者qq:2214904953进行咨询!

2600多套项目欢迎咨询

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

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

相关文章

【C语言进阶】程序编译中的预处理操作

&#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL.. &#x1f4da;以后会将数据结构收录为一个系列&#xff0c;敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

数据结构---线性表(顺序表)附代码

目录&#xff1a; 数据结构相关概念 1、什么是数据结构&#xff1f; 2、为什么需要数据结构&#xff1f; 顺序表 1、顺序表的概念及结构 1.1 线性表 1.2 顺序表 2、顺序表分类 3、动态顺序表的实现 什么是数据结构&#xff1f;&#xff1f; 数据结构是由 “数据”和 …

Unity 合并子物体获得简化Mesh

合并子物体获得简化Mesh &#x1f959;环境&#x1f96a;Demo &#x1f959;环境 PackageManager安装Editor Coroutines 导入插件&#x1f448; &#x1f96a;Demo 生成参数微调&#xff1a;Assets/EasyColliderEditor/Scripts/VHACDSettings/VHACDSettings.asset

MATLAB数值类型

MATLAB 数值 MATLAB支持各种数字类&#xff0c;包括有符号和无符号整数以及单精度和双精度浮点数。默认情况下&#xff0c;MATLAB将所有数值存储为双精度浮点数。 您可以选择将任何数字或数字数组存储为整数或单精度数字。 所有数值类型都支持基本数组运算和数学运算。 转换…

pyqt拖入图片并显示

pyqt拖入图片并显示 介绍效果代码 介绍 像拖入文本一样&#xff0c;把图片拖入到窗体中显示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout from PyQt5.QtGui import QPixmap, QDragEnterEvent, QDropEvent from PyQt5.Q…

Ollama配置webui连接大预言模型

Ollama配置Web UI连接大预言模型 默认ollama安装后&#xff0c;chat对话只有命令行界面&#xff0c;交互体验较差。借助open-webui可以通过web界面连接ollama&#xff0c;从而实现类似chatgpt式的web交互体验。 使用家用PC实践记录如下&#xff1a; 1. 环境配置 本次使用的操作…

笔记-mathtype公式在PDF或打印出来显示不全

原文中的公式&#xff1a; 纸质版打印出来的公式有缺失 问题描述&#xff1a;mathtype公式编辑器所编辑的公式转成PDF或者打印出来有缺失 以下是解决方法的具体描述。 目录 一、准备工作二、操作步骤 一、准备工作 1、工具&#xff1a;mathtype、微软word 二、操作步骤 …

数据可视化在不同行业中有哪些应用?

数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户&#xff0c;使用户更容易发现数据中蕴藏的规律&#xff0c;找出问题&#xff0c;进而做出决策&#xff1b;另一方面&#xff0c;数据可视化项目也是一张重要的名片&#xff0c;是企业数字化建设效果的呈现。本…

el-select下拉框修改背景色

效果图&#xff1a; 1.el-select标签添加teleported属性&#xff0c;并设置为false 2.设置css样式

偏微分方程算法之九点紧差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们已经在专栏中介绍了椭圆型偏微分方程的五点菱形差分格式&#xff0c;这里我们继续以该方法为背景&#xff0c;探讨如何提高五点法的精度&#xff0c;即从二阶精度提升到四阶精度。 研究目标现继续以…

qt5-入门-2D绘图-基础

参考&#xff1a; QPainter_w3cschool https://www.w3cschool.cn/learnroadqt/k7zd1j4l.html C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt 5.12 代码已经测试通过。其他例子日后更新。 目录 基础知识penb…

高德地图API入门使用vue

文章目录 最终效果一、在高德的开放平台申请key二、下载依赖&#xff1a;三、完整代码 最终效果 页面显示高德地图 一、在高德的开放平台申请key 在高德的开放平台申请key&#xff1a; https://console.amap.com/dev/key/app 申请的类型为web端&#xff08;js api&#xff…

LeetCode45:跳跃游戏Ⅱ

题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n …

如何防止源代码泄露?6种企业防泄密解决方案

在数字化转型浪潮中&#xff0c;源代码成为企业宝贵的核心资产&#xff0c;其安全性直接关系到企业的生存和发展。源代码泄露不仅会导致商业秘密外泄&#xff0c;还可能造成严重的经济损失和品牌信誉下降。为此&#xff0c;采用高效的防泄密措施&#xff0c;如华企盾DSC数据防泄…

php7.4在foreach中对使用数据使用无法??[]判读,无法使用引用传递

代码如下图&#xff1a;这样子在foreach中是无法修改class_history的。正确的应该是去掉??[]判断。 public function actionY(){$array [name>aaa,class_history>[[class_name>一班,class_num>1],[class_name>二班,class_num>2]]];foreach ($array[class_…

Linux环境下的编译和调试

本文目录 一、编译1. gcc/g编译器2. gcc/g安装3. 代码编译过程4. gcc编译 二、调试1. 下载gdb调试器2. gdb 调试器使用步骤 一、编译 1. gcc/g编译器 对于.c 格式的 C 文件&#xff0c;可以采用 gcc 或 g编译。 对于.cc、.cpp 格式的 C文件&#xff0c;应该采用 g进行编译。 …

密文域可逆信息隐藏技术综述(上)

加密图像可逆信息隐藏是一种加密原始图像后&#xff0c;在密文图像中可逆地隐藏附加数据&#xff0c;并且在数据提取后&#xff0c;原始图像可以被无损重建的技术。RDH-EI的分类如图1所示。 按对图像的加密方法&#xff0c;现有RDH-EI算法可分为对称加密域和非对称(公钥)加密域…

form1弹出子窗体form2,拖动子窗体判断是否离开父窗体区域,含源码(学习笔记)

一、效果&#xff08;进入和离开&#xff09; 子窗体到达父窗体边缘时变色。 二、代码分析 判断父窗体的目的&#xff0c;可以控制子窗体要随父窗体走。上面代码需要加以处理。 如&#xff1a;this.Location new Point(parentPoint.X distanceFromEdge, this.Location.Ydis…

抖音上线“星绘”APP,它有着什么样的特殊之处?

抖音上线“星绘”APP 前言 就在4月25日&#xff0c;抖音在App Store上线了一款名为“星绘”的App。该App以妙鸭相机为对标产品&#xff0c;拥有着强大的AI生图能力&#xff0c;而产品中的“AI分身”也十分有特色&#xff0c;那么这款“星绘”App究竟如何呢&#xff1f;我们接着…

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包

本文来自&#xff1a;2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 - 源码1688 应用介绍 简介&#xff1a; 2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 自行检查后门&#xff0c;最好是部署智能合约后用合约地址来授权 包含转账支付页面盗U授…