javaSwing宿舍管理系统(三个角色)

一、 简介

宿舍管理系统是一个针对学校宿舍管理的软件系统,旨在方便学生、宿管和管理员进行宿舍信息管理、学生信息管理以及宿舍评比等操作。该系统使用 Java Swing 进行界面设计,分为三个角色:管理员、宿管和学生。

二、 功能模块

2.1 管理员功能

学生信息管理: 管理员可以进行学生信息的添加、刷新、删除和查询操作。
宿舍信息管理: 管理员可以进行宿舍信息的刷新、删除和查询操作,以及添加新的宿舍信息。
宿舍评比: 管理员可以查看宿舍评比结果。
密码重置: 管理员可以重置管理员、宿舍和学生的密码。

2.2 宿管功能

学生信息查看: 宿管可以查看学生信息。
宿舍信息查看: 宿管可以查看宿舍信息。
宿舍评比: 宿管可以对宿舍进行评比,并提交评比结果。
密码修改: 宿管只可以修改自己的密码。

2.3 学生功能

个人信息查看: 学生可以查看自己的个人信息。
宿舍信息查看: 学生可以查看自己所在宿舍的信息。
宿舍评比: 学生可以参与宿舍评比。
密码修改: 学生只可以修改自己的密码。

三、 技术实现

该系统使用 Java Swing 实现界面设计,使用 Java 编程语言实现后端逻辑。数据库可以采用 MySQL 或其他关系型数据库来存储学生、宿舍和评比等信息。使用 JDBC 连接数据库进行数据的增删改查操作。同时,可以使用密码加密算法对密码进行加密存储,增强安全性。

四、数据库分析

1.1 dorm 表:

dorm_id:宿舍号,char(10),主键。
bed_num:床位数,int(2)。
people_num:人数,int(2)。

1.2 grade 表:

grade_id:评分编号,int(10),自增主键。
dorm_id:宿舍号,char(10),外键,关联到 dorm 表的 dorm_id。
discipline:纪律分,int(3)。
checks:考勤分,int(3)。
health:卫生分,int(3)。
grade:总分,int(3)。
dates:评分时间,date。
managers_id:评分人员ID,int(11),外键,关联到 managers 表的 manager_id。

1.3 lived 表:

student_id:学号,int(11),外键,关联到 students 表的 student_id。
dorm_id:宿舍号,char(10),外键,关联到 dorm 表的 dorm_id。
bed_id:床号,int(1)。
livingdate:入住时间,date。

1.4 managers 表:

manager_name:姓名,char(20)。
manager_id:员工号,int(11),主键。
contact:联系方式,char(11),唯一。

1.5 register 表:

identity:身份(0为管理员,1为宿管,2为学生),int(1)。
account:账号,int(15),主键。
password:密码,char(12)。

1.6 students 表:

name:姓名,char(10)。
sex:性别,char(2)。
birthday:出生日期,bigint(15)。
addresss:地址,char(20)。
contact:联系方式,char(11),唯一。
student_id:学号,int(9),主键。
college:学院,char(20)。
major:专业,char(20)。
classes:班级,char(10)。
dorm_id:宿舍号,char(10),外键,关联到 dorm 表的 dorm_id。
bed_id:床号,int(1)。
status:状态,smallint(1)。

五、程序截图

0.登录与接角色

请添加图片描述
请添加图片描述

1.管理员

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

2.宿管

请添加图片描述
请添加图片描述

3.学生

请添加图片描述
请添加图片描述

六、部分代码

Login.java

