产品宣传网站的作用/夸克搜索引擎
✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、代码参考
- 五、论文参考
- 六、系统视频
- 结语
一、前言
随着零售行业的快速发展,零食批发商在供应链中扮演着越来越重要的角色。根据中国食品工业协会的数据,近年来国内零食市场规模持续扩大,年增长率保持在10%以上。然而,零食批发商在仓库管理方面面临着诸多挑战,如库存控制不准确、供应链响应速度慢、客户服务体验不佳等问题。这些问题的存在,不仅影响了零食批发商的运营效率,也制约了整个零售行业的健康发展。
现有的零食批发商仓库管理系统普遍存在一些不足之处。例如,一些系统在用户管理方面功能单一,无法满足多角色、多权限的管理需求;在供应商和客户信息管理上,信息更新不够及时,导致供应链协同效率低下;在商品分类管理上,分类不够细致,影响了库存的快速检索和调配;在零食出入库审核上,流程繁琐,缺乏自动化的审核机制,导致出入库效率低下;在零食调配管理上,缺乏有效的调配策略和工具,难以实现库存的优化配置。这些问题的存在,不仅增加了零食批发商的运营成本,也影响了客户满意度。
本课题旨在设计并实现一个便捷、智能的零食批发商仓库管理系统,通过引入先进的信息技术和管理理念,解决现有系统在用户管理、供应商和客户信息管理、商品分类管理、零食出入库审核、零食调配管理等方面存在的问题。系统将实现多角色、多权限的用户管理,提高供应链协同效率;采用自动化的审核机制,提高出入库效率;引入智能调配策略,优化库存配置。通过本课题的研究,希望能够为零食批发商提供一个更加便捷、智能的仓库管理解决方案,提升其市场竞争力。
在设计零食批发商仓库管理系统的功能模块时,管理员角色具备全局管理权限,负责用户账户的创建与维护、供应商信息的录入与更新、客户信息的整理与管理、零食信息的维护与更新、商品分类的设置与优化以及零食出入库的审核与监督,同时还需管理零食调配过程,确保库存的合理分配与流动。用户角色则能够查看供应商和客户信息,了解供应链和销售链状态,查询零食库存信息,提交零食出入库申请以调整库存量,以及发起零食调配申请以优化库存分布。整个系统通过这些功能模块的协同工作,旨在提升仓库管理的自动化水平,增强供应链的响应速度,提高客户满意度,从而为零食批发商带来更便捷的运营管理体验。
本课题的研究具有重要的理论意义和实际意义。从理论角度来看,它为仓库管理领域提供了新的研究思路,即通过信息技术的应用,实现仓库管理的自动化、智能化,这有助于推动供应链管理理论的发展和创新。从实际角度来看,该系统的应用将显著提高零食批发商的仓库管理效率,降低运营成本,提升客户服务体验,增强市场竞争力。同时,系统的推广应用也将为其他零售行业提供可借鉴的管理经验,促进整个行业的信息化、智能化发展。
二、开发环境
- 开发语言:Java/Python
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot/SSM/Django/Flask
- 前端:Vue
三、系统界面展示
- 零食批发商仓库管理系统界面展示:
用户-查看零食信息:
用户-提交零食入库信息:
用户-提交零食出库信息:
用户-提交零食调配信息:
管理员-零食出入库审核:
管理员-零食调配审核:
四、代码参考
- Java项目实战代码参考:
@SuppressWarnings("all")
@RequestMapping("/outstore")
@RestController
public class OutStoreController {//注入OutStoreService@Autowiredprivate OutStoreService outStoreService;//注入TokenUtils@Autowiredprivate TokenUtils tokenUtils;/*** 添加出库单的url接口/outstore/outstore-add** @RequestBody OutStore outStore将添加的出库单信息的json数据封装到参数OutStore对象;* @RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token* 将请求头Token的值即客户端归还的token赋值给参数变量token;*/@RequestMapping("/outstore-add")public Result addOutStore(@RequestBody OutStore outStore,@RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token){//获取当前登录的用户CurrentUser currentUser = tokenUtils.getCurrentUser(token);//获取当前登录的用户id,即添加出库单的用户idint createBy = currentUser.getUserId();outStore.setCreateBy(createBy);//执行业务Result result = outStoreService.saveOutStore(outStore);//响应return result;}//注入StoreService@Autowiredprivate StoreService storeService;/*** 查询所有仓库的url接口/outstore/store-list*/@RequestMapping("/store-list")public Result storeList(){//执行业务List<Store> storeList = storeService.queryallStore();//响应return Result.ok(storeList);}/*** 分页查询出库单的url接口/outstore/outstore-page-list** 参数Page对象用于接收请求参数页码pageNum、每页行数pageSize;* 参数OutStore对象用于接收请求参数仓库id storeId、商品名称productName、* 是否出库isOut、起止时间startTime和endTime;** 返回值Result对象向客户端响应组装了所有分页信息的Page对象;*/@RequestMapping("/outstore-page-list")public Result outStorePageList(Page page, OutStore outStore){//执行业务page = outStoreService.outStorePage(page, outStore);//响应return Result.ok(page);}/*** 确定出库的url接口/outstore/outstore-confirm** @RequestBody OutStore outStore将请求传递的json数据封装到参数OutStore对象;*/@RequestMapping("/outstore-confirm")public Result confirmOutStore(@RequestBody OutStore outStore){//执行业务Result result = outStoreService.confirmOutStore(outStore);//响应return result;}/*** 导出数据的url接口/store/exportTable** 参数Page对象用于接收请求参数页码pageNum、每页行数pageSize;* 参数Store对象用于接收请求参数仓库名称storeName、仓库地址storeAddress、* 联系人concat、联系电话phone;** 返回值Result对象向客户端响应组装了当前页数据的List;*/@RequestMapping("/exportTable")public Result exportTable(Page page, OutStore outStore){//分页查询仓库page = outStoreService.outStorePage(page, outStore);//拿到当前页数据List<?> resultList = page.getResultList();//响应return Result.ok(resultList);}
}
@RequestMapping("/product")
@RestController
public class ProductController {@Autowiredprivate StoreService storeService;@Autowiredprivate BrandService brandService;@Autowiredprivate SupplyService supplyService;@Autowiredprivate ProductTypeService productTypeService;@Autowiredprivate UnitService unitService;@Autowiredprivate PlaceService placeService;//注入ProductService@Autowiredprivate ProductService productService;@RequestMapping("/store-list")public Result queryStoreList() {List<Store> stores = storeService.queryallStore();return Result.ok(stores);}@RequestMapping("brand-list")public Result brandList() {List<Brand> brands = brandService.queryAllBrand();return Result.ok(brands);}@RequestMapping("/category-tree")public Result productTypeList() {List<ProductType> productTypes = productTypeService.allProductTypeTree();return Result.ok(productTypes);}@RequestMapping("/supply-list")public Result supplylist() {List<Supply> supplys = supplyService.queryAllSupply();return Result.ok(supplys);}@RequestMapping("/place-list")public Result placeList() {//执行业务List<Place> placeList = placeService.queryAllPlaces();//响应return Result.ok(placeList);}@RequestMapping("/unit-list")public Result unitlist() {//执行业务List<Unit> Units = unitService.queryAllUnits();//响应return Result.ok(Units);}/*** 分页查询商品的url接口/product/product-page-list* <p>* 参数Page对象用于接收请求参数页码pageNum、每页行数pageSize;* 参数Product对象用于接收请求参数仓库id storeId、商品名称productName、* 品牌名称brandName、分类名称typeName、供应商名称supplyName、产地名称* placeName、上下架状态upDownState、是否过期isOverDate;* <p>* 返回值Result对象向客户端响应组装了所有分页信息的Page对象;*/@RequestMapping("/product-page-list")public Result productPageList(Page page, Product product) {//执行业务page = productService.queryProductPage(page, product);//响应return Result.ok(page);}/*** 将配置文件的file.upload-path属性值注入给控制器的uploadPath属性,* 其为图片上传到项目的目录路径(类路径classes即resources下的static/img/upload);*/@Value("${file.upload-path}")private String uploadPath;/*** 上传图片的url接口/product/img-upload* <p>* 参数MultipartFile file对象封装了上传的图片;** @CrossOrigin表示该url接口允许跨域请求;*/@CrossOrigin@RequestMapping("/img-upload")public Result imgUpload(MultipartFile file) {try {//拿到图片上传到的目录(类路径classes下的static/img/upload)的File对象File uploadFile = ResourceUtils.getFile(String.valueOf(file));//拿到图片上传到的目录的磁盘路径File absoluteFile = uploadFile.getAbsoluteFile();//拿到图片的文件名String originalFilename = file.getOriginalFilename();//拿到图片保存到的磁盘路径String uploadPath = absoluteFile + "\\" + originalFilename;file.transferTo(new File(uploadPath));//成功响应return Result.ok("图片上传成功!");} catch (Exception e) {//失败响应return Result.err(Result.CODE_ERR_BUSINESS, "图片上传失败!");}}//注入TokenUtils@Autowiredprivate TokenUtils tokenUtils;/*** 添加商品的url接口/product/product-add** @RequestBody Product product将添加的商品信息的json串数据封装到参数Product对象;* @RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token* 将请求头Token的值即客户端归还的token赋值给参数变量token;*/@RequestMapping("/product-add")public Result addProduct(@RequestBody Product product,@RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token) {//获取当前登录的用户CurrentUser currentUser = tokenUtils.getCurrentUser(token);//获取当前登录的用户id,即添加商品的用户idint createBy = currentUser.getUserId();product.setCreateBy(createBy);//响应return productService.saveProduct(product);}/*** 修改商品上下架状态的url接口/product/state-change** @RequestBody Product product用于接收并封装请求json数据;*/@RequestMapping("/state-change")public Result changeProductState(@RequestBody Product product){//执行业务Result result = productService.updateProductState(product);//响应return result;}/*** 删除商品的url接口/product/product-delete/{productId}*/@RequestMapping("/product-delete/{productId}")public Result deleteProduct(@PathVariable Integer productId){//执行业务//响应return productService.deleteByPrimaryKey(productId);}/*** 修改商品的url接口/product/product-update** @RequestBody Product product将请求传递的json数据封装到参数Product对象;* @RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token* 将请求头Token的值即客户端归还的token赋值给参数变量token;*/@RequestMapping("/product-update")public Result updateProduct(@RequestBody Product product,@RequestHeader(WarehouseConstants.HEADER_TOKEN_NAME) String token){//获取当前登录的用户CurrentUser currentUser = tokenUtils.getCurrentUser(token);//获取当前登录的用户id,即修改商品的用户idint updateBy = currentUser.getUserId();product.setUpdateBy(updateBy);//执行业务Result result = productService.updateProduct(product);//响应return result;}/*** 导出数据的url接口/store/exportTable** 参数Page对象用于接收请求参数页码pageNum、每页行数pageSize;* 参数Store对象用于接收请求参数仓库名称storeName、仓库地址storeAddress、* 联系人concat、联系电话phone;** 返回值Result对象向客户端响应组装了当前页数据的List;*/@RequestMapping("/exportTable")public Result exportTable(Page page, Product product){//分页查询仓库page = productService.queryProductPage(page, product);//拿到当前页数据List<?> resultList = page.getResultList();//响应return Result.ok(resultList);}
}
- Python项目实战代码参考:
class BillsView(APIView):@PermissionCheck('bills.view_outbound')def get(self, request, format=None):# 后续添加权限验证(总经理,仓库经理)可查看所有,其他职工只能查看自己相关的单据page = int(request.GET.get('page', '1'))size = int(request.GET.get('size', '20'))staff_id = request.user.staff_idstaff = Staff.objects.get(pk=staff_id)if staff.role.role_id in ['4a1286cefec64c74a39b7fa18a0a6848', '4c2a53b3843e49ebadc4eb56b6f7e86b']:data = Bills.objects.all()else:data = Bills.objects.filter(staff_num=staff.num)paginator = Paginator(data, size)pager = paginator.page(page)# 模型实例化approve = BillsSerializer(pager.object_list, many=True)return Response({'data': approve.data,'total': paginator.count,'page': pager.number, # page当前页号'pageSize': size,'pages': paginator.num_pages # 总页数})@PermissionCheck('bills.add_outbound')def post(self, request, format=None):anum = request.data.get('num')ware_id = request.data.get('ware')count = request.data.get('count')goods_id = request.data.get('goods')indent_id = request.data.get('indent')all_st = Staff.objects.filter(role_id='4f3a5a6f63ff4606ac3d8bbb62d51997')index = random.randint(0, len(all_st) - 1)tran_st = all_st[index]apprs = ApprHistory.objects.filter(num=anum)if Inform.objects.all():ret = str(Inform.objects.count() + 1)inum = 'I' + ret.rjust(9, '0')else:inum = 'I' + '1'.rjust(9, '0')tran_id = uuid.uuid4().hexlogis_id = uuid.uuid4().hexappr_his = Noneif apprs.exists():appr_his = apprs.first()for appr in apprs:if appr.appr_idea != '同意':return Response({'msg': '请先通过审批后在获取单据'})if apprs.first().appr_kind == '出库':# 出库类型 生成出库单和配送单Outbound.objects.create(out_id=uuid.uuid4().hex,num=appr_his.num,goods_id=goods_id,count=count,ware_id=ware_id,type=appr_his.appr_kind,out_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=Staff.objects.get(pk=appr_his.staff_id).name,staff_num=Staff.objects.get(pk=appr_his.staff_id).num)Bills.objects.create(bills_id=uuid.uuid4().hex, num=appr_his.num, type='出库单',bills_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=Staff.objects.get(pk=appr_his.staff_id).name,staff_num=Staff.objects.get(pk=appr_his.staff_id).num)Bills.objects.create(bills_id=uuid.uuid4().hex, num=appr_his.num, type='配送单',bills_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=tran_st.name, staff_num=tran_st.num)Transport.objects.create(transport_id=tran_id,num=appr_his.num,goods_id=goods_id,count=count,company=Indent.objects.get(indent_id=indent_id).company,transport_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=tran_st.name,staff_num=tran_st.num,signer=Indent.objects.get(indent_id=indent_id).sign_name,address=Indent.objects.get(indent_id=indent_id).address)# 生成物流单Logistics.objects.create(log_id=logis_id,indent_id=indent_id,transport_id=tran_id,status='等待配送')Logdet.objects.create(logdet_id=uuid.uuid4().hex,log_id=logis_id,status='等待配送')Inform.objects.create(inform_id=uuid.uuid4().hex,num=inum,staff_name=tran_st.name,staff_num=tran_st.num,time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),event='新的配送单,请尽快配送',status='未读')else:# 入库类型 生成入库单Enter.objects.create(enter_id=uuid.uuid4().hex,num=appr_his.num,goods_id=goods_id,count=count,ware_id=ware_id,type=appr_his.appr_kind,enter_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=Staff.objects.get(pk=appr_his.staff_id).name,staff_num=Staff.objects.get(pk=appr_his.staff_id).num)Bills.objects.create(bills_id=uuid.uuid4().hex, num=appr_his.num, type='入库单',bills_time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),staff_name=Staff.objects.get(pk=appr_his.staff_id).name,staff_num=Staff.objects.get(pk=appr_his.staff_id).num)Inform.objects.create(inform_id=uuid.uuid4().hex,num=inum,staff_name=Staff.objects.get(pk=appr_his.staff_id).name,staff_num=Staff.objects.get(pk=appr_his.staff_id).num,time=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),event='有新的货品需要入库,请及时入库',status='未读')return Response({'msg': '单据生成成功'})class BillsDetailView(APIView):@PermissionCheck('bills.view_outbound')def get(self, request, pk, format=None):bill = Bills.objects.get(pk=pk)if bill.type == '出库单':data = OutboundSerializer(Outbound.objects.get(num=bill.num), many=False)elif bill.type == '配送单':data = TransportSerializer(Transport.objects.get(num=bill.num), many=False)elif bill.type == '入库单':data = EnterSerializer(Enter.objects.get(num=bill.num), many=False)else:return Response({'msg': '未找到该单据'})return Response({'data': data.data})class BillsimgView(APIView):def get(self,request,pk,format=None):bill = Bills.objects.get(pk=pk)if bill.type == '入库单':enter = Enter.objects.get(num=bill.num)price = int(enter.goods.retail * 0.8 * enter.count)dir_path = r'F:\python_code\djangoapps\jiuyun'img_path = r'%s\media\enter\%s.png' % (dir_path, enter.num)print('-->img_path', img_path)content = loader.render_to_string('enter.html', locals(), request)tmp_file_path = os.path.join(BASE_DIR, 'tmp.html')with open(tmp_file_path, 'w', encoding='utf-8') as f:f.write(content)from xmlrpc.client import ServerProxysp = ServerProxy('http://localhost:9800')sp.save_image(tmp_file_path, img_path)return redirect(f'/media/enter/{enter.num}.png')elif bill.type == '出库单':outbound = Outbound.objects.get(num=bill.num)price = int(outbound.goods.retail * 0.8 * outbound.count)dir_path = r'F:\python_code\djangoapps\jiuyun'img_path = r'%s\media\outbound\%s.png' % (dir_path, outbound.num)print('-->img_path', img_path)content = loader.render_to_string('outbound.html', locals(), request)tmp_file_path = os.path.join(BASE_DIR, 'tmp.html')with open(tmp_file_path, 'w', encoding='utf-8') as f:f.write(content)from xmlrpc.client import ServerProxysp = ServerProxy('http://localhost:9800')sp.save_image(tmp_file_path, img_path)return redirect(f'/media/outbound/{outbound.num}.png')else:transport = Transport.objects.get(num=bill.num)price = int(transport.goods.retail * 0.8 * transport.count)dir_path = r'F:\python_code\djangoapps\jiuyun'img_path = r'%s\media\transport\%s.png' % (dir_path, transport.num)print('-->img_path', img_path)content = loader.render_to_string('transport.html', locals(), request)tmp_file_path = os.path.join(BASE_DIR, 'tmp.html')with open(tmp_file_path, 'w', encoding='utf-8') as f:f.write(content)from xmlrpc.client import ServerProxysp = ServerProxy('http://localhost:9800')sp.save_image(tmp_file_path, img_path)return redirect(f'/media/transport/{transport.num}.png')
五、论文参考
- 计算机毕业设计选题推荐-零食批发商仓库管理系统论文参考:
六、系统视频
零食批发商仓库管理系统项目视频:
计算机毕业设计选题推荐-零食批发商仓库管理系统-项目实战
结语
计算机毕业设计选题推荐-零食批发商仓库管理系统-Java/Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
相关文章:

