JSP-JDBC-设计一个简单的网上名片管理系统

news2025/1/24 8:42:48

需求:

1.设计一个简单的网上名片管理系统,实现名片的增、删、改、查等操作。该名片管理系统包括如下功能:

1)用户登录与注册

用户登录:在登录时,如果用户名和密码正确,进入系统页面。

用户注册:新用户应该先注册,然后再登录该系统。

2)名片管理

增加名片:以仿真形式(按常用的名片格式)增加名片信息。

修改名片:以仿真形式(按常用的名片格式)修改名片信息。

查询名片:以模糊查询方式查询名片。

删除名片:名片的删除由2种方式,即把名片移到回收站,把名片彻底删除。

3)回收站管理

还原:把回收站中的名片还原回收。

彻底删除:把名片彻底从回收站删除。

浏览/查询:可以模糊查询、浏览回收站中的名片。

实现步骤:

  1. 数据库设计

首先,需要设计数据库表的结构。根据需求,我们可以设计出如下的表结构: 

  • 用户表:user

  • 名片表:card

  • 回收站表:trash

 其中,user表、card表和trash表之间的关系是一对多的关系。

2.用户登录与注册

接下来,需要实现用户的登录和注册功能。可以通过如下方式来实现:

  • 用户登录

首先,创建一个login.jsp页面用于用户登录,其中包括用户名和密码的输入表单,以及登录按钮。在用户输入用户名和密码后,通过JDBC连接数据库,查询用户表中是否存在该用户名和密码。如果存在,则将用户信息保存到session中,并重定向到系统主页面;如果不存在,则返回错误信息。

下面是login.jsp的示例代码:

 

<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>用户登录 - 网上名片管理系统</title>
</head>
<body>
  <%
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    if (username != null && password != null) {
      // 检查用户是否存在
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE username='" + username + "' AND password='" + password + "'");
      if (rs.next()) {
        // 登录成功,保存用户信息到session并跳转到主页面
        int userId = rs.getInt("id");
        String createTime = rs.getString("create_time");
        session.setAttribute("userId", userId);
        session.setAttribute("username", username);
        session.setAttribute("createTime", createTime);
        response.sendRedirect("main.jsp");
      } else {
        // 用户名或密码错误,返回错误信息
        out.println("<p>用户名或密码错误,请重试。</p>");
      }

      rs.close();
      stmt.close();
      conn.close();
    }
  %>
  <form method="post" action="login.jsp">
    <table>
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="username" value="<%=request.getParameter("username")%>"></td>
      </tr>
      <tr>
        <td>密码:</td>
        <td><input type="password" name="password"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="登录"></td>
      </tr>
    </table>
  </form>
</body>
</html>
  • 用户注册

创建一个register.jsp页面用于用户注册,其中包括用户名和密码的输入表单,以及注册按钮。在用户输入用户名和密码后,通过JDBC连接数据库,插入新用户信息到用户表中,并重定向到用户登录页面。

下面是register.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>用户注册 - 网上名片管理系统</title>
</head>
<body>
  <%
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    if (username != null && password != null) {
      // 检查用户名是否已经被注册
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE username='" + username + "'");
      if (rs.next()) {
        // 用户名已经被注册,返回错误信息
        out.println("<p>该用户名已经被注册,请更换用户名再重试。</p>");
      } else {
        // 插入新用户信息到用户表中
        int rows = stmt.executeUpdate("INSERT INTO user (username, password, create_time) VALUES ('" +
            username + "', '" + password + "', NOW())");
        if (rows == 1) {
          // 注册成功,重定向到登录页面
          response.sendRedirect("login.jsp");
        } else {
          // 注册失败,返回错误信息
            out.println("<p>注册失败,请稍后再试。</p>");
}
}
  rs.close();
  stmt.close();
  conn.close();
}
%>
<form method="post" action="register.jsp">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" value="<%=request.getParameter("username")%>"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="注册"></td>
</tr>
</table>
</form>
</body>
</html>

3. 名片管理功能

完成用户登录和注册功能后,接下来需要实现名片的增加、编辑、删除和查询等功能。

