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

ubuntu系统做网站/全网搜索指数查询

ubuntu系统做网站,全网搜索指数查询,枣阳市建设局网站,网站建设公司哪家好 在线磐石网络目录 Java程序设计课程设计 游戏管理系统 1系统简介 1.1需求分析 1.2 编程环境与工具 2系统总体设计 2.1 系统的功能模块图。 2.2 各功能模块简介。 3主要业务流程 (1)用户及管理员登录流程图 (2)信息添加流程 &#x…

目录

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开发技术及实例详解》。清华大学出版社。

完整源码:

相关文章:

游戏管理系统

目录 Java程序设计课程设计 游戏管理系统 1系统简介 1.1需求分析 1.2 编程环境与工具 2系统总体设计 2.1 系统的功能模块图。 2.2 各功能模块简介。 3主要业务流程 &#xff08;1&#xff09;用户及管理员登录流程图 &#xff08;2&#xff09;信息添加流程 &#x…...

坐牢第二十七天(聊天室)

基于UDP的网络聊天室 一.项目需求&#xff1a; 1.如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息 2.如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信息 3.如果有人下线&#xff0c;其他用户可以收到这个人的下线信息 4.服务器可以发送系统信息…...

C++自学笔记33(数据类型总结与变量)

数据类型 类型位范围char1 个字节-128 到 127 或者 0 到 255unsigned char1 个字节0 到 255signed char1 个字节-128 到 127int4 个字节-2147483648 到 2147483647unsigned int4 个字节0 到 4294967295signed int4 个字节-2147483648 到 2147483647short int2 个字节-32768 到…...

游戏引擎phaser.js3的使用之玩家和静态物理组碰撞

玩家和静态物理组都加载好了&#xff0c;那就应该开始操作玩家动态和静态之间的碰撞了 下面是通过点击图片按钮来操作碰撞的 sky.on(pointerdown, function () { console.log(图片被点击了&#xff01;); }) 图片点击后让动态的玩家和静态的物理组碰撞&#xff0c;就可以这…...

springboot整合mybatis以及mybatis-plus 开发

一、springboot整合mybatis 1.注解版 1.1 导入坐标 <dependencies><!--mybatis坐标--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</…...

大语言模型微调框架Unsloth:简化模型微调流程,提升模型性能

Unsloth 将 Llama-3、Mistral、Phi-3 和 Gemma 等大型语言模型的微调速度提高了 2 倍&#xff0c;内存使用量减少了 70%&#xff0c;而且准确性不会降低&#xff01; 特点 通过手动派生所有计算繁重的数学步骤和手写 GPU 内核&#xff0c;unsloth 可以在不更改任何硬件的情况…...

IPD-华为研发之道分析与理解

关于西方众多优秀的管理模式、理论我们学习过&#xff0c;也借鉴以及实践过&#xff0c;拿到《IPD-华为研发之道》通读研习后&#xff0c;正如书中所述&#xff0c;IPD是一套产品开发的模式、理念与方法&#xff0c;IPD思想&#xff0c;流程和方法是诸多成功企业优秀实践的经验…...

时空序列顶会文章

ICLR 2024 时间序列&#xff08;Time Series&#xff09;高分论文 - 知乎 (zhihu.com) ICML2024全部论文 icml.cc/virtual/2024/papers.html...

C语言-使用指针数组作为函数参数,实现对10个字符串进行排序

使用指针数组作为函数参数&#xff0c;实现对10个字符串进行排序 1.输入 lisi hahaha hehehe helloa leihoua lisi nihaoa wangwu ajax bureau2.输出 ajax bureau hahaha hehehe helloa leihoua lisi lisi nihaoa wangwu3.程序&#xff1a; #define _CRT_SECURE_NO_WARNING…...

???ABC366:F - Maximum Composition(dp,无序:贪心排序)

问题陈述 给你 NN 个线性函数 f1,f2,…,fNf1​,f2​,…,fN​ &#xff0c;其中 fi(x)AixBifi​(x)Ai​xBi​ . 求由 KK 组成的序列 p(p1,p2,…,pK)p(p1​,p2​,…,pK​) 中 fp1(fp2(…fpK(1)…))fp1​​(fp2​​(…fpK​​(1)…)) 的最大可能值。介于 11 和 NN (含)之间的个不…...

