当前位置: 首页 > news >正文

Java项目练习——学生管理系统

1. 整体结构

代码实现了基本的学生管理系统功能,包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。
使用了ArrayList来存储用户和学生信息。
使用了Scanner类来处理用户输入。

2. 主要功能模块

登录 (logIn):验证用户名和密码,支持验证码校验。
注册 (register):验证用户名、密码、身份证号和手机号。
忘记密码 (forgetPassword):通过用户名、身份证号和手机号验证后修改密码。
管理学生信息 (Manage):提供添加、删除、修改和查询学生信息的功能。

如果有问题,希望大家指正

Student_JavaBean

package student_Management_System;public class Student_JavaBean {private String id;private String name;private int age;private String address;public Student_JavaBean() {}public Student_JavaBean(String id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}/*** 获取* @return address*/public String getAddress() {return address;}/*** 设置* @param address*/public void setAddress(String address) {this.address = address;}
}

User_JavaBean

package student_Management_System;
public class User_JavaBean {//属性:用户名、密码、身份证号码、手机号码private String username;private String password;private String idCard;private String phone;public User_JavaBean() {}public User_JavaBean(String username, String password, String idCard, String phone) {this.username = username;this.password = password;this.idCard = idCard;this.phone = phone;}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return password*/public String getPassword() {return password;}/*** 设置* @param password*/public void setPassword(String password) {this.password = password;}/*** 获取* @return idCard*/public String getIdCard() {return idCard;}/*** 设置* @param idCard*/public void setIdCard(String idCard) {this.idCard = idCard;}/*** 获取* @return phone*/public String getPhone() {return phone;}/*** 设置* @param phone*/public void setPhone(String phone) {this.phone = phone;}
}

主函数