- 名片增加 创建一个add_card.jsp页面用于添加新名片,其中包括姓名、公司名、职位名称、公司电话、手机号码、邮箱、办公地址和备注等输入表单,以及提交按钮。在用户提交表单后,通过JDBC连接数据库,插入新名片信息到名片表中,并重定向到系统主页面。

下面是add_card.jsp的示例代码:


<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>添加新名片 - 网上名片管理系统</title>
</head>
<body>
  <%
    int userId = (int) session.getAttribute("userId");
    String name = request.getParameter("name");
    String company = request.getParameter("company");
    String title = request.getParameter("title");
    String phone = request.getParameter("phone");
    String mobile = request.getParameter("mobile");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    String note = request.getParameter("note");

    if (name != null && company != null && title != null && phone != null && mobile != null && email != null && address != null) {
      // 插入新名片信息到名片表中
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      int rows = stmt.executeUpdate("INSERT INTO card (user_id, name, company, title, phone, mobile, email, address, note, discard, create_time, update_time) VALUES (" +
          userId + ", '" + name + "', '" + company + "', '" + title + "', '" + phone + "', '" + mobile + "', '" + email + "', '" + address + "', '" + note + "', 0, NOW(), NOW())");
      if (rows == 1) {
        // 添加名片成功,重定向到主页面
        response.sendRedirect("main.jsp");
      } else {
        // 添加名片失败,返回错误信息
        out.println("<p>添加名片失败,请稍后再试。</p>");
      }

      stmt.close();
      conn.close();
    }
  %>
  <h2>添加新名片</h2>
  <form method="post" action="add_card.jsp">
    <table>
      <tr>
        <td>姓名:</td>
        <td><input type="text" name="name"></td>
      </tr>
      <tr>
        <td>公司名:</td>
        <td><input type="text" name="company"></td>
      </tr>
      <tr>
        <td>职位名称:</td>
        <td><input type="text" name="title"></td>
      </tr>
      <tr>
        <td>公司电话:</td>
        <td><input type="text" name="phone"></td>
      </tr>
      <tr>
        <td>手机号码:</td>
        <td><input type="text" name="mobile"></td>
      </tr>
      <tr>
        <td>邮箱:</td>
        <td><input type="text" name="email"></td>
      </tr>
      <tr>
        <td>办公地址:</td>
        <td><input type="text" name="address"></td>
      </tr>
      <tr>
        <td>备注:</td>
        <td><textarea name="note"></textarea></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="提交"></td>
      </tr>
    </table>
  </form>
</body>
</html>
  • 名片编辑

创建一个edit_card.jsp页面用于编辑已有名片,其中包括姓名、公司名、职位名称、公司电话、手机号码、邮箱、办公地址和备注等输入表单,以及提交按钮。在用户提交表单后,通过JDBC连接数据库,更新名片表中对应的名片信息,并重定向到系统主页面。

