2025推荐选题|微信小程序实现经济新闻资讯

 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业讲师以及同行交流合作

主要内容:Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等

业务范围:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:BS-XCX-072

一,环境介绍

语言环境:微信小程序

数据库:Mysql: mysql5.7

WEB框架:SpringBoot+Vue

开发工具:IDEA和微信开发者工具

二,项目简介

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用经济新闻资讯可以有效管理,使信息管理能够更加科学和规范。

经济新闻资讯使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理经济新闻资讯信息,查看经济新闻资讯信息,管理经济新闻资讯。

总之,经济新闻资讯集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等都开始借助互联网和软件工具管理信息,传播信息,共享信息等等,以此可以增强自身实力,提高在同行业当中的竞争能力,并从各种激烈的竞争中获取发展的机会。针对高校教师成果信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,经过分析和考虑,在目前的情况下,可以引进一款经济新闻资讯这样的现代化管理工具,这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短高校教师成果信息管理流程,使其系统化和规范化。同时还可以减少工作量,节约高校教师成果信息管理需要的人力和资金。所以经济新闻资讯是信息管理环节中不可缺少的工具,它对管理者来说非常重要。

三,系统展示

后台管理系统

四,核心代码展示


package com.controller;import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;/*** 短视频信息* 后端接口* @author* @email
*/
@RestController
@Controller
@RequestMapping("/duanshipin")
public class DuanshipinController {private static final Logger logger = LoggerFactory.getLogger(DuanshipinController.class);private static final String TABLE_NAME = "duanshipin";@Autowiredprivate DuanshipinService duanshipinService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//字典@Autowiredprivate DuanshipinCollectionService duanshipinCollectionService;//短视频收藏@Autowiredprivate DuanshipinLiuyanService duanshipinLiuyanService;//短视频留言@Autowiredprivate ForumService forumService;//论坛@Autowiredprivate GonggaoService gonggaoService;//公告信息@Autowiredprivate NewsService newsService;//新闻信息@Autowiredprivate NewsCollectionService newsCollectionService;//新闻收藏@Autowiredprivate NewsLiuyanService newsLiuyanService;//新闻留言@Autowiredprivate YonghuService yonghuService;//用户@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"));params.put("duanshipinDeleteStart",1);params.put("duanshipinDeleteEnd",1);CommonUtil.checkMap(params);PageUtils page = duanshipinService.queryPage(params);//字典表数据转换List<DuanshipinView> list =(List<DuanshipinView>)page.getList();for(DuanshipinView 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);DuanshipinEntity duanshipin = duanshipinService.selectById(id);if(duanshipin !=null){//entity转viewDuanshipinView view = new DuanshipinView();BeanUtils.copyProperties( duanshipin , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DuanshipinEntity duanshipin, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,duanshipin:{}",this.getClass().getName(),duanshipin.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");Wrapper<DuanshipinEntity> queryWrapper = new EntityWrapper<DuanshipinEntity>().eq("duanshipin_name", duanshipin.getDuanshipinName()).eq("duanshipin_video", duanshipin.getDuanshipinVideo()).eq("zan_number", duanshipin.getZanNumber()).eq("cai_number", duanshipin.getCaiNumber()).eq("duanshipin_types", duanshipin.getDuanshipinTypes()).eq("duanshipin_delete", duanshipin.getDuanshipinDelete());logger.info("sql语句:"+queryWrapper.getSqlSegment());DuanshipinEntity duanshipinEntity = duanshipinService.selectOne(queryWrapper);if(duanshipinEntity==null){duanshipin.setDuanshipinDelete(1);duanshipin.setInsertTime(new Date());duanshipin.setCreateTime(new Date());duanshipinService.insert(duanshipin);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody DuanshipinEntity duanshipin, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,duanshipin:{}",this.getClass().getName(),duanshipin.toString());DuanshipinEntity oldDuanshipinEntity = duanshipinService.selectById(duanshipin.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");if("".equals(duanshipin.getDuanshipinPhoto()) || "null".equals(duanshipin.getDuanshipinPhoto())){duanshipin.setDuanshipinPhoto(null);}if("".equals(duanshipin.getDuanshipinVideo()) || "null".equals(duanshipin.getDuanshipinVideo())){duanshipin.setDuanshipinVideo(null);}duanshipinService.updateById(duanshipin);//根据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<DuanshipinEntity> oldDuanshipinList =duanshipinService.selectBatchIds(Arrays.asList(ids));//要删除的数据ArrayList<DuanshipinEntity> list = new ArrayList<>();for(Integer id:ids){DuanshipinEntity duanshipinEntity = new DuanshipinEntity();duanshipinEntity.setId(id);duanshipinEntity.setDuanshipinDelete(2);list.add(duanshipinEntity);}if(list != null && list.size() >0){duanshipinService.updateBatchById(list);}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");try {List<DuanshipinEntity> duanshipinList = 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){//循环DuanshipinEntity duanshipinEntity = new DuanshipinEntity();
//                            duanshipinEntity.setDuanshipinName(data.get(0));                    //短视频名称 要改的
//                            duanshipinEntity.setDuanshipinPhoto("");//详情和图片
//                            duanshipinEntity.setDuanshipinVideo(data.get(0));                    //短视频视频 要改的
//                            duanshipinEntity.setZanNumber(Integer.valueOf(data.get(0)));   //赞 要改的
//                            duanshipinEntity.setCaiNumber(Integer.valueOf(data.get(0)));   //踩 要改的
//                            duanshipinEntity.setDuanshipinTypes(Integer.valueOf(data.get(0)));   //短视频类型 要改的
//                            duanshipinEntity.setDuanshipinContent("");//详情和图片
//                            duanshipinEntity.setDuanshipinDelete(1);//逻辑删除字段
//                            duanshipinEntity.setInsertTime(date);//时间
//                            duanshipinEntity.setCreateTime(date);//时间duanshipinList.add(duanshipinEntity);//把要查询是否重复的字段放入map中}//查询是否重复duanshipinService.insertBatch(duanshipinList);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<DuanshipinView> returnDuanshipinViewList = new ArrayList<>();//查看收藏Map<String, Object> params1 = new HashMap<>(params);params1.put("sort","id");params1.put("yonghuId",request.getSession().getAttribute("userId"));PageUtils pageUtils = duanshipinCollectionService.queryPage(params1);List<DuanshipinCollectionView> collectionViewsList =(List<DuanshipinCollectionView>)pageUtils.getList();Map<Integer,Integer> typeMap=new HashMap<>();//购买的类型listfor(DuanshipinCollectionView collectionView:collectionViewsList){Integer duanshipinTypes = collectionView.getDuanshipinTypes();if(typeMap.containsKey(duanshipinTypes)){typeMap.put(duanshipinTypes,typeMap.get(duanshipinTypes)+1);}else{typeMap.put(duanshipinTypes,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("duanshipinTypes",type);PageUtils pageUtils1 = duanshipinService.queryPage(params2);List<DuanshipinView> duanshipinViewList =(List<DuanshipinView>)pageUtils1.getList();returnDuanshipinViewList.addAll(duanshipinViewList);if(returnDuanshipinViewList.size()>= limit) break;//返回的推荐数量大于要的数量 跳出循环}//正常查询出来商品,用于补全推荐缺少的数据PageUtils page = duanshipinService.queryPage(params);if(returnDuanshipinViewList.size()<limit){//返回数量还是小于要求数量int toAddNum = limit - returnDuanshipinViewList.size();//要添加的数量List<DuanshipinView> duanshipinViewList =(List<DuanshipinView>)page.getList();for(DuanshipinView duanshipinView:duanshipinViewList){Boolean addFlag = true;for(DuanshipinView returnDuanshipinView:returnDuanshipinViewList){if(returnDuanshipinView.getId().intValue() ==duanshipinView.getId().intValue()) addFlag=false;//返回的数据中已存在此商品}if(addFlag){toAddNum=toAddNum-1;returnDuanshipinViewList.add(duanshipinView);if(toAddNum==0) break;//够数量了}}}else {returnDuanshipinViewList = returnDuanshipinViewList.subList(0, limit);}for(DuanshipinView c:returnDuanshipinViewList)dictionaryService.dictionaryConvert(c, request);page.setList(returnDuanshipinViewList);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 = duanshipinService.queryPage(params);//字典表数据转换List<DuanshipinView> list =(List<DuanshipinView>)page.getList();for(DuanshipinView 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);DuanshipinEntity duanshipin = duanshipinService.selectById(id);if(duanshipin !=null){//entity转viewDuanshipinView view = new DuanshipinView();BeanUtils.copyProperties( duanshipin , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DuanshipinEntity duanshipin, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,duanshipin:{}",this.getClass().getName(),duanshipin.toString());Wrapper<DuanshipinEntity> queryWrapper = new EntityWrapper<DuanshipinEntity>().eq("duanshipin_name", duanshipin.getDuanshipinName()).eq("duanshipin_video", duanshipin.getDuanshipinVideo()).eq("zan_number", duanshipin.getZanNumber()).eq("cai_number", duanshipin.getCaiNumber()).eq("duanshipin_types", duanshipin.getDuanshipinTypes()).eq("duanshipin_delete", duanshipin.getDuanshipinDelete())
//            .notIn("duanshipin_types", new Integer[]{102});logger.info("sql语句:"+queryWrapper.getSqlSegment());DuanshipinEntity duanshipinEntity = duanshipinService.selectOne(queryWrapper);if(duanshipinEntity==null){duanshipin.setZanNumber(1);duanshipin.setCaiNumber(1);duanshipin.setDuanshipinDelete(1);duanshipin.setInsertTime(new Date());duanshipin.setCreateTime(new Date());duanshipinService.insert(duanshipin);return R.ok();}else {return R.error(511,"表中有相同数据");}}}

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

 

 

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

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

相关文章

2.stm32 GPIO输出

GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 可配置为8种输入输出模式 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 …

tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1

参考 https://tensorflow.google.cn/?hlzh-cn https://tensorflow.google.cn/tutorials/keras/classification?hlzh-cn 项目资源 https://download.csdn.net/download/AnalogElectronic/89872174 文章目录 一、案例学习1、导入测试和训练数据集&#xff0c;定义模型&#xff…

【R语言】随机森林+相关性热图组合图

数据概况文末有获取方式 随机森林部分 #调用R包 library(randomForest) library(rfPermute) library(ggplot2) library(psych) library(reshape2) library(patchwork) library(reshape2) library(RColorBrewer) ​ ​ #读取数据 df<-read.csv("F:\\EXCEL-元数据\\2020…

深度学习之残差网络ResNet

文章目录 1. 残差网络定义2. 数学基础函数类3. 残差块4.ResNet模型5.训练模型6.小结 1. 残差网络定义 随着我们设计的网络越来越深&#xff0c;深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力。在这种网络中&#xff0c;添加层会使得网…

2010年国赛高教杯数学建模A题储油罐的变位识别与罐容表标定解题全过程文档及程序

2010年国赛高教杯数学建模 A题 储油罐的变位识别与罐容表标定 通常加油站都有若干个储存燃油的地下储油罐&#xff0c;并且一般都有与之配套的“油位计量管理系统”&#xff0c;采用流量计和油位计来测量进/出油量与罐内油位高度等数据&#xff0c;通过预先标定的罐容表&#…

JDBC的学习

一、JDBC DriverManager 二、JDBC connection 三、 JDBC Statement 1.DML 2.DDL 四、JDBC ResultSet 五、JDBC PreparedStatement

30.第二阶段x86游戏实战2-遍历周围-C++遍历二叉树(玩家角色基址)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…

Prometheus运维监控平台之监控指标注册到consul脚本开发、自定义监控项采集配置调试(三)

系列文章目录 运维监控平台搭建 运维监控平台监控标签 golang_Consul代码实现Prometheus监控目标的注册以及动态发现与配置V1版本 文章目录 系列文章目录目的一、监控指标注册到consul的golang脚本开发1、修改settings.yaml文件2、修改config/ocnsul,go文件3、修改core/consul…

让你的MacOS剪切板变得更加强大,如何解决复制内容覆盖的问题

MacOS的日常使用过程中&#xff0c;肯定少不了复制粘贴&#xff0c;不论是文本内容还是文件&#xff0c;复制粘贴是避不开的操作&#xff0c;如果需要复制粘贴的内容不多&#xff0c;那么普通的复制粘贴就可以完成了&#xff0c;但是当有同样的内容需要输入不同的地方的时候&am…

C++的魔法世界:类和对象的终章

文章目录 一、再探构造函数二、类型转换2.1隐式类型转换2.2内置类型的类型转化2.3explicit关键字2.4多参数构造 三、static成员四、友元五、内部类内部类的特性 六、匿名对象 一、再探构造函数 类和对象(中)里介绍的构造函数&#xff0c;使用的是赋值实现成员变量的初始化。而…

出现接地故障电流现象,安科瑞ASJ剩余电流继电器可以避免吗?

什么是ASJ剩余电流继电器 剩余电流继电器是检测剩余电流&#xff0c;并将剩余电流值与基准值相比较的电器。当剩余电流值超过基准值时&#xff0c;它会发出一个机械开闭信号&#xff0c;使机械开关电器脱扣或声光报警装置发出报警。这种继电器通常基于漏电保护原理工作&#x…

【QAMISRA】解决导入commands.json时报错问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决导入commands.json时报错“Could not obtain system-wide includes and defines”的问题。 2、 问题场景 客户导入commands.json时报错“Could not obtain system-wide includes and defines”。 3、软硬件环境…

【保姆级教程】DolphinScheduler本地部署与远程访问详细步骤解析

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问&#xff0c;结合内…

海思hi3536c配置内核支持USB摄像头

linux内核版本&#xff1a;linux-3.18.20 配置步骤 进入Device Drivers 选择Multimedia support&#xff0c;并进入 选择Media USB Adapters&#xff0c;并进入 如下图&#xff0c;选择这几项&#xff1a; 保存退出&#xff0c;重新编译内核下载 内核更新后&#xff0c…

家里有宠物想去异味,希喂、米家、范罗士宠物空气净化器哪款去异味好?

宠物的便臭和体臭&#xff0c;其臭味浓度和持续性&#xff0c;相比于正常家居的其他臭味&#xff0c;祛除难度更大&#xff0c;建议就是选使用真正能高效除臭、分解异味分子的化学分解法除臭的宠物空气净化器。比如&#xff1a;光触媒分解除臭的。 不踩坑前置推荐 我从2020年…

docker-compose 部属netcore

一、准备镜像 编写&#xff1a;dockercompose.yml version: "3.4"services: saas.demo.api: image: harbor.net.com/demos/saas.demo.api:latestcontainer_name: saas.demo.apienvironment:- ASPNETCORE_ENVIRONMENTProductionports: - "5001:80" 部属&am…

CTFHUB技能树之HTTP协议——响应包源代码

开启靶场&#xff0c;打开链接&#xff1a; 是个贪吃蛇小游戏&#xff0c;看不出来有什么特别的地方 用burp抓包看看情况&#xff1a; 嗯&#xff1f;点击“开始”没有抓取到报文&#xff0c;先看看网页源代码是什么情况 居然直接给出flag了&#xff0c;不知道这题的意义何在 …

UE4 材质学习笔记06(布料着色器/体积冰着色器)

一.布料着色器 要编写一个着色器首先是看一些参考图片&#xff0c;我们需要找出一些布料特有的特征&#xff0c;下面是一个棉织物&#xff0c;可以看到布料边缘的纤维可以捕捉光线使得边缘看起来更亮 下面是缎子和丝绸的图片&#xff0c;与棉织物有几乎相反的效果&#xff0c;…

Docker 容器 数据卷 使用

目录 常用 命令 什么是数据卷以及特点 如何挂载数据卷 数据卷容器 数据覆盖问题 修改已经建立的数据卷关系 博主wx&#xff1a;yuanlai45_csdn 博主qq&#xff1a;2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信)&#xff0c;或者想要 cpp 方向修改简历&…

Linux——用户/用户组

创建用户组groupadd groupadd 用户组 删除用户组groupdel groupdel 用户组 创建用户useradd useradd 用户名 - g 用户组 useradd 用户名 -d HOME路径 删除用户userdel userdel 用户 userdel -r 用户 &#xff08;删除用户的 HOME 目录&#xff0c;不使用 -r &#xff0…