游戏管理系统

目录

Java程序设计课程设计

游戏管理系统

1系统简介

1.1需求分析

1.2 编程环境与工具

2系统总体设计

2.1 系统的功能模块图。

2.2 各功能模块简介。

3主要业务流程

(1)用户及管理员登录流程图

(2)信息添加流程

(3)信息删除流程

4数据库的设计

4.1 概念数据库设计

1游戏实体E-R

4.2 逻辑数据库设计

5系统功能详细实现及效果图

(1) 首页

(2) 游戏管理

(3)游戏分类界面

4用户退出界面

(5)管理员登录成功界面

6功能典型代码

7总结

(1) 收获

(2) 不足及原因

8参考文献

1系统简介

本游戏管理维护系统旨在提供一个统一的平台,对多种游戏进行管理和维护。系统涵盖了游戏信息管理、用户管理、游戏数据统计等功能,方便游戏管理员对游戏进行有效的管理和监控。

1.1需求分析

1.系统架构:采用 B/S 架构,基于 JavaWeb 技术实现。

2.数据库设计:使用关系型数据库,如 MySQL 或 Oracle 等。

3.技术框架:Spring、Spring Boot、MyBatis 等。

1.2 编程环境与工具

根据本系统体系结构特点和使用本系统的用户特点,编程环境与工具的配置如表1-1所示:

表1-1 开发环境

Tab. 1-1 Development environment table

类别

标准配置

开发语言

Java

开发工具

IDEA

开发环境

JDK 8.0

服务器

Tomcat 8.0

数据库

MySql 5.6

数据库连接池

C3P0

前端框架

BootStrap

2系统总体设计

2.1 系统的功能模块图。

按照系统的分析,本系统采用基于B/S架构的系统,系统分为管理员和普通用户两种身份,其中普通用户可以管理个人用户信息,也可·以对是否携带游戏、体温、手机号、出发地、目的地等进行修改操作;系统的管理员需要先登录,然后才能使用系统的各项功能,会涉及相应的信息。

2.2 各功能模块简介。

用户信息管理模块包括用户登录、注册、退出、信息查询和修改功能。系统首页,登录界面的主要功能是让用户输入账号和密码。账号通常是用户在注册时填写的用户名、手机号码或电子邮箱,而密码是用户用于验证身份的秘密字符组合。不同的账号密码对应进入不同的界面,有不同的权限,实现不同的功能。在登录界面中,通常会有两个输入框,分别用于输入账号和密码。 输入框应该具有清晰的标签,以指导用户正确输入信息。

管理员信息管理模块包括管理员登录退出、信息修改及对普通用户的信息进行增删改查,可以实现数据库备份,为保证数据安全本系统采用了数据库备份功能;管理员系统它需要有效地提供疫情数据的收集、汇总、分析和展示等功能,为疫情防控工作提供科学依据和决策支持。

基础信息维护模块包括游戏类别设置、游戏信息添加、以及用户是否携带游戏。

3主要业务流程

(1)用户及管理员登录流程图

对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图3-1所示。

3-1登录流程图

Figure 3-1 Login Flowchart

(2)信息添加流程

对于疫情防控管理系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。

图3-2信息添加流程图

Figure 3-2 Information is added to the Flowchart

(3)信息删除流程

不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。

图3-3信息添加流程图

Figure 3-3 Information Deletion Flowchart

4数据库的设计

4.1 逻辑数据库设计

用表格列出表的结构及说明表中主要列的作用。

ID

名称

类型

是否主键

解释

1

btId

int

不能

编号

2

btName

varchar

不是主键

不能

名称

btDescription

varchar

不是主键

不能

信息

类型信息表用来存放游戏类型信息,用来存放游戏类别,游戏名称。

ID

名称

类型

是否主键

解释

1

bId

int

不能

编号

2

bgameName

varchar

不是主键

不能

名称

3

bAuthor

varchar

