基于ASP.NET的小型超市商品管理系统
文章目录
- 前言
- 项目介绍
- 技术介绍
- 功能介绍
- 核心代码
- 数据库参考
- 系统效果图
前言
示
文章底部名片,获取项目的完整演示视频,免费解答技术疑问
项目介绍
小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别管理、商品库存管理、入库信息管理、销售订单管理等功能,实现了对超市商品的全面管理。它简化了商品管理流程,提高了工作效率,有助于超市管理者实时掌握商品动态,优化库存结构,降低运营成本。
本论文将总体分析小型超市商品需求,再从不同角度分析具体功能需求,运用net相关技术,采用MySQL数据库,讨论如何设计并实现一个小型超市商品管理系统。分析和设计主要从管理员、采购员和销售员三个角色上展开研究,介绍了各个功能模块的实现,并通过系统测试对小型超市商品管理系统进行调试,将各个功能的测试结果与期望设计进行逐一比对,找出BUG和欠缺之处,从而进一步优化改进系统。
本套基于Java的小型超市商品管理系统的设计与实现,希望能让用户通过互联网得到方便而快捷的系统管理体验,在此基础的同时提高工作效益。
技术介绍
开发软件:VS 2017 (版本2017以上即可,不能低于2017)
数据库:SqlServer2008r2(数据库版本无限制,都可以导入)
开发模式:mvc
浏览器:谷歌浏览器
功能介绍
本文从小型超市商品管理的实际需要出发,为降低系统的耦合性,完成了系统总体架构的设计,以提高系统的重用性、可适用性及可维护性。系统包括管理员、采购员和销售员三个角色;
管理员负责对整个系统进行管理和监控,而其他用户则负责执行具体的管理工作。管理员、采购员和销售员
系统整体模块分为管理员、采购员和销售员三大用户角色,整体功能设计图如下所示:
图4-1 系统整体功能图
核心代码
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Newtonsoft.Json;
using Xiezn.Core.Business.Services;
using Xiezn.Core.Common.Helpers;
using Xiezn.Core.Models.ViewModel;namespace Xiezn.Core.Controllers
{/// <summary>/// 公共接口/// </summary>[Route("[action]")]public class CommonController : Controller{private readonly IHostingEnvironment _hostingEnvironment;private readonly string _savePath;private readonly CommonService _bll;private readonly ConfigService _configBLL;/// <summary>/// 构造函数/// </summary>public CommonController(IHostingEnvironment hostingEnvironment){_hostingEnvironment = hostingEnvironment;_savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;_bll = new CommonService();_configBLL = new ConfigService();}/// <summary>/// 获取某表的某个字段列表接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Option(string tableName, string columnName){try{int level = Convert.ToInt32(HttpContext.Request.Query["level"]);string parent = HttpContext.Request.Query["parent"];string conditionColumn = HttpContext.Request.Query["conditionColumn"];string conditionValue = HttpContext.Request.Query["conditionValue"];if (!string.IsNullOrEmpty(conditionColumn) && !string.IsNullOrEmpty(conditionValue)){return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "option", 0, 0, " AND " + conditionColumn + " = '" + conditionValue + "' ") });}if (level == 0){return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, parent, level) });}else{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName) });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 根据option字段值获取某表的单行记录接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <param name="columnValue">列值</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Follow(string tableName, string columnName, string columnValue){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, columnValue, 0, "follow") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 根据主键id修改table表的sfsh状态接口/// </summary>/// <param name="tableName">表名</param>/// <param name="id">主键id</param>/// <param name="sfsh">当前审核状态(是/否)</param>/// <returns></returns>[HttpPost("{tableName}")][Authorize(Roles = "Admin,Client")]public JsonResult Sh(string tableName, int id, string sfsh){try{if (_bll.Common(tableName, id.ToString(), sfsh, 0, "sh") > 0){return Json(new { Code = 0, Msg = "更新成功!" });}return Json(new { Code = -1, Msg = "更新失败!" });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 获取需要提醒的记录数接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <param name="type">类型(1表示数字比较提醒,2表示日期比较提醒)</param>/// <param name="remindStart">remindStart小于等于columnName满足条件提醒,当比较日期时,该值表示天数</param>/// <param name="remindEnd">columnName小于等于remindEnd 满足条件提醒,当比较日期时,该值表示天数</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}/{type}")]public JsonResult Remind(string tableName, string columnName, int type, int remindStart, int remindEnd){try{return Json(new { Code = 0, Count = _bll.Common(tableName, columnName, "", type, "remind", remindStart, remindEnd) });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 计算规则接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Cal(string tableName, string columnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "cal") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 人脸比较/// </summary>/// <param name="face1">图片1名称</param>/// <param name="face2">图片2名称</param>/// <returns></returns>[HttpGet]public JsonResult MatchFace(string face1, string face2){try{BaiduAiHelper.clientId = _configBLL.GetValueByName("APIKey");BaiduAiHelper.clientSecret = _configBLL.GetValueByName("SecretKey");BaiduAiHelper.GetAccessToken();List<FaceMatchViewModel> matchInfo = new List<FaceMatchViewModel>{new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face1) },new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face2) }};string result = BaiduAiHelper.FaceMatch(JsonConvert.SerializeObject(matchInfo));dynamic resObj = JsonConvert.DeserializeObject(result);if (resObj.error_code == 0){return Json(new { Code = 0, Score = resObj.result.score, Msg = "匹配成功!" });}else{return Json(new { Code = -1, Score = 0, Msg = "匹配失败!" });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 定位接口(根据经纬度坐标获取到省市县(区)信息)/// </summary>/// <param name="lat">经度</param>/// <param name="lng">纬度</param>/// <returns></returns>[HttpGet]public JsonResult Location(double lat, double lng){try{AddressViewModel addressViewModel = BaiduAiHelper.GetAddress(_configBLL.GetValueByName("baidu_ditu_ak"), lng, lat);if (addressViewModel == null){return Json(new { Code = -1, Msg = "位置信息获取失败!" });}else{return Json(new { Code = 0, Data = addressViewModel });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 类别统计接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Group(string tableName, string columnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "group") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 按值统计接口/// </summary>/// <param name="tableName">表名</param>/// <param name="xColumnName">列名</param>/// <param name="yColumnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{xColumnName}/{yColumnName}")]public JsonResult Value(string tableName, string xColumnName, string yColumnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, xColumnName, yColumnName, 0, "value") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 按时间统计类型接口/// </summary>/// <param name="tableName">表名</param>/// <param name="xColumnName">列名</param>/// <param name="yColumnName">列名</param>/// <param name="timeStatType">类型</param>/// <returns></returns>[HttpGet("{tableName}/{xColumnName}/{yColumnName}/{timeStatType}")]public JsonResult Value(string tableName, string xColumnName, string yColumnName, string timeStatType){try{return Json(new { Code = 0, Data = _bll.StatDate(tableName, xColumnName, yColumnName, timeStatType) });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 数据备份/// </summary>/// <returns></returns>[HttpGet]public IActionResult Mysqldump(){string filepath = _savePath + "mysql.dmp";// Linuxstring cmd = "/bin/bash";string strInput = "/usr/bin/mysqldump -h127.0.0.1 -uroot -P3306 -p123456 net2h303777 > " + filepath;// Windows// string cmd = "cmd.exe";// string strInput = "D:\\mysqldump -h127.0.0.1 -uroot -P3306 -p123456 net2h303777 > " + filepath;Process p = new Process();p.StartInfo.FileName = cmd;p.StartInfo.UseShellExecute = false;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;p.Start();p.StandardInput.WriteLine(strInput);p.StandardInput.AutoFlush = true;p.StandardInput.Close();string strOuput = p.StandardOutput.ReadToEnd();p.WaitForExit();p.Close();var stream = System.IO.File.OpenRead(filepath);return File(stream, "application/octet-stream", "mysql.dmp");}/// md5加密接口[HttpGet("{encryption}")]public IActionResult Encrypt(string encryption){try{string text = HttpContext.Request.Query["text"];string data = FuncHelper.MD5(text);return Json(new { Code = 0,Data = data });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}}
}
数据库参考
--
-- Current Database: `netm28u50w3`
--/*!40000 DROP DATABASE IF EXISTS `netm28u50w3`*/;CREATE DATABASE /*!32312 IF NOT EXISTS*/ `netm28u50w3` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `netm28u50w3`;--
-- Table structure for table `caigouyuan`
--DROP TABLE IF EXISTS `caigouyuan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `caigouyuan` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`caigougonghao` varchar(200) DEFAULT NULL COMMENT '采购工号',`caigouxingming` varchar(200) DEFAULT NULL COMMENT '采购姓名',`mima` varchar(200) DEFAULT NULL COMMENT '密码',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`zhicheng` varchar(200) DEFAULT NULL COMMENT '职称',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`touxiang` longtext COMMENT '头像',PRIMARY KEY (`id`),UNIQUE KEY `caigougonghao` (`caigougonghao`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='采购员';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `caigouyuan`
--LOCK TABLES `caigouyuan` WRITE;
/*!40000 ALTER TABLE `caigouyuan` DISABLE KEYS */;
INSERT INTO `caigouyuan` VALUES (11,'2024-04-02 10:04:53','采购工号1','采购姓名1','123456','男','职称1','13823888881','upload/caigouyuan_touxiang1.jpg'),(12,'2024-04-02 10:04:53','采购工号2','采购姓名2','123456','男','职称2','13823888882','upload/caigouyuan_touxiang2.jpg'),(13,'2024-04-02 10:04:53','采购工号3','采购姓名3','123456','男','职称3','13823888883','upload/caigouyuan_touxiang3.jpg'),(14,'2024-04-02 10:04:53','采购工号4','采购姓名4','123456','男','职称4','13823888884','upload/caigouyuan_touxiang4.jpg'),(15,'2024-04-02 10:04:53','采购工号5','采购姓名5','123456','男','职称5','13823888885','upload/caigouyuan_touxiang5.jpg'),(16,'2024-04-02 10:04:53','采购工号6','采购姓名6','123456','男','职称6','13823888886','upload/caigouyuan_touxiang6.jpg'),(17,'2024-04-02 10:04:53','采购工号7','采购姓名7','123456','男','职称7','13823888887','upload/caigouyuan_touxiang7.jpg'),(18,'2024-04-02 10:04:53','采购工号8','采购姓名8','123456','男','职称8','13823888888','upload/caigouyuan_touxiang8.jpg');
/*!40000 ALTER TABLE `caigouyuan` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `config`
--DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',`url` varchar(500) DEFAULT NULL COMMENT 'url',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `config`
--LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `gongyingshang`
--DROP TABLE IF EXISTS `gongyingshang`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gongyingshang` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gongyingshang` varchar(200) NOT NULL COMMENT '供应商',`dizhi` varchar(200) DEFAULT NULL COMMENT '地址',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`fuzeren` varchar(200) NOT NULL COMMENT '负责人',`zhiwu` varchar(200) DEFAULT NULL COMMENT '职务',`yingyezhizhaohaoma` varchar(200) DEFAULT NULL COMMENT '营业执照号码',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='供应商';
/*!40101 SET character_set_client = @saved_cs_client */;
系统效果图
相关文章:

基于ASP.NET的小型超市商品管理系统
文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图 前言 示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别…...

spdlog学习记录
spdlog Loggers:是 Spdlog 最基本的组件,负责记录日志消息。在 Spdlog 中,一个 Logger 对象代表着一个日志记录器,应用程序可以使用 Logger 对象记录不同级别的日志消息Sinks:决定了日志消息的输出位置。在 Spdlog 中&…...

linux替换某个文件的某段内容命令
假设文件是a.sql 里面的库是abc,我想把这个abc给替换掉,改成hahaha cat a.sql |grep abc|sed -i s/abc/hahaha/g a.sql 如果想写个脚本指定整个文件夹中的内容替换 #!/bin/bash # 检查是否提供了文件夹路径 if [ -z "\$1" ]; then echo &…...

什么是SQL注入攻击?如何防止呢?
目录 一、什么是SQL注入? 二、如何防止? 2.1 使用预编译语句 2.2 使用 ORM 框架 2.3 用户输入校验 一、什么是SQL注入? SQL 注入是一种常见的网络安全漏洞,攻击者通过在应用程序的用户输入中插入恶意的 SQL 代码ÿ…...

consumer 角度讲一下i2c外设
往期内容 I2C子系统专栏: I2C(IIC)协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析:注册篇内核提供的通用I2C设备驱动I2C-dev.…...

面试经典150题刷题记录
数组部分 1. 合并两个有序的子数组 —— 倒序双指针避免覆盖 88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使…...

【HarmonyOS NEXT】实现保存base64图片到图库
上篇文章介绍了HarmonyOS NEXT如何保存base64文件到download目录下,本次介绍如何保存base64图片到图库,网络图片保存方式大同小异,先下载图片,然后再保存 phAccessHelper.showAssetsCreationDialog参考官方文档’ ohos.file.pho…...

开题答辩最怕被问什么?教你用ChatGPT轻松准备,稳拿高分!
AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 开题答辩是学位论文写作过程中的重要环节,能帮助导师评估你的研究计划是否可行,并对后续写作起到指导作用。很多同学在面对导师提问时会感到紧张,因此提前准备好常见问题的…...

Unity3D功耗和发热分析与优化详解
前言 Unity3D作为广泛使用的游戏开发引擎,在游戏开发过程中,功耗和发热问题一直是开发者需要重点关注的问题。功耗和发热不仅影响用户体验,还可能对设备的硬件寿命造成一定影响。本文将从技术角度详细分析Unity3D游戏在移动设备上的功耗和发…...

深度学习中的掩码介绍
在深度学习中,**掩码(Mask)**通常用于屏蔽掉某些特定部分的数据,以确保模型在训练或推理时不处理无效或无关的输入。掩码的使用场景主要包括处理变长序列、生成模型中的自回归任务、处理填充数据等。掩码可以是二值矩阵(1 表示有效数据,0 表示屏蔽数据),在注意力机制中…...

rust高级进阶总结
文章目录 前言1. Rust生命周期进阶一、不太聪明的生命周期检查(一)例子1(二)例子2 二、无界生命周期三、生命周期约束(HRTB)(一)语法及含义(二)综合例子 四、…...

整理—计算机网络
目录 网络OSI模型和TCP/IP模型 应用层有哪些协议 HTTP报文有哪些部分 HTTP常用的状态码 Http 502和 504 的区别 HTTP层请求的类型有哪些? GET和POST的使用场景,有哪些区别? HTTP的长连接 HTTP默认的端口是什么? HTTP1.1怎…...

分布式数据库环境(HBase分布式数据库)的搭建与配置
分布式数据库环境(HBase分布式数据库)的搭建与配置 1. VMWare安装CentOS7.9.20091.1 下载 CentOS7.9.2009 映像文件1.2启动 VMware WorkstationPro,点击“创建新的虚拟机”1.3在新建虚拟机向导界面选择“典型(推荐)”1…...

100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题
100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题 教育行业 学生信息管理系统在线考试系统课程管理与选课系统教师评价管理系统图书馆管理系统学生成绩查询系统校园论坛作业提交与批改系统学生考勤管理系统教学资源共享平台 企业管理 员工管理系统考勤打卡系统办公用品申请管…...

05 go语言(golang) - 常量和条件语句
常量 在Go语言中,常量是使用 const 关键字定义的,并且一旦被赋值后,它们的值在程序运行期间不能改变。常量可以是字符、字符串、布尔或数值类型。 基本特性 不可修改:一旦一个常量被定义,它的值就不能被更新。编译时…...

【设计模式】深入理解Python中的适配器模式(Adapter Pattern)
深入理解Python中的适配器模式(Adapter Pattern) 在软件开发中,常常会遇到需要让不兼容的类或接口协同工作的问题。适配器模式(Adapter Pattern)是一种结构型设计模式,通过提供一个包装器对象,…...

RuoYi-Vue若依框架-后端设置不登陆访问(白名单)
找到SecurityConfig类 确认自己的需求 /*** anyRequest | 匹配所有请求路径* access | SpringEl表达式结果为true时可以访问* anonymous | 匿名可以访问* denyAll | 用户不能访问* fullyAuthenticated | 用户完全认证可…...

C语言初阶小练习2(三子棋小游戏的实现代码)
这是C语言小游戏三子棋的代码实现 test.c文件是用来测试的部分 game.h文件是用来声明我们说写出的函数 game.c文件是用来编写我们的功能实现函数部分 1.test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() {printf("***************…...

金融行业合同管理如何利用AI技术进行风险预警?
2024年以来,金融行业的发展主线被锚定,强调了防风险的基调,尤其是系统性风险的防范。金融工作的重点在于实现六个强大:强大的货币、强大的中央银行、强大的金融机构、强大的国际金融中心、强大的金融监管、强大的金融人才队伍。这…...

世界数字农业盛宴与技术探索,25年3月聚焦世界灌溉科技大会
由中国农业节水和农村供水技术协会、中国农垦节水农业产业技术联盟、北京物联网智能技术应用协会、振威国际会展集团主办的“世界灌溉科技大会”、“第11届北京国际数字农业与灌溉技术博览会”,定于2025年3月31日至4月2日在北京国家会议中心举办。 作为世界三大灌溉…...

二百六十九、Kettle——ClickHouse清洗ODS层原始数据增量导入到DWD层表中
一、目的 清洗ClickHouse的ODS层原始数据,增量导入到DWD层表中 二、实施步骤 2.1 newtime select( select create_time from hurys_jw.dwd_statistics order by create_time desc limit 1) as create_time 2.2 替换NULL值 2.3 clickhouse输入 2.4 字段选择 2.5 …...

Maya---骨骼绑定
调节骨骼大小 回车键确认骨骼 FK子集跟父集走 IK子集不跟父集走 前视图中按shift键添加骨骼 清零、删除历史记录,创建新的物体...

携手并进,智驭教育!和鲸科技与智谱 AI 签署“101 数智领航计划”战略合作协议
近日,上海和今信息科技有限公司(以下简称“和鲸科技”)与北京智谱华章科技有限公司(以下简称“智谱 AI”)签署“101 数智领航计划”战略合作协议。双方将携手营造智能化学科教育与科研环境,提供多种大模型工…...

牛客周赛63
https://ac.nowcoder.com/acm/contest/91592 好数 简单的判断两位数,且十位等于个位 #include <bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define int long long using namespace std; using ll long long; using pii …...

git restore恢复删除文件
新版本 在 Git 2.23 版本之后,Git 引入了一个新的命令 git restore,用于简化文件恢复操作。可以用 git restore 来恢复误删除的文件。下面是详细的使用方法: 1. 恢复工作区中删除的文件(未提交) 如果文件已被删除&a…...

MacOS13虚拟机VMware Workstation Pro 16安装
资源 安装unlocker 安装虚拟机 低版本的还没有MacOS13选项,这也是我安装低版本虚拟机踩过的坑 找个教程安装就可以了 省略…自己去找找教程… 过程中我使用桥接是不行的,没有网络,后面重新下一步一步的选择默认的网络重装后就好了&am…...

docker 数据管理,数据持久化详解 一
docker镜像是分层设计的,镜像出只读,通过镜像启动的容器添加一层可读写的文件系统,用户写入的数据表都保存在这层中。 容器的数据分层目录 LowerDir:image 镜像层,即镜像本身,制度 UpperDir:容…...

【ios】使用TestFlight将app分发给测试人员(超详细)
我的环境: macos系统是Ventura 13.0 xcode是14.2(后面发现至少需要15版本的xcode才能上传app) 证书生成 可以通过xcode生成Distribution类型的证书,如果你已经有的话那就忽略,这个证书也是备案时所需的。 我是已…...

证件照小程序源码,前后端稳定运行
演示:证寸照制作 运行环境: Linux Nginx PHP >5.6 MySQL>5.6 安装步骤: 1.下载源码上传至你的服务器宝塔面板 2.直接添加站点选择源码目录,新建数据库 3.设置代码执行目录为/web 4.在浏览器中输入你的域名,会提示安装,填写…...

java白嫖同事的从身份证里面提取省市区地址详细信息的工具类代码
/*** author sunpeiyang* date 2024/10/21 16:35*/ Slf4j public class MiTaAddressExtractor {/*** 获取详细地址** param fullAddress 身份证完整地址*/public static String getDetailedAddress(String fullAddress) {String[] addressArrays spliceDetailedAddress(fullAd…...