下面是edit_card.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>编辑名片 - 网上名片管理系统</title>
</head>
<body>
  <%
    int userId = (int) session.getAttribute("userId");
    int cardId = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    String company = request.getParameter("company");
    String title = request.getParameter("title");
    String phone = request.getParameter("phone");
    String mobile = request.getParameter("mobile");
    String email = request.getParameter("email");
    String address = request.getParameter("address");
    String note = request.getParameter("note");

    if (name != null && company != null && title != null && phone != null && mobile != null && email != null && address != null) {
      // 更新名片信息到名片表中
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      int rows = stmt.executeUpdate("UPDATE card SET name='" + name + "', company='" + company + "', title='" + title + "', phone='" +
          phone + "', mobile='" + mobile + "', email='" + email + "', address='" + address + "', note='" + note + "', update_time=NOW() WHERE id=" + 
          cardId + " AND user_id=" + userId);
      if (rows == 1) {
        // 编辑名片成功,重定向到主页面
        response.sendRedirect("main.jsp");
      } else {
        // 编辑名片失败,返回错误信息
        out.println("<p>编辑名片失败,请稍后再试。</p>");
      }

      stmt.close();
      conn.close();
    } else {
      // 查询名片信息并显示到表单中
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM card WHERE id=" + cardId + " AND user_id=" + userId);
      if (rs.next()) {
        String cardName = rs.getString("name");
        String cardCompany = rs.getString("company");
        String cardTitle = rs.getString("title");
        String cardPhone = rs.getString("phone");
        String cardMobile = rs.getString("mobile");
        String cardEmail = rs.getString("email");
        String cardAddress = rs.getString("address");
        String cardNote = rs.getString("note");

        out.println("<h2>编辑名片</h2>");
        out.println("<form method=\"post\" action=\"edit_card.jsp?id=" + cardId + "\">");
        out.println("<table>");
        out.println("<tr><td>姓名:</td><td><input type=\"text\" name=\"name\" value=\"" + cardName + "\"></td></tr>");
        out.println("<tr><td>公司名:</td><td><input type=\"text\" name=\"company\" value=\"" + cardCompany + "\"></td></tr>");
        out.println("<tr><td>职位名称:</td><td><input type=\"text\" name=\"title\" value=\"" + cardTitle + "\"></td></tr>");
        out.println("<tr><td>公司电话:</td><td><input type=\"text\" name=\"phone\" value=\"" + cardPhone + "\"></td></tr>");
        out.println("<tr><td>手机号码:</td><td><input type=\"text\" name=\"mobile\" value=\"" + cardMobile + "\"></td></tr>");
        out.println("<tr><td>邮箱:</td><td><input type=\"text\" name=\"email\" value=\"" + cardEmail + "\"></td></tr>");
        out.println("<tr><td>办公地址:</td><td><input type=\"text\" name=\"address\" value=\"" + cardAddress + "\"></td></tr>");
        out.println("<tr><td>备注:</td><td><textarea name=\"note\">" + cardNote + "</textarea></td></tr>");
        out.println("<tr><td colspan=\"2\"><input type=\"submit\" value=\"提交\"></td></tr>");
        out.println("</table>");
        out.println("</form>");
      } else {
        out.println("<p>该名片不存在。</p>");
      }

      rs.close();
      stmt.close();
      conn.close();
    }
  %>
</body>
</html>
  • 名片删除

创建一个delete_card.jsp页面用于删除已有名片,其中包括确认信息和提交按钮。在用户提交表单后,通过JDBC连接数据库,将对应的名片信息移动到回收站表中,并重定向到系统主页面。

下面是delete_card.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>删除名片 - 网上名片管理系统</title>
</head>
<body>
  <%
    int userId = (int) session.getAttribute("userId");
    int cardId = Integer.parseInt(request.getParameter("id"));

    String confirm = request.getParameter("confirm");
    if (confirm != null && confirm.equals("yes")) {
      // 将名片信息移动到回收站表中
      String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
      String user = "root";
      String pass = "password";
      Connection conn = DriverManager.getConnection(url, user, pass);
      Statement stmt = conn.createStatement();
      int rows = stmt.executeUpdate("UPDATE card SET discard=1 WHERE id=" + cardId + " AND user_id=" + userId);
      if (rows == 1) {
        // 删除名片成功,重定向到主页面
        response.sendRedirect("main.jsp");
      } else {
        // 删除名片失败,返回错误信息
        out.println("<p>删除名片失败,请稍后再试。</p>");
      }

      stmt.close();
      conn.close();
    } else {
      out.println("<h2>确定要删除名片吗?</h2>");
      out.println("<form method=\"post\" action=\"delete_card.jsp?id=" + cardId + "\">");
      out.println("<input type=\"hidden\" name=\"confirm\" value=\"yes\">");
      out.println("<input type=\"submit\" value=\"确认\">");
      out.println("</form>");
      out.println("<p><a href=\"main.jsp\">取消</a></p>");
    }
  • 名片查询

创建一个search_card.jsp页面用于查询名片,其中包括姓名、公司名、职位名称、手机号码和邮箱等输入表单,以及提交按钮。在用户提交表单后,通过JDBC连接数据库,查询符合条件的名片信息,并将结果显示到页面上。

下面是search_card.jsp的示例代码:

<%@ page language="java" %>
<%@ page import="java.sql.*" %>

<html>
<head>
  <title>查询名片 - 网上名片管理系统</title>
</head>
<body>
  <%
    int userId = (int) session.getAttribute("userId");
    String name = request.getParameter("name");
    String company = request.getParameter("company");
    String title = request.getParameter("title");
    String mobile = request.getParameter("mobile");
    String email = request.getParameter("email");

    String sql = "SELECT * FROM card WHERE user_id=" + userId + " AND discard=0";
    if (name != null && !name.isEmpty()) {
      sql += " AND name like '%" + name + "%'";
    }
    if (company != null && !company.isEmpty()) {
      sql += " AND company like '%" + company + "%'";
    }
    if (title != null && !title.isEmpty()) {
      sql += " AND title like '%" + title + "%'";
    }
    if (mobile != null && !mobile.isEmpty()) {
      sql += " AND mobile like '%" + mobile + "%'";
    }
    if (email != null && !email.isEmpty()) {
      sql += " AND email like '%" + email + "%'";
    }

    String url = "jdbc:mysql://localhost:3306/cards?useSSL=false";
    String user = "root";
    String pass = "password";
    Connection conn = DriverManager.getConnection(url, user, pass);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);

    out.println("<h2>查询名片</h2>");
    out.println("<form method=\"get\" action=\"search_card.jsp\">");
    out.println("<table>");
    out.println("<tr><td>姓名:</td><td><input type=\"text\" name=\"name\" value=\"" + name + "\"></td></tr>");
    out.println("<tr><td>公司名:</td><td><input type=\"text\" name=\"company\" value=\"" + company + "\"></td></tr>");
    out.println("<tr><td>职位名称:</td><td><input type=\"text\" name=\"title\" value=\"" + title + "\"></td></tr>");
    out.println("<tr><td>手机号码:</td><td><input type=\"text\" name=\"mobile\" value=\"" + mobile + "\"></td></tr>");
    out.println("<tr><td>邮箱:</td><td><input type=\"text\" name=\"email\" value=\"" + email + "\"></td></tr>");
    out.println("<tr><td colspan=\"2\"><input type=\"submit\" value=\"查询\"></td></tr>");
    out.println("</table>");
    out.println("</form>");

    if (!rs.next()) {
      out.println("<p>没有符合条件的名片。</p>");
    } else {
      out.println("<table>");
      out.println("<tr><th>姓名</th><th>公司名</th><th>职位名称</th><th>手机号码</th><th>邮箱</th><th>操作</th></tr>");
      do {
        int cardId = rs.getInt("id");
        String cardName = rs.getString("name");
        String cardCompany = rs.getString("company");
        String cardTitle = rs.getString("title");
        String cardMobile = rs.getString("mobile");
        String cardEmail = rs.getString("email");

        out.println("<tr>");
        out.println("<td>" + cardName + "</td>");
        out.println("<td>" + cardCompany + "</td>");
        out.println("<td>" + cardTitle + "</td>");
        out.println("<td>" + cardMobile + "</td>");
        out.println("<td>" + cardEmail + "</td>");
        out.println("<td><a href=\"view_card.jsp?id=" + cardId + "\">查看</a> | <a href=\"edit_card.jsp?id=" + cardId + "\">编辑</a> | <a href=\"delete_card.jsp?id=" + cardId + "\">删除</a></td>");
        out.println("</tr>");
      } while (rs.next());
      out.println("</table>");
    }

    rs.close();
    stmt.close();
    conn.close();
  %>
</body>
</html>

以上就是名片管理系统的主要功能模块,可以依照这些代码进行开发和实现。当然,这只是一个简单的示例,你可以按照自己的需求进行扩展和改进。

对于名片管理系统的开发,以上代码提供了主要的功能模块,但具体实现需要结合你的具体需求进行开发和完善。以下是一些可能需要考虑的优化点:

  • 对输入的参数进行过滤和校验,防止SQL注入等漏洞。
  • 在查询名片时,使用分页功能,以减轻服务器压力和提高用户体验。
  • 在编辑和添加名片时,需要对输入的数据进行校验,例如,手机号码和邮箱地址的格式等,防止用户输入非法的数据。
  • 用户登录和注册功能,以及安全机制的设计和实现,例如,加密存储用户密码等。
  • 后台管理功能,例如,管理员可以对名片进行批量管理、查看统计信息等。