计算机毕业设计选题推荐-零食批发商仓库管理系统-Java/Python项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

基于springboot+vue+uniapp的校园快递平台小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...

这两个大龄程序员,打算搞垮一个世界软件巨头!
大家都知道,Adobe是多媒体和数字内容创作者的绝对王者,它的旗下有众多大家耳熟能详的软件:Photoshop、Illustrator、Premiere Pro、After Effects、InDegign、Acrobat、Animate等等。 这些软件使用门槛很高,价格昂贵,安…...

LabVIEW放大器自动测量系统
开发了一个基于LabVIEW平台的多路前置放大器自动测量系统的开发与实施。该系统集成了硬件控制与软件编程,能够实现放大器各项性能指标的快速自动测量,有效提高了测试的精确性和效率。系统设计采用了虚拟仪器技术,结合了先进的测量与控制策略&…...

全面整理人工智能(AI)学习路线图及资源推荐
在人工智能(AI)飞速发展的今天,掌握AI技术已经成为了许多高校研究者和职场人士的必备技能。从深度学习到强化学习,从大模型训练到实际应用,AI技术的广度和深度不断拓展。作为一名AI学习者,面对浩瀚的知识海…...

react antd upload custom request处理多个文件上传
react antd upload custom request处理多个文件上传的问题 背景:第一次请求需要请求后端返回aws 一个link,再往link push文件,再调用另一个接口告诉后端已经上传成功,拿到返回值。 再把返回值传给业务api... 多文件上传一直是循环…...