unity项目打包为webgl后应用于vue项目中(iframe模式)的数据交互

参考文章&#xff1a; 1.Unity打包WebGL: 导入Vue 2.unity文档-WebGL&#xff1a;与浏览器脚本交互 3.unity与vue交互(无第三方插件&#xff09; 目录 一、前期工作1.新建.jslib文件2.新建.cs脚本3. 新建一个Text对象和button按钮对象4.添加脚本空对象UIEvent5.导出unity为w…...

【数据结构与算法 | 图篇】Bellman-Ford算法(单源最短路径算法)

1. 前言 前文的迪杰斯特拉算法不能求解有负边的图的最短路径的问题。而此文的Bellman-Ford可以处理含负权边的图算法&#xff0c;并且能检测出图中是否存在负环&#xff08;权重和为负数的环&#xff09;. 2. 基本思想 1. 初始化&#xff1a; 对于所有顶点 v ∈ V \ {s}&am…...

Python | Leetcode Python题解之第336题回文对

题目&#xff1a; 题解&#xff1a; class Solution:def palindromePairs1(self, words: List[str]) -> List[List[int]]:# 核心思想--枚举前缀和后缀# 如果两个字符串k1&#xff0c;k2组成一个回文字符串会出现三种情况# len(k1) len(k2),则需要比较k1 k2[::-1]# len(k1…...

C语言家教记录(六)

导语 本次授课的内容如下&#xff1a;指针&#xff0c;指针和数组 辅助教材为 《C语言程序设计现代方法&#xff08;第2版&#xff09;》 指针 指针变量 计算机按字节划分地址&#xff0c;每个地址访问一个字节 指针变量指向变量的地址&#xff0c;指的是变量第一个字节的…...

C++竞赛初阶L1-11-第五单元-for循环(25~26课)519: T454430 人口增长问题

题目内容 假设目前的世界人口有 x 亿&#xff0c;按照每年 0.1% 的增长速度&#xff0c;n 年后将有多少人&#xff1f; 输入格式 一行两个正整数 x 和 n&#xff0c;之间有一个空格。其中&#xff0c;1≤x≤100,1≤n≤100。 输出格式 一行一个数&#xff0c;表示答案。以亿…...

demo测试

目录 接口commonCodeGenerator entityuser mapperUserMapper controllerUserController serviceUserServiceimplUserServiceImpl mapper.xmlpom.xmlapplication.yml 接口 common CodeGenerator package com.llz.demo.common;import com.baomidou.mybatisplus.core.exceptions…...

TinTinLand Web3 + DePIN 共学月|深入探索 DePIN 项目,全景分析去中心化网络未来

「TinTinLand Web3 主题共学月」是由 TinTinLand 每月发起的主题学习活动&#xff0c;携手知名项目共同打造一个系统化、互动性强的学习平台&#xff0c;帮助开发者不断提升技能&#xff0c;紧跟 Web3 技术的前沿发展。活动通过演示视频、学习打卡、模拟环境、实际操作等多种方…...

Java并发编程(六)

1、java 中有几种方法可以实现一个线程 继承 Thread 类实现 Runnable 接口实现 Callable 接口&#xff0c;需要实现的是 call() 方法 2、如何停止一个正在运行的线程 使用共享变量的方式 在这种方式中&#xff0c;之所以引入共享变量&#xff0c;是因为该变量可以被多个执行…...

k8s对外服务之Ingress

目录 1.Ingress 简介 2.Ingress 组成 3.Ingress-Nginx 工作原理 4.部署 nginx-ingress-controller 5.总结 1.Ingress 简介 service的作用体现在两个方面&#xff0c;对集群内部&#xff0c;它不断跟踪pod的变化&#xff0c;更新endpoint中对应pod的对象&#xff0c;提供了…...

使用Python+moviepy在视频画面上绘制边框

一、 使用VideoFileClip对象的的fx函数设置vfx.margin&#xff0c;在视频画面上绘制边框 from moviepy.editor import * mvVideoFileClip(/home/Download/leaves.mp4) mv2mv.fx(vfx.margin,mar3,color(0,0,255),opacity0.5) # 绘制边框# mar3 &#xff1a;边框宽度3像素&#…...