不是主键

不能

作者

4

bSex

varchar

不是主键

不能

是否收费

5

bPrice

float

不是主键

不能

定价

6

bgameDescription

varchar

不是主键

不能

信息

7

btId

int

不是主键

不能

类型id

游戏信息表用来存放游戏信息,包括编号、名称、作者。

5系统功能详细实现及效果图

  1. 首页

 

  1. 游戏管理

(3)游戏分类界面

这部分主要展示当前游戏信息详细介绍,让用户对游戏信息获取更加完善;如下图所示

将我们的信息进行一个输出,输出数据库中的内容可以通过编写查询语句来实现。首先,需要连接到数据库,并构建一个查询语句,以从数据库中检索所需的信息。然后,执行查询,获取结果集,并将结果集中的内容进行输出,可以是在控制台打印、在界面上展示或者写入文件等方式。在输出信息之前,可能需要对结果进行格式化或者加工,以便更好地呈现给用户或者其他系统进行处理。最后,确保输出的信息是准确的、完整的,并且符合预期的要求。

4用户退出界面

这一部分是用户退出登录界面。如下图所示:

将登录凭证转为失效状态通常需要在数据库中进行更新操作。首先,需要构建一个更新语句,将特定的登录凭证的状态字段设置为失效状态。然后,执行该更新语句,以确保数据库中的登录凭证状态已经被更新。在执行更新操作之前,可能需要进行一些验证,例如验证用户的身份或者权限,确保只有有权的用户才能进行这个操作。另外,还需要确保更新操作是安全的,不会对数据库中的其他数据产生影响。最后,可以通过查询操作来验证登录凭证的状态是否已经成功地被更新为失效状态。

(5)管理员登录成功界面

这是使用管理员的账号和密码进行登录之后的界面,这个界面可以对普通用户进行查询、修改和删除以及添加操作。

通过对dao的操作进行对表的增删改查。

6功能典型代码

根据SQL语句执行数据库的增删改操作

public class gameDao {

    public boolean dataChange(String sql) {

        Connection conn = null;

        Statement stmt = null;

        ResultSet rs = null;

        int num = 0;

        try {

            //获得数据的连接

            conn = JDBCUtils.getConnection();

            //获得Statement对象

            stmt = conn.createStatement();

            //发送SQL语句

            num = stmt.executeUpdate(sql);

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            JDBCUtils.release(rs, stmt, conn);

        }

        // 对受影响行数进行判断

        if (num > 0) {

            return true;

        } else {

            return false;

        }

    }

    /**

     * 操作结果:根据参数sql获取数据库记录数据

     *

     * @param sql SQL语句

     * @return List 返回包含记录Records对象的集合

     */

    public List getRecordsDataBySql(String sql) {

        Connection conn = null;

        Statement stmt = null;

        ResultSet rs = null;

        List list = new ArrayList();

        try {

            //获得数据的连接

            conn = JDBCUtils.getConnection();

            //获得Statement对象

            stmt = conn.createStatement();

            //发送SQL语句

            rs = stmt.executeQuery(sql);

            while (rs.next()) {

                gameBean gameBean = new gameBean();

                // 索引是从1开始的

                gameBean.setgameId(rs.getInt(1));

                gameBean.setgameName(rs.getString(2));

                gameBean.setgameAuthor(rs.getString(3));

                gameBean.setgameAuthorSex(rs.getString(4));

                gameBean.setgamePrice(rs.getFloat(5));

                gameBean.setgameDescription(rs.getString(6));

                gameBean.setgameTypeId(rs.getString(7));

                list.add(gameBean);

            }

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            JDBCUtils.release(rs, stmt, conn);

        }

        return list;

    }

    /**

     * 操作结果:将集合转换成数组

     *

     * @param list 集合

     * @return String[][] 二维数组

     */