ALB快速实现IPv4服务的负载均衡
阿里云应用型负载均衡ALB支持HTTP、HTTPS和QUIC协议,专门面向网络应用层,提供强大的业务处理能力。 为了实现IPv4服务的负载均衡,需要快速创建一个ALB实例,并将来自客户端的访问请求转发至后端服务器。 操作流程 第一步&#x…...

【LLM】-12-部署Langchain-Chatchat-0.3.x版本
目录 1、0.3与0.2的功能对比 2、0.3.x支持多种部署方式 2.3、源码安装 2.3.1、项目源码下载 2.3.2、创建conda环境 2.3.3、安装poetry 2.3.4、安装依赖库 2.3.5、项目初始化 2.3.6、配置文件 2.3.7、初始化知识库 2.3.7、启动服务 2.3.8、配置说明 2.3.8.1、basic_…...

优化网络接收缓存减少数据丢包
视频领域,网络udp数据丢包会引起视频解码花屏。 1、修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话,则…...

数据透视——判别分析
文章目录 判别分析简介常用的判别分析方法距离判别贝叶斯判别线性判别分析(LDA)支持向量机(SVM)总结 补充 在数据科学的丰富领域中,判别分析扮演着至关重要的角色。它是一种统计方法,用于预测样本数据的类别…...