package student_Management_System;import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;public class Student {public static void main(String[] args) {ArrayList<Student_JavaBean>list=new ArrayList<>();ArrayList<User_JavaBean> user=new ArrayList<>();Scanner sc=new Scanner(System.in);while(true) {System.out.println("欢迎来到学生管理系统");System.out.println("请选择操作1登录 2注册 3忘记密码 4退出");int choose_up = sc.nextInt();switch (choose_up) {case 1: {logIn(user,list);break;}case 2:register(user);searchUsername(user);break;case 3://       1,键盘录入用户名,判断当前用户名是否存在,如不存在,直接结束方法,并提示:未注册//      2,键盘录入身份证号码和手机号码//	    3,判断当前用户的身份证号码和手机号码是否一致,//			如果一致,则提示输入密码,进行修改。//			如果不一致,则提示:账号信息不匹配,修改失败。forgetPassword(user);break;case 4:return;default:System.out.println("输入错误");break;}}}public static void logIn(ArrayList<User_JavaBean>user,ArrayList<Student_JavaBean>list) {//用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册//判断验证码是否正确,如不正确,重新输入//再判断用户名和密码是否正确,有3次机会Scanner sc = new Scanner(System.in);while (true) {System.out.println("请输入用户名");String username = sc.next();boolean flag = checkHava(user,username);if (flag) {int count = 2;while (count >= 0) {System.out.println("请输入密码");String password = sc.next();int flag2 = (index(user, username));if (flag2 >= 0) {if (user.get(index(user, username)).getPassword().equals(password)) {break;}System.out.println("密码错误还有" + count + "次机会");if (count == 0) {return;}count--;}}break;}else {System.out.println("登录失败,用户名不存在,请按下其它数字键重新输入,按下0退出程序");int temp = sc.nextInt();if (temp == 0) {return;}}}while (true) {System.out.println("请输入验证码");String newVerificationCode = verificationCode();System.out.println(newVerificationCode);String verificationCode = sc.next();if (verificationCode.equals(newVerificationCode)) {break;}}System.out.println("登录成功");Manage(list);}public static void Manage(ArrayList<Student_JavaBean>list){Scanner sc=new Scanner(System.in);while (true) {int choose = menu(sc);switch (choose) {case 1:add(list);break;case 2:delete(list);break;case 3:upData(list);break;case 4:search(list);break;case 5:System.out.println("退出");return;default:System.out.println("输入错误重新输入");break;}}}public static void forgetPassword(ArrayList<User_JavaBean> user) {Scanner sc = new Scanner(System.in);while (true) {System.out.println("请输入用户名");String username = sc.next();int index = index(user, username);if (index == -1) {System.out.println("用户名不存在,请按下其它数字键重新输入,按下0退出程序");int temp = sc.nextInt();if (temp == 0) {return;}continue;}while (true) {System.out.println("输入用户的身份证号");String IdCard = sc.next();if (user.get(index).getIdCard().equals(IdCard)) {break;} else {System.out.println("身份证号不匹配,请按下其它数字键重新输入,按下0退出程序");int temp = sc.nextInt();if (temp == 0) {return;}}}while (true) {System.out.println("请输入用户的手机号");String phone = sc.next();if (user.get(index).getPhone().equals(phone)) {break;} else {System.out.println("手机号不匹配,请按下其它数字键重新输入,按下0退出程序");int temp = sc.nextInt();if (temp == 0) {return;}}}System.out.println("请输入新密码");String newPassword = sc.next();user.get(index).setPassword(newPassword);System.out.println("修改成功");return;}}public static int index(ArrayList<User_JavaBean>user,String temp){for (int i = 0; i < user.size(); i++) {if(user.get(i).getUsername().equals(temp)){return i;}}return -1;}public static boolean checkHava(ArrayList<User_JavaBean>user,String username){for (int i = 0; i < user.size(); i++) {if(user.get(i).getUsername().equals(username)){return true;}}System.out.println("用户未注册,请先注册");return false;}public static String verificationCode(){Random random=new Random();char[] zLen =new char[5];for (int i = 0; i < zLen.length-1; i++) {int flag=random.nextInt(2);if(flag==0) {zLen[i] = (char) (random.nextInt(25) + 65);}else{zLen[i] = (char) (random.nextInt(26) + 97);}}zLen[zLen.length-1]=(char)(random.nextInt(10)+'0');for (int i = 0; i < zLen.length; i++) {char temp=zLen[i];int j=random.nextInt(zLen.length);zLen[i]=zLen[j];zLen[j]=temp;}return new String(zLen);}public static void searchUsername(ArrayList<User_JavaBean>user){System.out.println("用户名     身份证号\t\t\t 密码\t  手机\t");for (int i = 0; i < user.size(); i++) {System.out.println(user.get(i).getUsername()+" "+user.get(i).getIdCard()+" "+user.get(i).getPassword()+"    "+user.get(i).getPhone());}}public static void register(ArrayList<User_JavaBean>user){//用户名长度必须在3~15位之间//只能是字母加数字的组合,但是不能是纯数字//	2,密码键盘输入两次,两次一致才可以进行注册。//	3,身份证号码需要验证。//		验证要求://			长度为18位//			不能以0为开头//			前17位,必须都是数字//			最为一位可以是数字,也可以是大写X或小写x//	4,手机号验证。//		验证要求://			长度为11位//			不能以0为开头//			必须都是数字Scanner sc=new Scanner(System.in);User_JavaBean uj=new User_JavaBean();while(true) {System.out.println("请输入用户名(3-15位之间,只能字母加数字,但不能是纯数字)");String username = sc.next();boolean flag = checkUsername(username);if (flag) {uj.setUsername(username);break;} else {System.out.println("注册失败,用户名输入错误,请按下其它数字键重新输入,按下0退出程序");if(sc.nextInt()==0){return;}}}while(true){System.out.println("输入密码");String password=sc.next();if(checkPassword(password)){uj.setPassword(password);break;}else{System.out.println("两次密码输入不相同,请按下其它数字键重新输入,按下0退出程序");if(sc.nextInt()==0){return;}}}while(true){System.out.println("输入身份证号");String inCard=sc.next();if(checkInCard(inCard)){uj.setIdCard(inCard);break;}else{System.out.println("身份证号输入格式错误,请按下其它数字键重新输入,按下0退出程序");if(sc.nextInt()==0){return;}}}while(true){System.out.println("输入手机号");String phone=sc.next();if(checkPhone(phone)){uj.setPhone(phone);break;}else{System.out.println("手机号输入格式错误,请按下其它数字键重新输入,按下0退出程序");if(sc.nextInt()==0){return;}}}user.add(uj);System.out.println("注册成功!");}public static boolean checkPassword(String password){Scanner sc=new Scanner(System.in);System.out.println("请再次输入密码");String newPassword=sc.next();if(password.equals(newPassword)){return true;}System.out.println("两次输入不相同");return false;}public static boolean checkPhone(String Phone){//4,手机号验证。//		验证要求://			长度为11位//			不能以0为开头//			必须都是数字char first=Phone.charAt(0);char []temp=new char[Phone.length()];int count=0;if(Phone.length()==11){if(first!='0'){for (int i = 0; i < Phone.length(); i++) {temp[i]=Phone.charAt(i);if(temp[i]>='0'&&temp[i]<='9'){count++;}}return count == 11;}}return false;}public static boolean checkInCard(String inCard){//		验证要求://			长度为18位//			不能以0为开头//			前17位,必须都是数字//			最为一位可以是数字,也可以是大写X或小写xif(inCard.length()==18){char first=inCard.charAt(0);char []temp=new char[inCard.length()];char end=inCard.charAt(17);if(first!='0'){for (int i = 0; i < inCard.length()-1; i++) {temp[i]=inCard.charAt(i);if(temp[i]>='0'&&temp[i]<='9'){if(end>='0'&&end<='9'||end=='x'||end=='X'){return true;}}}}}System.out.println("身份证输入有误");return false;}public static boolean checkUsername(String pwd){Scanner sc=new Scanner(System.in);int len=pwd.length();if(len<3||len>15){return false;}int count=0;for (int i = 0; i < pwd.length(); i++) {char c=pwd.charAt(i);if(!(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '0' && c <= '9'))//判断是否是在允许的范围内{System.out.println("范围不正确");return false;}}for (int i = 0; i < pwd.length(); i++) {char c=pwd.charAt(i);//判断是否是纯数字if(c>='0'&&c<='9'){count++;}}if(count==pwd.length()){System.out.println("不能是纯数字");return false;}return true;}public static boolean checkId(ArrayList<Student_JavaBean>list,String id){for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)){return true;}}return false;}public static void delete(ArrayList<Student_JavaBean>list){Scanner sc=new Scanner(System.in);System.out.println("请输入需要删除的id");String id=sc.next();boolean flag=checkId(list,id);if(!flag){System.out.println("该id不存在");return;}for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)){list.remove(i);break;}}System.out.println("删除成功");}public static void upData(ArrayList<Student_JavaBean>list) {Scanner sc = new Scanner(System.in);Student_JavaBean sj=new Student_JavaBean();System.out.println("请输入需要修改的id");String id = sc.next();boolean flag=checkId(list,id);if(!flag){System.out.println("不存在该id");return;}System.out.println("请输入修改类型:1.id 2.姓名 3.年龄 4.地址");int type=sc.nextInt();switch (type) {case 1: {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("输入新的id");String newId = sc.next();sj.setId(newId);list.get(i).setId(newId);System.out.println("修改成功");break;}}break;}case 2: {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("输入新的姓名");String newName = sc.next();sj.setName(newName);list.get(i).setName(newName);System.out.println("修改成功");break;}}break;}case 3: {for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("输入新的年龄");int newAge = sc.nextInt();sj.setAge(newAge);list.get(i).setAge(newAge);System.out.println("修改成功");break;}}break;}case 4:{for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("输入新的地址");String newAddress = sc.next();sj.setAddress(newAddress);list.get(i).setAddress(newAddress);System.out.println("修改成功");break;}}break;}default:System.out.println("输入有误");break;}}public static void search(ArrayList<Student_JavaBean> list){if(list.size()==0){System.out.println("当前无学生信息,请添加后再查询");}else{System.out.println("id\t\t姓名\t年龄\t地址\t");for (int i = 0; i < list.size(); i++) {Student_JavaBean su=list.get(i);System.out.println(su.getId()+"\t"+su.getName()+"\t"+su.getAge()+"\t"+su.getAddress()+"\t");}}}public static void add(ArrayList<Student_JavaBean>list){Student_JavaBean s=new Student_JavaBean();Scanner sc=new Scanner(System.in);System.out.println("输入id:");String id=sc.next();s.setId(id);boolean flag=checkId(list,id);if(flag){System.out.println("该id已存在");return;}System.out.println("输入姓名:");String name=sc.next();s.setName(name);System.out.println("输入年龄:");int age=sc.nextInt();s.setAge(age);System.out.println("输入地址:");String address=sc.next();s.setAddress(address);list.add(s);System.out.println("添加成功");}public static int menu(Scanner sc){int choose;System.out.println("\"-------------欢迎来到学生管理系统----------------\"");System.out.println("\"1:添加学生\"");System.out.println("\"2:删除学生\"");System.out.println("\"3:修改学生\"");System.out.println("\"4:查询学生\"");System.out.println("\"5:退出\"");System.out.print("\"请输入您的选择:\"");choose=sc.nextInt();return choose;}}

相关文章:

Java项目练习——学生管理系统

1. 整体结构 代码实现了基本的学生管理系统功能&#xff0c;包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。 使用了ArrayList来存储用户和学生信息。 使用了Scanner类来处理用户输入。 2. 主要功能模块 登录 (logIn)&#xff1a;验证用户名和密码&#xff0c;…...

sqlserver、达梦、mysql的差异

差异项sqlserver达梦mysql单行注释---- 1、-- &#xff0c;--后面带个空格 2、# 包裹对象名称&#xff0c;如表、表字段等 [tableName] "tableName"tableName表字段自增IDENTITY(1, 1)IDENTITY(1, 1)AUTO_INCREMENT二进制数据类型IMAGEIMAGE、BLOBBLOB 存储一个汉字需…...

Spring AOP(定义、使用场景、用法、3种事务、事务失效场景及解决办法、面试题)

目录 1. AOP定义&#xff1f; 2.常见的AOP使用场景&#xff1a; 3.Spring AOP用法 3.1 Spring AOP中的几个核心概念 3.1.1 切面、切点、通知、连接点 3.1.2 切点表达式AspectJ 3.2 使用 Spring AOP 的步骤总结 3.2.1 添加依赖: 3.2.2 定义切面和切点&#xff08;切点和…...

Flutter鸿蒙next 封装对话框详解

✅近期推荐&#xff1a;求职神器 https://bbs.csdn.net/topics/619384540 &#x1f525;欢迎大家订阅系列专栏&#xff1a;flutter_鸿蒙next &#x1f4ac;淼学派语录&#xff1a;只有不断的否认自己和肯定自己&#xff0c;才能走出弯曲不平的泥泞路&#xff0c;因为平坦的大路…...

【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型

前言 随着多模态大模型的发展&#xff0c;其不仅限于文字处理&#xff0c;更能够在图像、视频、音频方面进行识别与理解。医疗领域中&#xff0c;医生们往往需要对各种医学图像进行处理&#xff0c;以辅助诊断和治疗。如果将多模态大模型与图像诊断相结合&#xff0c;那么这会…...

SCSI驱动与 UFS 驱动交互概况

SCSI子系统概况 SCSI&#xff08;Small Computer System Interface&#xff09;子系统是 Linux 中的一个模块化框架&#xff0c;用于提供与存储设备的通用接口。通过 SCSI 子系统&#xff0c;可以支持不同类型的存储协议&#xff08;如 UFS、SATA、SAS&#xff09;&#xff0c…...

软件工程实践项目:人事管理系统

一、项目的需求说明 通过移动设备登录app提供简单、方便的操作。根据公司原来的考勤管理制度&#xff0c;为公司不同管理层次提供相应的权限功能。通过app上面的各种标准操作&#xff0c;考勤管理无纸化的实现&#xff0c;使公司的考勤管理更加科学规范&#xff0c;从而节省考…...

不使用三方软件,win系统下禁止单个应用联网能力的详细操作教程

本篇文章主要讲解&#xff0c;在win系统环境下&#xff0c;禁止某个应用联网能力的详细操作教程&#xff0c;通过本教程您可以快速掌握自定义对单个程序联网能力的限制和禁止。 作者&#xff1a;任聪聪 日期&#xff1a;2024年10月30日 步骤一、按下win按键&#xff08;四个小方…...

近似线性可分支持向量机的原理推导

近似线性可分的意思是训练集中大部分实例点是线性可分的&#xff0c;只是一些特殊实例点的存在使得这种数据集不适用于直接使用线性可分支持向量机进行处理&#xff0c;但也没有到完全线性不可分的程度。所以近似线性可分支持向量机问题的关键就在于这些少数的特殊点。 相较于…...

Golang开发环境

Golang开发环境搭建 Go 语言开发包 国外&#xff1a;https://golang.org/dl/ 国内(推荐)&#xff1a; https://golang.google.cn/dl/ 编辑器 Golang:https://www.jetbrains.com/go/ Visual Studio Code: https://code.visualstudio.com/ 搭建 Go 语言开发环境&#xff0c;需要…...

测试华为GaussDB(DWS)数仓,并通过APISQL快速将(表、视图、存储过程)发布为API

华为数据仓库服务 数据仓库服务&#xff08;Data Warehouse Service&#xff0c;简称DWS&#xff09;是一种基于公有云基础架构和平台的在线数据处理数据库&#xff0c;提供即开即用、可扩展且完全托管的分析型数据库服务。DWS是基于华为融合数据仓库GaussDB产品的云原生服务&a…...

使用GetX实现GetPage中间件

前言 GetX 中间件&#xff08;Middleware&#xff09;是 GetX 框架中的一种机制&#xff0c;用于在页面导航时对用户进行权限控制、数据预加载、页面访问条件设置等。通过使用中间件&#xff0c;可以有效地控制用户的访问流程&#xff0c;并在适当条件下引导用户到所需页面。 这…...

Navicat 17 功能简介 | SQL 预览

Navicat 17 功能简介 | SQL 预览 随着 17 版本的发布&#xff0c;Navicat 也带来了众多的新特性&#xff0c;包括兼容更多数据库、全新的模型设计、可视化智能 BI、智能数据分析、可视化查询解释、高质量数据字典、增强用户体验、扩展MongoDB 功能、轻松固定查询结果、便捷URI …...

ubuntu、Debian离线部署gitlab

一、软件包下载 gitlab安装包下载链接 ubuntu&#xff1a; ubuntu/focal 适用于 ubuntu20系列 ubuntu/bionic 适用于 ubuntu18 系列 Debian&#xff1a; debian/buster 适用于 Debian10系列 debian/bullseye 适用于 Debian11、12系列 二、安装gitlab ubuntu需要安装一些环境…...

数据库编程 SQLITE3 Linux环境

永久存储程序数据有两种方式&#xff1a; 用文件存储用数据库存储 对于多条记录的存储而言&#xff0c;采用文件时&#xff0c;插入、删除、查找的效率都会很差&#xff0c;为了提高这些操作的效率&#xff0c;有计算机科学家设计出了数据库存储方式 一、数据库 数据库的基本…...

独孤思维:总有一双眼睛默默观察你做副业

01 独孤昨天在陪伴群&#xff0c;分享了近期小白做副业的一些困扰。 并且以自己经历作为案例&#xff0c;分享了一些经验和方法。 最后顺势推出xx博主的关于365条赚钱信息小报童专栏。 订阅后&#xff0c;可以开拓副业赚钱思路&#xff0c;避免走一些弯路。 甚至于&#x…...

医院信息化与智能化系统(10)

医院信息化与智能化系统(10) 这里只描述对应过程&#xff0c;和可能遇到的问题及解决办法以及对应的参考链接&#xff0c;并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图&#xff0c;可以试试PlantUML&#xff0c;告诉GPT你的文件结构&#xff0c;让他给你对应…...

基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

Flink CDC系列之:学习理解核心概念——Transform

Flink CDC系列之&#xff1a;学习理解核心概念——Transform Transform参数元数据字段函数比较函数逻辑函数字符串函数时间函数条件函数 示例添加计算列参考元数据列使用通配符投影所有字段添加过滤规则重新分配主键重新分配分区键指定表创建配置分类映射用户定义函数已知限制 …...

MyBatis-Plus:简化 CRUD 操作的艺术

一、关于MyBatis-Plus 1.1 简介 MyBatis-Plus 是一个基于 MyBatis 的增强工具&#xff0c;它旨在简化 MyBatis 的使用&#xff0c;提高开发效率。 ​ ‍ ‍ ‍ ​ ‍ 关于Mybatis 简介 MyBatis 是一款流行的 Java 持久层框架&#xff0c;旨在简化 Java 应用程序与数…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...