需要注意的是,以上优化点只是参考,具体还需要根据实际需求进行改进和完善。

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

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

相关文章

举一反三学python(11)—excel实例

一、乘法表写入EXCEL 想必大家对九九乘法表的代码记忆尤新&#xff1a;for i in range(1,10): # 9行 for j in range(1,i1): # 列数是动态变化的&#xff0c;是1-9列 print(f{j}x{i}{j*i},end\t) # 格式化输出并按制表位…

8脚语音芯片有什么特点?

一、8脚语音芯片指的是什么&#xff1f; 8脚语音芯片&#xff0c;顾名思义就是拥有8个脚的一颗芯片&#xff0c;8脚其实是指8引脚&#xff0c;而引脚又被叫做管脚。引脚就是指从集成电路&#xff08;芯片&#xff09;内部电路引出与外围电路的接线&#xff0c;引脚构成了这块芯…

如何使用YOLOv5的pycocotools进行coco指标评估

使用YOLOv5进行coco指标评估 1. 安装pycocotools2.重新排序并命名3. 将txt标签转换为json格式格式2. 生成json3. 测试是否正确4. 运行val.py完整版本&#xff08;一次运行所有&#xff09; 1. 安装pycocotools pip install pycocotools -i https:pypi.douban.com/simple2.重新…

HTML5 <meter> 标签、HTML5 <mark> 标签

HTML5 <meter> 标签 实例 使用 meter 元素展示给定的数据范围&#xff1a; <meter value"2" min"0" max"10">2 out of 10</meter><br> <meter value"0.6">60%</meter>尝试一下 浏览器支持 Fir…

【Python知识】2个特别好用的python模块(请收藏!)

文章目录 前言一、介绍二、FuzzyWuzzy库介绍2.1 fuzz模块2.2 简单匹配&#xff08;Ratio&#xff09;2.3 非完全匹配&#xff08;Partial Ratio&#xff09;2.3 忽略顺序匹配&#xff08;Token Sort Ratio&#xff09;2.4 去重子集匹配&#xff08;Token Set Ratio&#xff09;…

matlab数据归一化与反归一化处理

假如数据实际取值范围为 X i ∈ [ − π π ] , i 1 , 2 , 3 X_i \in [-\pi \ \ \pi], i1,2,3 Xi​∈[−π π],i1,2,3&#xff0c;变量服从正态分布 示例如下&#xff1a; %% 数据归一化处理及其概率密度函数 clear clc Mu [0 0 0]; % 均值 Sigma [1 1 1]; % 标准差 C…

EA使用教程

文章目录 创建新工程属性设置导出图片到剪切板时序图中取消消息后面自动生成的括号在文本框中回车取消流程图的背景渐变导出更清晰图片 创建新工程 1. 点击 FILE -> New Project 开始创建新工程 2. 为新工程命名 3. 选择模型 以下为常用设计模型&#xff1a; Business …

Java并发工具合集JUC大爆发

1. CountDownLatch CountDownLatch是一个同步计数器&#xff0c;初始化的时候 传入需要计数的线程等待数&#xff0c;可以是需要等待执行完成的线程数&#xff0c;或者大于 &#xff0c;一般称为发令枪。\ ​ countdownlatch 是一个同步类工具&#xff0c;不涉及锁定&#xff0…

我实现了一个乞丐版的评论功能

文章目录 设计评论功能0 设计初衷1 前端组建设计**设计原则****设计代码**组件核心代码**调用组建并给出mock数据****效果** 2 后端数据库设计3 后端接口设计4 前后端联调5 后端评论保存接口设计6 前端评论填写流程设计7 联调8 验证码美化 设计评论功能 0 设计初衷 经过长达八…

三百左右的蓝牙耳机哪个音质好?三百左右音质最好的蓝牙耳机推荐