书生大模型学习笔记 - 连接云端开发机
申请InternStudio开发机: 这里进去报名参加实战营即可获取 书生大模型实战营 InternStudio平台 创建开发机 SSH连接开发机: SSH免密码登录 本地创建SSH密钥 ssh-keygen -t rsa打开以下文件获取公钥 ~/.ssh/id_rsa.pub去InternStudio添加公钥 …...

Python操作符的重载
目录 1、操作符重载的基本概念1.1、常用的操作符重载方法1.1.1、算术操作符1.1.2、比较操作符1.1.3、比其他操作符 1.2、例子 2、应用场景2.1、增强代码的可读性2.2、 实现类的数学运算2.3、支持自定义的数据结构2.4、简化 API 设计2.5、实现链式操作和流式接口 3、总结 Python…...

redis面试(三)Hash数据结构
HASH 哈希,在redis底层实现的时候,数据的结构叫做dict 这个Dict就是一个用于维护key和value映射关系的数据结构,与很多语言中的Map类型相似。 本质上也是一个数组链表的形式存在,不同的点在于,每个dict中是可以存在…...

Java基础语法
注释 注释就是在程序指定位置添加的说明性信息 简单理解,就是对代码的一种解释 注释有三种: 单行注释 格式://注释信息 多行注释 格式:/*注释信息*/ 文档注释 格式:/**注释信息*/ 注释的注意事项…...