    public String[][] ListToArray(List<gameBean> list) {

        String[][] array = new String[list.size()][7];

        for (int i = 0; i < list.size(); i++) {

            gameBean l = list.get(i);

            array[i][0] = String.valueOf(l.getgameId());

            array[i][1] = l.getgameName();

            array[i][2] = l.getgameAuthor();

            array[i][3] = l.getgameAuthorSex();

            array[i][4] = String.valueOf(l.getgamePrice());

            array[i][5] = l.getgameDescription();

            array[i][6] = l.getgameTypeId();

        }

        return array;

    }

}

游戏面板

  gameAddPanel() {

        // 为游戏添加面板添加控件内容

        this.add(creategameAddBox());

        // 批量为按钮设置图标

        componentTools.setIcons(new JButton[]{addButton, resetButton}, new String[]{"src/gameManageSystem/images/add" +

                ".png", "src/gameManageSystem/images/reset.png"});

        // 游戏类别查询SQL

        String getgameTypeSQL = "select * from game_type";

        // 获取所有的游戏类别数据

        List gameTypeList = new gameTypeDao().getRecordsDataBySql(getgameTypeSQL);

        // 获取所有的游戏类别名称

        String[] typeNames = new String[gameTypeList.size()];

        for (int i = 0; i < gameTypeList.size(); i++) {

            gameTypeBean gameTypeBean = (gameTypeBean) gameTypeList.get(i);

            typeNames[i] = gameTypeBean.getgameTypeName();

        }

        // 初始化下拉列表框中的选项

        componentTools.addComboBoxItems(gameTypeComboBox, typeNames);

        // 为按钮注册事件监听器

        addButton.addActionListener(this);

        resetButton.addActionListener(this);

    }

    /**

     * 游戏添加面板的内容控件

     *

     * @return 返回一个Box

     */

    private Box creategameAddBox() {

        totalVBox = Box.createVerticalBox();

        funcationHBox = Box.createHorizontalBox();

        gameAddFuncationLabel = new JLabel("游戏添加功能");

        gameAddFuncationLabel.setFont(new Font("微软雅黑", Font.BOLD, 30));

        funcationHBox.add(gameAddFuncationLabel);

        totalVBox.add(funcationHBox);

        totalVBox.add(Box.createVerticalStrut(30));

        nameAndAuthorHBox = Box.createHorizontalBox();

        gameNameLabel = new JLabel("游戏名称:");

        gameNameTextField = new JTextField(10);

        gameAuthorLabel = new JLabel("游戏公司:");

        gameAuthorTextField = new JTextField(10);

        nameAndAuthorHBox.add(gameNameLabel);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(40));

        nameAndAuthorHBox.add(gameNameTextField);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(40));

        nameAndAuthorHBox.add(gameAuthorLabel);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(40));

        nameAndAuthorHBox.add(gameAuthorTextField);

        totalVBox.add(nameAndAuthorHBox);

        totalVBox.add(Box.createVerticalStrut(30));

        sexAndPriceHBox = Box.createHorizontalBox();

        authorSexLabel = new JLabel("游戏类型:");

        Box sexHBox = Box.createHorizontalBox();

        femaleRadioButton = new JRadioButton("收费");

        maleRadioButton = new JRadioButton("免费");

        sexHBox.add(femaleRadioButton);

        sexHBox.add(maleRadioButton);

        radioButtonGroup = new ButtonGroup();

        radioButtonGroup.add(femaleRadioButton);

        radioButtonGroup.add(maleRadioButton);

        gamePriceLabel = new JLabel("游戏库存:");

        gamePriceTextField = new JTextField(5);

        sexAndPriceHBox.add(authorSexLabel);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(50));

        sexAndPriceHBox.add(sexHBox);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(100));

        sexAndPriceHBox.add(gamePriceLabel);

        nameAndAuthorHBox.add(Box.createHorizontalStrut(10));

        sexAndPriceHBox.add(gamePriceTextField);

        totalVBox.add(sexAndPriceHBox);

        totalVBox.add(Box.createVerticalStrut(30));

        typeHBox = Box.createHorizontalBox();

        gameTypeLabel = new JLabel("游戏类别:");

        // 实例化下拉列表框控件

        gameTypeComboBox = new JComboBox();

        typeHBox.add(gameTypeLabel);

        typeHBox.add(Box.createHorizontalStrut(40));

        typeHBox.add(gameTypeComboBox);

        totalVBox.add(typeHBox);

        totalVBox.add(Box.createVerticalStrut(30));

        descriptionHBox = Box.createHorizontalBox();

        descriptionLabel = new JLabel("游戏描述:");

        descriptionTextArea = new JTextArea(10, 40);

        descriptionHBox.add(descriptionLabel);

        descriptionHBox.add(Box.createHorizontalStrut(40));

        descriptionHBox.add(descriptionTextArea);

        totalVBox.add(descriptionHBox);

        totalVBox.add(Box.createVerticalStrut(30));

        buttonHBox = Box.createHorizontalBox();

        addButton = new JButton("添加");

        resetButton = new JButton("重置");

        buttonHBox.add(addButton);

        buttonHBox.add(Box.createHorizontalStrut(80));

        buttonHBox.add(resetButton);

        totalVBox.add(buttonHBox);

        return totalVBox;

    }

    @Override

    public void actionPerformed(ActionEvent e) {

        // “添加”按钮的事件处理

        if (e.getSource() == addButton) {

            // 获取用户输入的游戏名称

            String name = gameNameTextField.getText();

            // 获取用户输入的游戏公司名字

            String author = gameAuthorTextField.getText();

            // 获取用户选择的游戏公司的性别

            String sex = "";

            if (maleRadioButton.isSelected()) {

                sex = maleRadioButton.getText();

            } else if (femaleRadioButton.isSelected()) {

                sex = femaleRadioButton.getText();

            }

            // 获取用户输入的游戏库存

            String price = gamePriceTextField.getText();

            // 获取用户选择的游戏类别

            String type = (String) gameTypeComboBox.getModel().getSelectedItem();

            // 获取用户输入的游戏描述

            String description = descriptionTextArea.getText();

            // 组装游戏类别SQL

            String gameTypeSQL = "select * from game_type where btName='" + type + "';";

            // 根据用户选择的游戏类别进行查询

            List gameTypeList = new gameTypeDao().getRecordsDataBySql(gameTypeSQL);

            // 获取查询结果

            gameTypeBean gameTypeBean = (gameTypeBean) gameTypeList.get(0);

            // 获取用户选择的游戏类别的id号

            int gameTypeId = gameTypeBean.getgameTypeId();

            // 组装新增SQL语句

            String sql =

                    "insert into game(bgameName, bAuthor, bSex, bPrice, bgameDescription, btId) values('" + name + "'," +

                            "'" + author + "','" + sex + "'," + price + ",'" + description + "'," + gameTypeId + ");";

            // 执行SQL并获取操作结果

            boolean isOK = new gameDao().dataChange(sql);

            // 对添加结果进行判断

            if (isOK) {

                // 添加成功则重置用户输入,并弹出提示框

                componentTools.reset(gameNameTextField, gameAuthorTextField, gamePriceTextField, descriptionTextArea);

                componentTools.reset(radioButtonGroup);

                componentTools.reset(gameTypeComboBox);

                JOptionPane.showMessageDialog(null, "添加成功!");

            } else {

                // 添加失败也弹出提示框

                JOptionPane.showMessageDialog(null, "添加失败!");

            }

        }

        // “重置”按钮的事件处理

        if (e.getSource() == resetButton) {

            // 重置用户输入和选择

            componentTools.reset(gameNameTextField, gameAuthorTextField, gamePriceTextField, descriptionTextArea);

            componentTools.reset(radioButtonGroup);

            componentTools.reset(gameTypeComboBox);

        }

    }

}