灵办AI探索之旅:颠覆传统的代码开发工具

前言 灵办AI是一个先进的人工智能工具&#xff0c;专注于提高软件开发和项目管理的效率。其核心功能包括代码生成、优化、评估和自动化修复&#xff0c;旨在帮助开发者和团队提升开发速度和代码质量。 体验地址&#xff1a;https://ilingban.com/browser_extension/?fromjj …...

【Redis】Redis 数据类型与结构—(二)

Redis 数据类型与结构 一、值的数据类型二、键值对数据结构三、集合数据操作效率 一、值的数据类型 Redis “快”取决于两方面&#xff0c;一方面&#xff0c;它是内存数据库&#xff0c;另一方面&#xff0c;则是高效的数据结构。 Redis 键值对中值的数据类型&#xff0c;也…...

Tomcat初篇

目录 Tomcat主要特点Tomcat的核心组件Tomcat使用安装Tomcat配置Tomcat启动和停止Tomcat Tomcat工作原理目录结构配置文件性能优化策略 Tomcat Apache Tomcat是一个开源的Servlet容器和Web服务器&#xff0c;广泛用于运行基于Java的Web应用程序。它实现了Java Servlet和JavaSer…...

机器学习(2)-- KNN算法之手写数字识别

KNN算法 KNN&#xff08;K-Nearest Neighbor&#xff0c;K最近邻&#xff09;算法是一种用于分类和回归的非参数统计方法&#xff0c;尤其在分类问题中表现出色。在手写数字识别领域&#xff0c;KNN算法通过比较测试样本与训练样本之间的距离&#xff0c;找到最近的K个邻居&am…...

【机器人】关于钉钉机器人如何进行自定义开发问答【详细清晰】

目标&#xff1a;当用户输入问题并钉钉机器人&#xff0c;钉钉机器人进行相应的回答&#xff0c;达到一种交互问答的效果 开发文档参考&#xff1a;https://open.dingtalk.com/document/orgapp/robot-overview 首先进行登录企业&#xff0c;后面如果没有进行登录&#xff0c;会…...

Qt:exit,quit,close的用法及区别

前言 虽然能从单词的字面意思大致理解这些函数的意思&#xff0c;但是总感觉不出来它们的区别以及用法&#xff0c;特地去研究一下 正文 在 Qt 中&#xff0c;quit、exit 和 close 都是用于终止程序或关闭窗口的方法 1. QApplication::quit() 注意&#xff1a;注意quit() …...

Linux——进程地址空间

前言 在操作系统中&#xff0c;内存分为以下几个区域&#xff0c;从下往上按照从小到大排列 一、程序地址的分布 代码 #include <stdio.h> #include <stdlib.h> int noval; int val 1;int main(int argc,char*argv[],char*env[]){printf("code addr %p\n&q…...

信创(国产化)方案

信创 信创,即信息技术应用创新,旨在实现信息技术自主可控openEuler openEuler是一款开源、免费的操作系统,由openEuler社区运作,前身为运行在华为公司通用服务器上的操作系统EulerOS。openEuler作为一款开源、免费的操作系统,由开放原子开源基金会(OpenAtom Foundation)…...

EasyRecovery17中文版永久汉化版电脑数据恢复工具下载

&#x1f388;&#x1f389;安利时间到&#xff01;今天要跟大家分享的是——EasyRecovery17中文版的最新功能&#xff01;&#x1f389;&#x1f388; &#x1f31f;✨ “数据恢复小能手” ✨&#x1f31f; 让我来介绍一下这款软件的主打特点。 EasyRecovery17中文版是一款强…...

Cesium倾斜相机视角观察物体

先看效果&#xff1a; 在cesium中&#xff0c;我们有时需要倾斜相机视角去观察物体&#xff0c;如相机俯视45观察物体。 cesium的api提供了倾斜相机视角的配置&#xff0c;但是直接使用cesium的api不能达到我们想要的效果。 函数如下&#xff1a; function flyToBox() {let l…...