Qt | QChart+QChartView+QLineSeries(折线图)+QBarSeries(柱状图)实战
点击上方"蓝字"关注我们 01、QLineSeries QLineSeries 是 Qt 中的一个类,用于在图表中表示一系列的数据点。它继承自 QAbstractSeries 类,提供了绘制折线图所需的基本功能。 常用的方法包括 append(x, y):向序列中添加一个新的数据点,其中 x 和 y 分别表示横坐…...

公布一批脸书爬虫(facebook)IP地址,真实采集数据
一、数据来源: 1、这批脸书爬虫(facebook)IP来源于尚贤达猎头公司网站采集数据; 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“facebook”和IP核实。…...

Package.Json 参数配置理解用途
"dev": "SET NODE_OPTIONS--openssl-legacy-provider & vue-cli-service serve --open" 这行命令首先设置环境变量NODE_OPTIONS,添加了--openssl-legacy-provider标志。这个标志用于解决某些情况下Node.js在Windows系统上使用OpenSSL时可能…...

k3:增加触发器,当外协单和报料单新增时,更新生产任务单的“说明”栏
外协单新增时 CREATE TRIGGER [dbo].[t_BOS257800018Entry2_update]ON [dbo].[t_BOS257800018Entry2]AFTER insert AS BEGINSET NOCOUNT ON; ------实现当外协时,生产任务单的说明有标识(240731 BY WK) declare fid_souce as int; declare…...