连接JDBC类

public class JDBCUtils {

    /**

     * 加载驱动,并建立数据库连接

     *

     * @return 返回数据库连接

     * @throws SQLException           抛出SQLException

     * @throws ClassNotFoundException 抛出ClassNotFoundException

     */

    public static Connection getConnection() throws SQLException, ClassNotFoundException {

        // 设置数据库驱动

        Class.forName("com.mysql.jdbc.Driver");

        // 数据库链接URL及数据库名称

        String url = "jdbc:mysql://localhost:3366/gamesys?useUnicode=true&characterEncoding=utf8&useSSL=false";

        // 登录账户名

        String username = "root";

        // 登录账户密码

        String password = "root";

        // 创建连接

        Connection conn = DriverManager.getConnection(url, username, password);

        return conn;

    }

    /**

     * 关闭数据库连接,释放资源

     *

     * @param stmt Statement对象

     * @param conn Connection对象

     */

    public static void release(Statement stmt, Connection conn) {

        if (stmt != null) {

            try {

                stmt.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

            stmt = null;

        }

        if (conn != null) {

            try {

                conn.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

            conn = null;

        }

    }

    /**

     * 关闭数据库连接,释放资源

     *

     * @param rs   ResultSet对象

     * @param stmt Statement对象

     * @param conn Connection对象

     */

    public static void release(ResultSet rs, Statement stmt, Connection conn) {

        if (rs != null) {

            try {

                rs.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

            rs = null;

        }

        release(stmt, conn);

    }

}

7总结

  1. 收获

本游戏管理维护系统为游戏管理员提供了一个便捷的工具,方便对游戏进行管理和维护。通过本系统,帮助管理员及时发现并解决游戏中出现的问题。系统还支持多种数据分析和报表生成功能,帮助管理员深入了解游戏运营情况,及时调整策略和优化运营方案。同时,系统还提供了用户反馈和投诉处理模块,帮助管理员及时处理用户反馈和投诉,提升用户满意度和游戏口碑。总之,本游戏管理维护系统为游戏管理员提供了全方位的管理工具,帮助他们更好地管理和运营游戏,提升游戏的竞争力和用户体验。

  1. 不足及原因

然而,Javaweb游戏系统也存在一些不足之处。首先,系统的安全性有待加强,存在一定的安全漏洞和风险,需要进一步加强系统的安全防护措施。其次,系统的游戏内容和功能还有待丰富和完善,此外,系统的用户体验和界面设计也需要进一步改进,以提升用户的操作便利性和游戏体验。另外,系统的数据备份和恢复功能也需要加强,以防止数据丢失和系统故障。最后,系统的跨平台兼容性和移动端适配性也需要进一步提升,以满足不同用户群体的需求。综上所述,Javaweb游戏系统虽然已经提供了便捷的管理工具,但仍然需要在安全性、功能完善性、性能优化等方面进行进一步改进和提升。

8参考文献

[1]李洋,张华(2018)。基于Java的Web游戏管理系统的设计与实现。2018年第四届国际控制、自动化和机器人技术会议(ICCAR)论文集,368-372页。

[2]王勇,陈瑜(2017)。基于Java EE的Web游戏管理系统的研究与实现。2017年第三届国际控制、自动化和机器人技术会议(ICCAR)论文集,464-468页。

[3]刘敏,王亮(2016)。基于Java的Web游戏管理系统的设计与实现。2016年第三届国际信息科学和控制工程会议(ICISCE)论文集,1080-1083页。

[4]郭军,陈华(2015)。基于Java的Web游戏管理系统的研究与实现。2015年第七届智能人机系统与控制技术国际会议(IHMSC)论文集,233-236页。

[5]梁山(2018)。《Java Web开发技术及实例详解》。清华大学出版社。

[6]王静,吴立(2015)。《Java Web开发技术及实例详解》。清华大学出版社。

完整源码:

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

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

相关文章

即插即用的3D神经元注意算法

在快速发展的人工智能领域&#xff0c;科技的进步往往源于对复杂问题的突破性解决方案。如今&#xff0c;我们正站在一种激动人心的技术创新的前沿——即插即用的3D神经元注意算法。这一前沿技术不仅为计算神经科学提供了全新的视角&#xff0c;也为人工智能的未来打开了新的大…

Python教程(十四):Requests模块详解

目录 专栏列表前言&#xff1a;安装 Requests查看包安装情况&#xff1a; RESTful 介绍RESTful API设计原则示例 基本用法1. 查询ID为1的用户&#xff08;GET&#xff09;2. 创建新用户&#xff08;POST&#xff09;3. 更新ID 为 1 的用户&#xff08;PUT&#xff09;4. 删除ID…

18. 基于ES实战海量数据检索

18. 基于ES实战海量数据检索 一. 概述二. Elasticsearch 全文检索1. 分布式搜索引擎2. 搜索引擎种类3. 倒排索引三. elastic使用1. 官网介绍2. docker安装3. elasticsearch-head工具4. 分词与内置分词4.1 内置分词器(了解即可)4.2 `IK`中文分词器三. 整合SpringCloud1. 基础配置…

计算函数(c语言)

1.描述 //小乐乐学会了自定义函数&#xff0c;BoBo老师给他出了个问题&#xff0c;根据以下公式计算m的值。 // //其中 max3函数为计算三个数的最大值&#xff0c;如&#xff1a; max3(1, 2, 3) 返回结果为3。 //输入描述&#xff1a; //一行&#xff0c;输入三个整数&#xff…

视频汇聚/安防综合管理系统EasyCVR非管理员账户能调用分配给其他用户的通道是什么原因?

视频汇聚/安防综合管理系统EasyCVR视频监控平台&#xff0c;作为一款智能视频监控综合管理平台&#xff0c;凭借其强大的视频融合汇聚能力和灵活的视频能力&#xff0c;在各行各业的应用中发挥着越来越重要的作用。平台不仅具备视频资源管理、设备管理、用户管理、网络管理和安…

超精细CG杰作:8K壁纸级官方艺术插画,展现极致美丽与细节的汉服女孩

极致精美的数字艺术杰作&#xff1a;8K壁纸级别的官方插画&#xff0c;展现超高清细节与和谐统一的美感&#xff0c;女孩的精致面容与眼神在光影下熠熠生辉&#xff0c;汉服主题下的超高分辨率作品&#xff0c;文件巨大&#xff0c;细节丰富&#xff0c;令人惊叹。 正向提示词…

Android gradle 构建

Understanding Tasks - Gradle task kapt 是 Kotlin 语言的注解处理器&#xff0c;它是 Android Studio 中用于处理 Kotlin 注解的工具。它通过在编译期间生成代码来增强 Kotlin 代码的功能。需要 Kotlin 编译器来解析和处理注解&#xff1b;使用 APT 来生成代码&#xff0c…

【初阶数据结构】链表(附题)

目录 一、顺序表的问题及思考 二、单链表 2.1链表的概念及结构 2.2.单链表的实现 2.2.1.节点的定义 2.2.2.链表的打印 2.2.3.头部插入删除/尾部插入删除 a.创建节点 b.尾插 c.头插 d.尾删 e.头删 2.2.4.查找数据 2.2.5.在指定位置之前插入数据 2.2.6删除pos节点 …

每日OJ_牛客_DP3跳台阶扩展问题

目录 DP3跳台阶扩展问题 题解代码1&#xff08;dp&#xff09; 题解代码2&#xff08;找规律&#xff09; DP3跳台阶扩展问题 跳台阶扩展问题_牛客题霸_牛客网 题解代码1&#xff08;dp&#xff09; 假定第一次跳的是一阶&#xff0c;那么剩下的是n-1个台阶&#xff0c;跳法…

矩阵中的最大得分(Lc3148)——动态规划

给你一个由 正整数 组成、大小为 m x n 的矩阵 grid。你可以从矩阵中的任一单元格移动到另一个位于正下方或正右侧的任意单元格&#xff08;不必相邻&#xff09;。从值为 c1 的单元格移动到值为 c2 的单元格的得分为 c2 - c1 。 你可以从 任一 单元格开始&#xff0c;并且必须…

Spring由哪些模块组成?

Spring由哪些模块组成&#xff1f; 简单描述则是主要由以下几个模块组成&#xff1a; Spring框架采用的是分层架构&#xff0c;它一系列的功能要素被分成20个模块&#xff0c;这些模块大体分为Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programmi…

Spring:IOC的详解☞Bean的实例化、Bean的生命周期

1、Bean基础配置 bean的基础配置&#xff1a; <bean id"" class""/> Bean的别名&#xff1a;name属性 Bean的作用范围&#xff1a;scope配置 使用bean的scope属性可以控制bean的创建是否为单例&#xff1a; singleton 默认为单例prototype 为非单…

ES6 (一)——ES6 简介及环境搭建

目录 简介 环境搭建 可以在 Node.js 环境中运行 ES6 webpack 入口 (entry) loader 插件 (plugins) 利用 webpack 搭建应用 gulp 如何使用&#xff1f; 简介 ES6&#xff0c; 全称 ECMAScript 6.0 &#xff0c;是 JavaScript 的下一个版本标准&#xff0c;2015.06 发版…

Python 如何创建和解析 XML 文件

XML&#xff08;可扩展标记语言&#xff09;是一种广泛使用的标记语言&#xff0c;主要用于存储和传输数据。它具有结构化、层次化的特点&#xff0c;常被用作数据交换格式。Python 提供了多种工具和库来处理 XML 文件&#xff0c;包括创建、解析和操作 XML 文档。 一、XML 简…

Ubuntu24.04使用SRS 搭建 RTMP流媒体服务器

一、简介 SRS(Simple Realtime Server)是一个简单高效的实时视频服务器&#xff0c; 是国人写的一款非常优秀的开源流媒体服务器软件&#xff0c;可用于直播/录播/视频客服等多种场景&#xff0c;其定位是运营级的互联网直播服务器集群。支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28…

手撕C++入门基础

1.C介绍 C课程包括&#xff1a;C语法、STL、高阶数据结构 C参考文档&#xff1a;Reference - C Reference C 参考手册 - cppreference.com cppreference.com C兼容之前学习的C语言 2.C的第一个程序 打印hello world #define _CRT_SECURE_NO_WARNINGS 1 // test.cpp // …

甄选系列“论软件开发过程RUP及其应用”,软考高级论文,系统架构设计师论文

论文真题 RUP(Rational Unified Process)是IBM公司的一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发。RUP汲取了各种面向对象分析与设计方法的精华,提供了一个普遍的软件过程框架,可以适应不同的软件系统、应用…

http request-02-Ajax XHR 的替代方案-fetch 标准

http 请求系列 http request-01-XMLHttpRequest XHR 简单介绍 http request-01-XMLHttpRequest XHR 标准 Ajax 详解-01-AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;入门介绍 Ajax XHR 的替代方案-fetch Ajax XHR 的替代方案-fetch 标准 Ajax 的替代方案…

06、stm32 引脚输入

一、配置 二、代码 /* USER CODE BEGIN WHILE */while (1){/** 引脚默认上拉 高电平 按键按下 读取到低电平* */if(HAL_GPIO_ReadPin(GPIOB,KEY_Pin) GPIO_PIN_RESET ){HAL_Delay(20);if(HAL_GPIO_ReadPin(GPIOB,KEY_Pin) GPIO_PIN_RESET ){HAL_GPIO_TogglePin(GPIOC,LED_P…