package System;import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.KeyStroke;import Control.RegisterControl;
import Model.RegisterModel;
import Operation.StudentsOperation;
import TableStudent.PersonInformation;@SuppressWarnings("serial")
public class Login extends JFrame implements ActionListener {Managers managers;public static JTextField text1;JPasswordField text2 = new JPasswordField();private JButton enter = new JButton("登   录");Font butfont = new Font("宋体", Font.BOLD, 20);private JFrame frame = new JFrame();private JPanel jpl = new JPanel();JComboBox comboBox;@SuppressWarnings("unchecked")public Login() {JLabel label0 = new JLabel("宿舍管理系统");label0.setBounds(80, 25, 150, 50);label0.setFont(new Font("华文彩云", Font.BOLD, 23));frame.add(label0);JLabel lab1 = new JLabel("身份:");jpl.add(lab1);lab1.setBounds(20, 75, 100, 50);lab1.setFont(new Font("隶书", Font.BOLD, 18));comboBox = new JComboBox();comboBox.setBounds(70, 87, 150, 30);comboBox.addItem("管理员");comboBox.addItem("宿管");comboBox.addItem("学生");comboBox.setFont(new Font("华文行楷", Font.PLAIN, 20));jpl.add(comboBox);// 标签JLabel label2 = new JLabel("账号:");label2.setBounds(20, 125, 100, 50);label2.setFont(new Font("隶书", Font.BOLD, 18));frame.add(label2);JLabel label3 = new JLabel("密码:");label3.setBounds(20, 175, 100, 50);label3.setFont(new Font("隶书", Font.BOLD, 18));frame.add(label3);JLabel label4 = new JLabel();label4.setText("<HTML><U>忘记密码?</U></HTMl>");label4.setBounds(225, 175, 100, 50);label4.setForeground(Color.BLUE);label4.setFont(new Font("黑体", Font.BOLD, 13));label4.setToolTipText("你是不是傻!!!密码都能忘???");label4.addMouseListener(new MouseListener() {public void mouseReleased(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseClicked(MouseEvent e) {JOptionPane.showMessageDialog(null, "请到管理处重置密码", "友情提示", JOptionPane.INFORMATION_MESSAGE);}});frame.add(label4);// 账号text1 = new JTextField();text1.setBounds(70, 137, 150, 30);text1.setFont(new Font("黑体", Font.BOLD, 18));frame.add(text1);// 密码text2.setBounds(70, 185, 150, 30);text2.setFont(new Font("", Font.BOLD, 24));text2.setEchoChar('*');frame.add(text2);// 背景JLabel label = new JLabel(new ImageIcon("image\\background.jpg"));label.setSize(300, 565);Image image = this.getToolkit().getImage("image\\icon.png");jpl.setLayout(null);jpl.add(enter);jpl.add(label);// 窗体frame.add(jpl);frame.setIconImage(image);frame.setTitle("登录");frame.setSize(300, 565);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setLocationRelativeTo(null);frame.setVisible(true);// 登录enter.setBounds(85, 300, 120, 40); // 设置按钮大小enter.setBackground(Color.WHITE);enter.setVisible(true);enter.setLayout(null);enter.setFont(butfont);enter.addActionListener(new ButtonListener());enter.registerKeyboardAction(new ButtonListener(), KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),JComponent.WHEN_IN_FOCUSED_WINDOW);}public static void main(String[] args) {new Login();}// 登录监听class ButtonListener implements ActionListener {public void actionPerformed(ActionEvent e) {RegisterControl r = new RegisterControl();RegisterModel rr = null;boolean bb = false;if (text1.getText().length() == 0 || text2.getText().length() == 0) {JOptionPane.showMessageDialog(null, "账号或密码为空", "系统提示", JOptionPane.ERROR_MESSAGE);return;} else {try {rr = r.get(Integer.parseInt(text1.getText()));} catch (NumberFormatException e1) {} catch (Exception e1) {return;}if (rr != null) {bb = rr.getPassword().equals(text2.getText());//System.out.println(rr.getPassword() + "数据库中的密码");} else {JOptionPane.showMessageDialog(null, "账号密码有误", "系统提示", JOptionPane.ERROR_MESSAGE);text1.setText(null);text2.setText(null);return;}if (bb) {
//					System.out.println(comboBox.getSelectedItem().toString().equals(rr.getIdentity()));if (comboBox.getSelectedIndex()==rr.getIdentity()){frame.dispose();if (comboBox.getSelectedIndex()==2) {new Students();PersonInformation.jpl.setVisible(true);} else if (comboBox.getSelectedIndex()==1) {new Managers();} else {new Administrator();}return;} else {JOptionPane.showOptionDialog(managers, "身份有误!!!", "提示", JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE, null, null, null);text2.setText(null);return;}}}JOptionPane.showMessageDialog(null, "账号密码有误", "系统提示", JOptionPane.ERROR_MESSAGE);text1.setText(null);text2.setText(null);}}public void actionPerformed(ActionEvent e) {}}

Managers.java

package System;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;import ButtonFrame.GradeRefer;
import TableManager.DormTable;
import TableManager.GradeTable;
import TableManager.PartStudentTable;@SuppressWarnings("serial")
public class Managers extends JFrame {private JPanel jpl = null;private MoveLabel label = null;JButton logout, exit;JLabel lab1, lab2, lab3, lab4, lab5;public Managers() {super("宿舍管理系统");jpl = new JPanel();label = new MoveLabel("欢迎登录宿舍管理系统                                                                                                    欢迎登录宿舍管理系统                                                                                                    欢迎登录宿舍管理系统");label.setOpaque(false); // 透明label.setFont(new Font("宋体", Font.BOLD, 20));label.setSize(1366, 20);label.setBackground(Color.cyan);lab1 = new JLabel("<HTML><U>学生信息</U></HTML>");lab1.setFont(new Font("华文楷体", Font.BOLD, 23));lab1.setBounds(35, 50, 100, 50);lab1.setForeground(Color.BLUE);lab1.addMouseListener(new MouseListener() {public void mouseClicked(MouseEvent e) {//System.out.println("按下");PartStudentTable.jp.setVisible(true);DormTable.jp.setVisible(false);GradeTable.jp.setVisible(false);lab1.setForeground(Color.RED);lab2.setForeground(Color.BLUE);lab3.setForeground(Color.BLUE);lab4.setForeground(Color.BLUE);lab5.setForeground(Color.BLUE);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}});lab2 = new JLabel("<HTML><U>宿舍信息</U></HTML>");lab2.setFont(new Font("华文楷体", Font.BOLD, 23));lab2.setBounds(35, 150, 100, 50);lab2.setForeground(Color.BLUE);lab2.addMouseListener(new MouseListener() {public void mouseClicked(MouseEvent e) {//System.out.println("按下");PartStudentTable.jp.setVisible(false);GradeTable.jp.setVisible(false);DormTable.jp.setVisible(true);lab1.setForeground(Color.BLUE);lab2.setForeground(Color.RED);lab3.setForeground(Color.BLUE);lab4.setForeground(Color.BLUE);lab5.setForeground(Color.BLUE);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}});lab3 = new JLabel("<HTML><U>宿舍评比</U></HTML>");lab3.setFont(new Font("华文楷体", Font.BOLD, 23));lab3.setBounds(35, 250, 100, 50);lab3.setForeground(Color.BLUE);lab3.addMouseListener(new MouseListener() {public void mouseClicked(MouseEvent e) {//System.out.println("按下");PartStudentTable.jp.setVisible(false);DormTable.jp.setVisible(false);GradeTable.jp.setVisible(true);lab1.setForeground(Color.BLUE);lab2.setForeground(Color.BLUE);lab3.setForeground(Color.RED);lab4.setForeground(Color.BLUE);lab5.setForeground(Color.BLUE);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}});lab4 = new JLabel("<HTML><U>评比提交</U></HTML>");lab4.setFont(new Font("华文楷体", Font.BOLD, 23));lab4.setBounds(35, 350, 100, 50);lab4.setForeground(Color.BLUE);lab4.addMouseListener(new MouseListener() {public void mouseClicked(MouseEvent e) {//System.out.println("按下");PartStudentTable.jp.setVisible(false);DormTable.jp.setVisible(false);GradeTable.jp.setVisible(false);new GradeRefer();lab1.setForeground(Color.BLUE);lab2.setForeground(Color.BLUE);lab3.setForeground(Color.BLUE);lab4.setForeground(Color.RED);lab5.setForeground(Color.BLUE);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}});lab5 = new JLabel("<HTML><U>修改密码</U></HTML>");lab5.setFont(new Font("华文楷体", Font.BOLD, 23));lab5.setBounds(35, 450, 100, 50);lab5.setForeground(Color.BLUE);lab5.addMouseListener(new MouseListener() {public void mouseClicked(MouseEvent e) {//System.out.println("按下");PartStudentTable.jp.setVisible(false);DormTable.jp.setVisible(false);GradeTable.jp.setVisible(false);new ChangePassword();lab1.setForeground(Color.BLUE);lab2.setForeground(Color.BLUE);lab3.setForeground(Color.BLUE);lab4.setForeground(Color.BLUE);lab5.setForeground(Color.RED);}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}});JLabel lab = new JLabel(new ImageIcon("image\\back.jpg"));jpl.add(lab);ImageIcon ilogout = new ImageIcon("image\\logout.png");logout = new JButton(ilogout);logout.setBounds(240, 550, 100, 45);logout.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getSource() == logout) {String[] options = new String[] { "是", "否" };int n = JOptionPane.showOptionDialog(null, "确定注销系统???", "提示", JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE, null, options, options[0]);// 点击是的话,注销if (n == JOptionPane.YES_OPTION) {setVisible(false);new Login();}}}});this.add(logout);ImageIcon ic = new ImageIcon("image\\exit.png");exit = new JButton(ic);exit.setBounds(820, 550, 100, 45);exit.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (e.getSource() == exit) {String[] options = new String[] { "是", "否" };int n = JOptionPane.showOptionDialog(null, "确定退出系统???", "提示", JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE, null, options, options[0]);// 点击是的话,直接退出if (n == JOptionPane.YES_OPTION) {setVisible(false);System.exit(0);}}}});this.add(exit);this.add(new PartStudentTable().getpanel());this.add(new DormTable().getpanel());this.add(new GradeTable().getpanel());this.add(lab1);this.add(lab2);this.add(lab3);this.add(lab4);this.add(lab5);this.add(label);this.add(jpl);Image image = this.getToolkit().getImage("image\\icon.png");this.setIconImage(image);this.setSize(960, 640); // 窗体的大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口this.setLocationRelativeTo(null);this.setVisible(true);}/*** 带有滚动效果的Label标签*/private class MoveLabel extends JLabel implements Runnable {private String text = null;private Thread thread = null;private int x = 0;private int w = 0, h = 0;public MoveLabel(String text) {super(text);this.text = text;thread = new Thread(this);thread.start();}public String getText() {return text;}public void setText(String text) {super.setText(text);this.text = text;}protected void paintComponent(Graphics g) {super.paintComponent(g);g.setColor(this.getBackground());g.fillRect(0, 0, w = this.getWidth(), h = this.getHeight());g.setColor(this.getForeground());g.setFont(this.getFont());g.drawString(text, x, h - 2);}public void run() {while (true) {x -= 2;if (x < -w) {x = w;}this.repaint();try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}}}}
}

七、联系与交流

q:969060742 完整代码、sql、文档、程序资源

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

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

相关文章

面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心

面向中文大模型价值观的评估与对齐研究&#xff1a;“给AI的100瓶毒药”并解毒&#xff0c;守护AI纯净之心 1.简介 随着Large Language Models&#xff08;LLMs&#xff09;的快速发展&#xff0c;越来越多的人开始担心它们可能带来风险。因此&#xff0c;围绕大模型的“安全…

Collection与数据结构 数据结构预备知识(一) :集合框架与时间空间复杂度

1.集合框架 1.1 什么是集合框架 Java集合框架,又被称为容器,是定义在java.util包下的一组接口和接口实现的一些类.其主要的表现就是把一些数据放入这些容器中,对数据进行便捷的存储,检索,管理.集合框架底层实现原理其实就是各种数据结构的实现方法,所以在以后的学习中,我们会…

QT(3/22)

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数&#xff0c;将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#…

StarRocks 助力金融营销数字化进化之路

作者&#xff1a;平安银行 数据资产中心数据及 AI 平台团队负责人 廖晓格 平安银行五位一体&#xff0c;做零售金融的领先银行&#xff0c;五位一体是由开放银行、AI 银行、远程银行、线下银行、综合化银行协同构建的数据化、智能化的零售客户经营模式&#xff0c;这套模式以数…

【Hadoop大数据技术】——Hadoop高可用集群(学习笔记)

&#x1f4d6; 前言&#xff1a;Hadoop设计之初&#xff0c;在架构设计和应用性能方面存在很多不如人意的地方&#xff0c;如HDFS和YARN集群的主节点只能有一个&#xff0c;如果主节点宕机无法使用&#xff0c;那么将导致HDFS或YARN集群无法使用&#xff0c;针对上述问题&#…

值得参考的golang语言开发规范:Uber Go 语言编码规范,一些优秀的技巧可以提升代码的质量、避免代码缺陷和bug漏洞

值得参考的golang语言开发规范&#xff1a;Uber Go 语言编码规范&#xff0c;一些优秀的技巧可以提升代码的质量、避免代码缺陷和bug漏洞。 Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司&#xff0c;也是 Go 语言的早期 adopter。其开源了很多 golang 项目&#xff0c;…

UE5 LiveLink 自动连接数据源,以及打包后不能收到udp消息的解决办法

为什么要自动连接数据源&#xff0c;因为方便打包后接收数据&#xff0c;这里我是写在了Game Instance,也可以写在其他地方&#xff0c;自行替换成Beginplay和Endplay 关于编辑器模式下能收到udp消息&#xff0c;打包后不能收到消息的问题有两点需要排查&#xff0c;启动打包后…

Jmeter脚本优化——CSV数据驱动文件

使用 CSV 数据文件设置实现参数化注册 1&#xff09; 本地创建 csv 文件&#xff0c;并准备要使用的数据&#xff0c;这里要参数化的是注册的用户名和邮箱。所以在 csv 文件中输入多组用户名和邮箱。 2&#xff09; 通过测试计划或者线程组的右键添加->配置元件->CSV…

亚信安慧AntDB解析:数据库技术的新里程碑

AntDB简化了开发运维&#xff0c;更提高了数据库的易用性。AntDB是一种创新的数据库管理系统&#xff0c;其设计理念旨在让用户能够更便捷地进行数据库操作&#xff0c;减少繁琐的配置和管理工作&#xff0c;提升工作效率。 通过AntDB&#xff0c;用户可以快速部署和管理数据库…

Py之scikit-learn-extra:scikit-learn-extra的简介、安装、案例应用之详细攻略

Py之scikit-learn-extra&#xff1a;scikit-learn-extra的简介、安装、案例应用之详细攻略 目录 scikit-learn-extra的简介 scikit-learn-extra的安装 scikit-learn-extra的案例应用 1、使用 scikit-learn-extra 中的 IsolationForest 模型进行异常检测 scikit-learn-extra…

探索网络深处:爬虫技术的奥秘

目录 引言1. 网络的庞大性与信息的丰富性2. 爬虫在收集和分析网络信息方面的重要作用 一、 什么是爬虫&#xff1f;二、爬虫的应用领域三、爬虫的工作流程四、爬虫技术所面临的挑战与解决方案五、爬虫技术设计的伦理与法律问题文末推荐 引言 网络是一个庞大而丰富的宇宙&#…

ChatGPT已成澳洲“懒学生”们最爱,各大学加强检查人工智能辅助作弊行为!

据报道&#xff0c;越来越多的学生开始使用人工智能来写作业&#xff0c;但各所大学也在加倍努力&#xff0c;想方设法将他们一网打尽。 ▲图片来源于网络 悉尼大学透露&#xff0c;2023年有330份作业是用人工智能完成的&#xff0c;而新南威尔士大学最近也表示&#xff0c;他…

【yolo算法水果新鲜程度检测】

Yolo&#xff08;You Only Look Once&#xff09;系列算法是一类流行的一阶段实时目标检测模型&#xff0c;在水果检测领域有着广泛的应用。因其高效性和实时性而受到青睐&#xff0c;可用于识别和定位图像中不同种类的水果以及水果的新鲜度。 YOLOv3 已被用于水果商品的检测分…

Java基础-正则表达式

文章目录 1.基本介绍2.正则底层实现1.matcher.find()完成的任务2.matcher.group(0)分析1.源代码2.解释&#xff08;不分组&#xff09;3.解释&#xff08;分组&#xff09; 3.总结 3.正则表达式语法1.基本介绍2.元字符的转义符号1.基本介绍2.代码实例 3.字符匹配符1.基本介绍2.…

HTML_CSS学习:表格、表单、框架标签

一、表格_跨行与跨列 1.相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格_跨行与跨列</title> </head> <body><table border"1" cellspacing"0&qu…

学员分享丨学习华为认证,为什么建议报班学习

我一直对计算机科学有着浓厚的兴趣&#xff0c;但在我遇见誉天教育之前&#xff0c;我只是独自摸索&#xff0c;没有明确的方向和方法。然而&#xff0c;在誉天教育&#xff0c;我找到了一个真正为学生着想的地方。这里有一支专业且热情的教师队伍&#xff0c;他们不仅在课堂上…

毕业设计:日志记录编写(3/17起更新中)

目录 3/171.配置阿里云python加速镜像&#xff1a;2. 安装python3.9版本3. 爬虫技术选择4. 数据抓取和整理5. 难点和挑战 3/241.数据库建表信息2.后续进度安排3. 数据处理和分析 3/17 当前周期目标&#xff1a;构建基本的python环境&#xff1a;运行爬虫程序 1.配置阿里云pytho…

【Postman】工具使用介绍

一、postman工具介绍 1.什么是postman postman是谷歌开发的一款网页调试和接口测试工具&#xff0c;能够发送任何请求类型的http请求&#xff0c;支持GET/POST/PUT/DELETE等方法。postman简单易用&#xff0c;可以直接填写URL&#xff0c;header&#xff0c;body就可以发送一…

训练自己的声音模型,效果超级逼真,最牛的开源声音克隆项目 GPT-SoVITS

GPT-SoVITS 是一个开源的声音克隆项目&#xff0c;可以训练自己的声音模型。 效果非常好&#xff0c;使用超级简单。 如果你有声音克隆的需求&#xff0c;必须要试试这个项目。 不说废话&#xff0c;直接看怎么训练自己的声音模型。 1. 安装 我的是Windows系统&#xff0c…

Linux中的常用基础操作

ls 列出当前目录下的子目录和文件 ls -a 列出当前目录下的所有内容&#xff08;包括以.开头的隐藏文件&#xff09; ls [目录名] 列出指定目录下的子目录和文件 ls -l 或 ll 以列表的形式列出当前目录下子目录和文件的详细信息 pwd 显示当前所在目录的路径 ctrll 清屏 cd…