神奇海洋养鱼小程序游戏广告联盟流量主休闲小游戏源码
在海洋养鱼小程序中,饲料、任务系统、系统操作日志、签到、看广告、完成喂养、每日签到、系统公告、积分商城、界面设计、拼手气大转盘抽奖以及我的好友等功能共同构建了一个丰富而互动的游戏体验。以下是对这些功能的进一步扩展介绍: 饲料 任务奖励&a…...

分享几个适合普通人的AI副业变现思路
最近很多人问:看你做AI也做了有一两年了,也没见有什么产出啊?其实很多事情是长期主义,并不是一时半会儿马上就看到收益了。 正如董宇辉出名前也只是新东方默默无闻的一位老师,李佳琪曾经也只是一个化妆品销售。抱着长…...

如何使用CANoe自带的TCP/IP Stack验证TCP的零窗口探测机制
如果想利用CANoe自带的TCP/IP协议栈验证TCP的零窗口探测机制,就必须添加一个网络节点并配置独立的CANoe TCP/IP协议栈,作为验证对象。而与它进行TCP通信的对端也是一个网络节点,但不要配置TCP/IP协议栈,而是使用CAPL代码在底层组装TCP报文模拟TCP通信过程。这样可以尽量减少…...

二进制搭建 Kubernetes v1.20(中)
一、部署 CNI 网络组件 目录 一、部署 CNI 网络组件 1.flannel简介 1)UDP模式 2)VXLAN 模式 2.部署flannel 编辑 3.Calico简介 1.flannel简介 K8S 中 Pod 网络通信:●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器࿰…...