在外出携带的数码产品中&#xff0c;蓝牙耳机的出现频率居高不下&#xff0c;一部手机&#xff0c;一副耳机已经成为不少人外出的标配。蓝牙耳机无外乎是用来听的&#xff0c;下面&#xff0c;我来给大家推荐几款三百左右音质好的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡…

LabVIEW-字符串与路径控件

在前面板中字符串与路径控件位于下图所示位置&#xff1a; 字符串输入和显示功能&#xff0c;是用户最常用的基本操作功能单击字符串控件&#xff0c;鼠标右键&#xff0c;选择“属性”可以对字符串控件的外观进行设置。显示样式有四种方式&#xff0c;即正常、反斜杠符号、密码…

家用洗地机好用吗?好用的洗地机分享

洗地机是一种高效、节能、环保的清洁设备&#xff0c;广泛应用于各种场所的地面清洁工作。它不仅可以快速清洁地面&#xff0c;还可以有效去除污渍、油渍等难以清洁的污染物&#xff0c;让地面恢复光洁如新的状态。同时&#xff0c;洗地机还可以减少清洁人员的劳动强度&#xf…

研读Rust圣经解析——Rust learn-10(泛型,trait,生命周期)

研读Rust圣经解析——Rust learn-10&#xff08;泛型&#xff0c;trait&#xff0c;生命周期&#xff09; 泛型应用泛型方法泛型结构体枚举泛型方法定义中的泛型 trait定义一个trait默认trait方法实现为结构体实现trait调用trait中实现的方法将trait作为参数trait bound多实现入…

2023年6月CDGP数据治理专家认证考试火热报名中

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

数据结构—单链表

目录 1.前言 2.了解单链表 3.单链表代码实现 3.1 单链表结构体实现 3.2 创建节点 3.3 打印单链表 3.4 尾插 3.5 头插 3. 6 头删 3.7 尾删 3.8 查找 3.9 插入 3.9.1 在pos位置之前插入 3.9.2 在pos位置之后插入&#xff08;主要使用这种功能&#xff09;---不需要找…

家用洗地机到底好不好用?家用洗地机分享

在当今社会&#xff0c;人们越来越关注卫生和清洁&#xff0c;这也促进了家庭和工作场所对清洁设备的需求。洗地机就是其中之一&#xff0c;它的高效和便捷性为我们提供了清洁和保洁的重要帮助。使用洗地机不仅能够卫生地保持地面清洁&#xff0c;而且可以节省时间和人力成本。…

拼多多的天天618,如何掀开电商营销的“皇帝新衣”?

电商价格战如火如荼&#xff0c;拼多多也在2023年4月正式启动“数码家电消费季”百亿补贴。 首季将在百亿补贴的基础上加码10亿&#xff0c;对手机、平板等各种数码家电&#xff0c;提供全品类补贴&#xff0c;苹果、华为、小米、美的等国内外各大品牌均会参与。拼多多相关负责…

安装虚拟机VMshare

前言&#xff1a;虚拟机必须在开机的状态下&#xff0c;而且互相需ping通&#xff0c;mobax才可以连接成功 一、下载VMsharePro软件 1、双击 安装程序&#xff1b; 2、按照步骤 点击一个个的“下一步” 3、安装完成之后&#xff0c;会要求你 输入许可证&#xff0c;这个可以…

【Redis】Redis十大数据类型—字符串String

介绍 获取命令地址 英文&#xff1a;https://redis.io/commands/ 中文&#xff1a;http://www.redis.cn/commands.html 字符串(string) 字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的&#xff0c;这意味着一个Redis字符串能包含任意类型的数据&#xff0c;例…

STM:基于Siamese编码器的时空混频器用于CT扫描肺结节生长趋势预测

文章目录 Siamese Encoder-based Spatial-Temporal Mixer for Growth Trend Prediction of Lung Nodules on CT Scans摘要方法Spatial-Temporal MixerTwo-Layer H-Loss 实验结果 Siamese Encoder-based Spatial-Temporal Mixer for Growth Trend Prediction of Lung Nodules on…