Scrapy 爬取旅游景点相关数据(七):利用指纹实现“不重复爬取”
本期学习: 利用网页指纹去重 众所周知,代理是要花钱的,那么在爬取(测试)巨量网页的时候,就不可能对已经爬取过的网站去重复的爬,这样会消耗大量的时间,更重要的是会消耗大量的IP (金…...

java的对象向上转型
对象向上转型,父类对象就可以调用子类重写父类的方法,这样当父类对象需要添加新的功能时,只需要添加一个子类,在子类中对父类的功能进行扩展,而不需要更改父类代码 向上转型,格式如下 父类类型 父类对象子…...

Navicat Premium 16破解
Navicat Premium 16破解教程 1安装Navicat Premium 16 通过百度网盘分享的文件:Navicat_Premium_16_chs-x64.zip 链接:https://pan.baidu.com/s/1ryRSJ2d9s6rXI09LEmLtpw?pwdz7wo 提取码:z7wo 一直下一步即可 2破解 选择刚才安装路径&am…...

【C/C++】C语言到C++的入门知识点(主要适用于C语言精通到Qt的C++开发入门)
【C/C】C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发入门) 文章目录 C语言与C的不同C中写C语言代码C语言到C的知识点Qt开发中需要了解的C基础知识namespace输入输出字符串类型class类构造函数和析构函数(解析函数)类的继…...

docker 建木 发版 (详细教程)
先创建git仓库 Git勤勉 两种方式上传-CSDN博客 把项目送上去 进入建木 可以接着这个来 dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)-CSDN博客 创建分组项目 开始操作 git 上钩子 前面链接里有这个教…...

什么样的人适合学习网络安全?
一、引言 在当今数字化的时代,网络安全已经成为了一个至关重要的领域。随着网络攻击的日益频繁和复杂,对于网络安全专业人才的需求也在不断增长。然而,并不是每个人都适合学习网络安全。那么,究竟什么样的人适合投身于这个充满挑…...

大厂linux面试题攻略四之Linux网络服务(二)
五、Linux网络服务-Apache优化 1.请写出工作中常见的Apache优化策略 Apache服务器优化是提升网站响应速度和稳定性的重要手段。在工作中,常见的Apache优化策略包括以下几个方面: 1. 启用压缩技术 Gzip压缩:使用Gzip压缩技术可以减少服务器…...

MySQL和PostgreSQL group by后 Concatenate 拼接所有的字符串
MySQL: GROUP_CONCAT(DISTINCT t2.T_CODES ORDER BY t2.T_CODES ASC) AS t_str, PostgreSQL 8.4 array_to_string(array_agg(t2.T_CODES), , ) AS t_str, PostgreSQL 9 string_agg(t2.T_CODES), , )...