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

基于Java(Struts2 + Hibernate + Spring)+MySQL实现的(Web)在线预约系统

基于Struts2 + Hibernate + Spring的在线预约系统

1.引言

1.1编写目的

针对医院在线预约挂号系统,提供详细的设计说明,包括系统的需求、功能模块、界面设计、设计方案等,以辅助开发人员顺利进行系统的开发并让项目相关者可以对这个系统进行分析和评估。

1.2背景

在线预约挂号业务是近年来医疗机构和医疗卫生主管部门借助互联网+的东风而快速发展起来的一项新兴业务,该业务将医院传统的挂号业务与互联网技术相结合,是目前医疗信息化改革的重要内容之一。在线预约挂号能够有效地整合医疗资源,为医患双方都带来极大的好处:

对于患者而言,免去了医院现场挂号排队之苦,节省诊疗时间,能有效避免购买“号贩子”的高价“黄牛号”,节省诊疗费用,并且在就医之前就对医院、医生的基本情况有所了解,给患者带来很大的便利;

对于医院而言,能够减少挂号窗口的设置,减少挂号人员,提高了医院就诊效率,降低了日常运营和管理成本,避免挂号大厅出现人山人海的现象,美化整洁了医院环境,并能有效打击“号贩子”。

1.4术语定义及说明

1.OnlineBooking:医院在线预约挂号系统,本系统的英文名。

2.设计概述

2.1任务和目标

2.1.1需求概述

1.患者注册登陆

患者使用邮箱、密码注册成功后,便可以使用邮箱和密码登陆系统,只有患者成功注册后,才可以使用系统的在线挂号功能。

2.医院管理

能够支持多家医院。用户可以通过地区(省、市)来筛选特定地区的医院。点击某间医院链接后即可进入医院信息界面,该界面将会展示医院的图片,简介,地址,联系电话,营业时间,所开科室等详细信息。

3.科室管理

按医院:用户选好具体的医院后可在医院信息界面里选择特定的科室后即可进入科室信息界面,该界面将展示科室的介绍以及该医院本科室里的所有医生供患者选择;

按科室名:用户可以在系统主界面里通过搜索引擎或者导航搜索相应的科室,搜索结果以列表的形式展示所有包含该科室的医院。用户选好某一项进入医生管理界面选择医生。

4.医生管理、医生排班

用户在选好特定的科室后即可进入医生管理界面,该界面展示本科室中的所有医生的列表。列表的每一项包括医生的头像姓名,级别以及本周的排班情况。在排班情况这一栏中提供预约链接供用户进行在线挂号;点击医生的姓名即可进入医生的个人信息界面,该界面展示医生的姓名,头像,级别,评价,联系方式等详细信息以及医生的本周排班情况。

5.患者在线挂号

患者在医生管理界面或医生个人信息界面(成功登录的患者选择好医院、科室、医生)后通过点击预约链接即可进行在线挂号。患者可以查看挂号情况(有号/无号),选择就诊的时间段,确认账单后进入在线支付流程。

6.患者挂号账单管理

所有支付成功的挂号账单都可以在患者挂号账单管理界面里进行查看。账单分成已过期以及未过期两种。对已过期的账单只提供查看和删除操作,不予退单;而对未过期的账单(还未超过就诊时间段)提供查看和退单操作,只有当用户退单和在线退款完成后才可以删除该账单。

7.患者个人信息设置

患者可以查看个人信息(姓名、身份证号),编辑个人信息(性别、地址、联系方式),绑定支付宝账号(银行卡),为账户充值(该账户的余额可用于支付挂号费,并且用户在线退款的钱将默认转入该账户中)。

2.1.2运行需求

1.用户界面

用户界面简单直观,一目了然,给用户带来极大的便利,让用户能够简单直接的运用本系统

2.硬件接口

不需要特定的硬件或硬件接口进行支撑,一般微机均可运行。

3.软件接口

运行于Win7 或者更高版本的操作系统上。

2.1.3运行环境概述

Windows 7以上系统+Apache2.4+MySQL5.7+Chrome 浏览器

2.1.4条件与限制

基于开发资源和时间的限制,本套系统的用户只有患者这一类,关于医生管理以及医院的信息直接使用现成的数据,即并没有开发特定的界面给医生管理自己的排班等,而是一开始在数据里就为每个医生储存了不同的排班表,若想修改,只能通过后台MySQL操作。关于用户的账户余额的管理,只通过数据库的一个字段进行模拟管理,不涉及到真实的银行卡或支付宝操作。

2.1.5开发运行工具

Ø IDE: Eclipse MAR2.0 + MySQL Workbench

Ø Framework:Struts2.1 + Hibernate3.0 + Spring3.0 + JQuery1.11.3 + Bootstrap3.0 + Ajax

Ø Database:MySQL5.7

Ø Web Server:Apache Tomcat8.0

Ø Eclipse plugins:JBOSS(for Hibernate reverse tools)+XulRunner(for preview jsp files)

3.总体方案确认

3.1系统总体结构确认

系统的总体结构如图所示,整个系统采用SSH框架开发。

以下为对各个模块做简要介绍:

com.action : 各种action类的实现,主要对前台用户的请求进行处理,并且引用了com.service里所封装的服务对数据库进行操作;

com.dao : 数据库访问层,对表中的数据做增删改查(CRUD)的功能实现,需要引用com.model内的数据库模型;

com.model : POJO类,普通Java Bean,包含与数据库表一一对应的数据模型和getter、settter方法以及为了方便业务处理的用户自定义的模型;这一层里还包括Spring框架里使用的模型与Hibernate之间的映射文件(.hbm.xml)

com.service : 引用dao层,封装具体业务逻辑;

com.util : 工具类;

struts.xml : struts2配置文件,配置action的控制处理;

applicationContext.xml : spring配置文件,注入bean;

web.xml : web配置文件,配置struts2过滤器、监听器、欢迎界面、错误页面等;

index.jsp : 主页面jsp文件;

LICENSE : 项目使用协议;

README.md : 项目说明文档;

WebContent 目录下还将包含用于请求服务器和处理、展示服务器请求的各种.jsp文件,以及控制页面展示效果的CSS、JS文件和web应用所需要的图片资源等。

3.2系统详细界面划分

3.2.1应用系统与支撑系统的详细界面划分

l 支撑系统界面划分:SMTP邮件发送系统

在邮箱设置中开启SMTP服务器界面:

l 网络对应用系统的支撑方式:

1. cdn加载jquery js文件以及bootstrap等样式文件;

2. 发送用户注册激活邮件;

3. 更新spring schema。

l 数据库对应用系统的支撑方式:

用数据库驱动连接数据库,进行CRUD(增删改查操作)

l 全局数据的管理与存取方式:

在jsp页面session中存取

3.2.2系统内部详细界面划分

详细界面文件

功能说明

index.jsp

主页:引用top-navigation.jsp和footer.jsp;展示巨幕、找医院、找科室等div界面区域

top-navigation.jsp

顶部导航栏:含有主页、找医院、搜索、登录等按钮控件

footer.jsp

页脚:底部版权、友链等信息

404.html

页面无法找到:提供返回主页链接

error.jsp

Struts Action错误界面:提供返回主页链接

exception.jsp

Struts全局异常界面:提供返回主页链接

login.jsp

用户登陆:提供登陆表单填写;注册链接;忘记密码链接。

success.jsp

用户登陆成功:三秒自动跳转回主页

resetPassword.jsp

重置密码界面:有四个输入文本框:邮箱,旧密码,新密码,确认密码。

search_hospital.jsp

找医院界面:展示医院列表(每个医院只显示医院名称,地址,电话);底部有翻页按钮

hospital.jsp

某个医院界面:展示某医院详细信息(概览图片,地址,电话,简介,服务);门诊科室(预约规则,科室列表)

department.jsp

某个医院的某个科室界面:展示该科室名称;该科室所有医生排班信息表格(科室专家,擅长,医生服务,一周班情况);对于有医生排班的时间段(上午/下午),提供预约按钮链接,点击弹出“选择预约时间段”对话框。

“选择预约时间段”对话框

展示医生姓名;预约日期(格式:2016/06/15 周三);挂号费;时间(上午/下午);时间段单选按钮组:

l 若为上午,显示:

09:00-10:00 剩余票数,10:00-11:00 剩余票数,11:00-12:00 剩余票数;

l 若为下午,显示:

14:00-15:00 剩余票数,15:00-16:00 剩余票数。

预约成功后跳转到“个人信息“页面。

userinfo.jsp

个人信息页面:左侧含有四个栏目,自上而下是:未过期预约,已过期预约,账户设置,我的钱包;右侧是展示某个特定栏目具体内容的区域,刚进入个人信息界面时默认加载未过期预约栏目信息。

not_expired_order.jsp

未过期预约界面:展示未过期预约表格:流水号,用户名,医院地址,科室,医生名,预约时间,是否过期,操作(退订)。

expired_order.jsp

已过期预约界面:展示已过期预约表格:流水号,用户名,医院地址,科室,医生名,预约时间,是否过期,操作(删除)。

account.jsp

账户设置界面:顶部分为三栏:

l 帐号信息:

允许修改姓名、证件号、性别、出生日期、手机号码、邮箱地址字段

l 修改密码:

输入旧密码,新密码,再次输入新密码

l 修改头像:

上传本地头像图片

wallet.jsp

我的钱包界面:显示当前登录用户的钱包余额,有两个按钮:充值、提现。

4.系统详细设计

4.1系统结构设计及子系统划分

本套系统的面向用户为患者,整个系统的结构及子系统如图所示:

4.2系统功能模块详细设计

Ø 登录模块

描述:处理用户登陆逻辑

IPO图:

Ø 注册模块

描述:处理用户注册逻辑

IPO图:

Ø 找医院模块

描述:处理找医院逻辑

功能分析:用户通过点击主页所列举的医院链接跳转到特定的医院界面,医院界面展示医院的详细信息以及医院所具有的科室。主页上所展示的医院均由查找数据库获得,医院界面的信息由界面请求数据库或者直接从界面缓存获得。

Ø 找科室模块

描述:处理找科室逻辑

功能分析:用户通过点击主页所列举的科室链接跳转到特定的科室界面;或者点击医院信息界面所列举的科室链接直接进入科室界面。主页上所展示的科室均由查找数据库获得。科室界面里将展示科室的详细信息以及本科室具有的医生。

Ø 找医生模块

描述:处理找医生逻辑

功能分析:用户只有在确定好医院和科室的前提下才能找医生。用户可以点击科室界面查看该科室的所有医生。医生具有级别,挂号费等重要信息,根据医生的级别不同,挂号费也不同。找医生流程为:用户登陆→找医院→找科室→科室界面选择医生。

Ø 在线预约模块

描述:实现在线预约功能

功能分析:用户可查看医生的可预约的时间段已经剩余放号数,并进行点击预约。用户在线挂号预约流程:用户登陆→用户通过主页链接寻找医院/科室→在医生信息页面选择预约具体时间段进行预约→确认预约→模拟在线支付→预约完成。

输入:用户通过选好医生、预约时间段后点击确认将医生id、用户id、预约时间段提交到后台。

处理:(以下三点为一个事务,只允许全部成功或全部失败)

1.后台通过医生id查询医生的排班表,并根据用户的预约时间段把医生的该时间段放号数减1;

2.使用用户id 查询用户账户余额,若还有余额则扣取相应的挂号费,否则直接预约失败;

3.若第2步成功则往用户账单表新增一条订单记录。

输出:用户预约成功或者预约失败。

Ø 用户订单管理模块

描述:实现用户管理订单的功能

功能分析:用户可在订单管理界面进行订单的管理,包括查看所有订单,退单,删除过期订单。

Ø 删除管理模块

描述:实现用户删除订单的功能

功能分析:用户可在订单管理界面删除订单。注意:只有过期的订单才可以删除。过期的订单是指那些当前的时间已经超过用户所预约的看病时间的订单。

输入:用户选中要删除的订单,点击“删除”按钮把用户id、订单id提交到后台;

处理:后台通过用户id、订单号查到具体的订单,判断订单是否过期,过期则删除,否则提醒用户不可删除。

Ø 退单模块

描述:实现用户退单的功能

功能分析:用户可在订单管理界面进行退单。注意:只有仍未过期的订单才可以退单。未过期的订单是指那些当前的时间还没有超过用户所预约的看病时间的订单。已经过期的订单不可以退单。

输入:用户选中要取消的订单,点击“退订”按钮把用户id、订单id提交到后台;

处理:(以下三点为一个事务,只允许全部成功或全部失败)

1.后台通过用户id、订单号查到指定的订单,判断是否过期,如果过期,直接退单失败,否则进入退单流程。注意:以下三个流程为一个事务,只允许全部成功或全部失败;

2.通过查取订单信息里的医生id并通过医生id查询医生的排班表,并根据用户的预约时间段把医生的该时间段放号数加1;

3.使用用户id 查询用户账户余额,给账户余额加上挂号费;

4.把订单表的这条订单删除。

输出:用户成功取消订单并退费成功。

Ø 用户信息设置模块

描述:实现用户设置个人信息的功能

功能分析:用户在个人信息界面更新或设置邮箱,密码,性别,出生年月等。

输入:含更新内容的用户信息表单;

处理:后台更新用户表相应字段。

Ø 找回密码模块

描述:实现用户找回密码的逻辑

功能分析:用户在登陆界面点击“忘记密码”链接进入找回密码流程:用户点击忘记密码à输入邮箱帐号à系统发送重置密码邮件à用户登陆邮箱à点击链接à输入两次新密码à成功重置密码。

4.3系统界面详细设计

4.3.1外部界面设计

外部接口:

l 数据库连接:http://127.0.0.1:3306/onlinebooking

l SMTP邮件服务器:http://smtp.126.com:25 (说明:需要自行配置)

4.3.2内部界面设计

本系统的基本设计概念:MVC开发模式, Struts进行流程控制,Spring进行业务流转,Hibernate进行数据封装。

l struts.xml : struts2配置文件,配置action的控制处理;

l applicationContext.xml : spring配置文件,注入bean;

l web.xml : web配置文件,配置struts2过滤器、监听器、欢迎界面、错误页面等。

PreView

主页
 


医院
 


科室
 


确认订单
 


用户信息
 


更多截图在art文件夹

Dev Tools and Technologies

  • IDE: Eclipse MAR2.0 + MySQL Workbench
  • Framework:Struts2.1 + Hibernate3.0 + Spring3.0 + JQuery1.11.3 + Bootstrap3.0 + Ajax
  • Database:MySQL5.7
  • Web Server:Apache Tomcat8.0
  • Eclipse plugins:JBOSS(for Hibernate reverse tools)+XulRunner(for preview jsp files)

How to Start

1.导入项目到eclipse IDE.

2.在MySQL新建onlinebooking数据库

导入onlinebooking_final.sql执行,确保数据准备成功

3.配置Apache Tomcat服务器

建议使用Tomcat8.0+版本

4.配置SMTP邮箱服务器

在src/com.util.SendEmail.java文件中配置发送邮件服务,推荐使用163或者126邮箱

    public static final String HOST = "smtp.XXXX.com";...public static final String FROM = "";//your emailpublic static final String PWD = "";//your email password

同时,在上述你所填的邮箱中,请自行到设置中开启SMTP。
如果不进行这一步,那么无法进行用户注册激活,只能使用数据库已存在的测试帐号登陆这个在线预约系统,测试账号如下:

帐号名:1234@qq.com
密码:111111

5.配置数据库连接数据库是onlinebooking

WebContent/WEB-INF/applicationContext.xml中配置:

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://127.0.0.1:3306/onlinebooking"></property><property name="username" value="your-account"></property><property name="password" value="your-password"></property></bean>

6.部署运行

请务必保证联网环境,否则项目无法启动。
正常预约流程:主页->用户登陆->找医院->选择某医院->在某医院中选择某科室->在科室列表点击某医生预约按钮->选择预约时间段->付费成功->跳转到个人信息界面

  • 未过期预约:可以退订
  • 已过期预约:可以删除
  • 我的信息:可以完善或者修改个人信息
  • 我的钱包:查看余额

TODO

  • [功能]用户退出登录
  • [功能]找科室
  • [功能]搜索查找医院、科室
  • [功能]用户信息修改
  • [完善]将主页->找医院->找科室关于Action部分的前端逻辑重写,使用findHospitalById和 findDepartmentById减少数据请求量

Issue

  • #1[隐患]hospistal数据库表使用了describe保留字段,写操作会报错(虽然暂时没有写操作)
  • #2[缺陷]医生如果在当天有排班,即使预约时间已过期,仍然可以进行预约
  • #3断网情况下该项目无法部署运行,原因是:applicationContext.xml中spring版本http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 与jar包版本spring2.+不对应,必须联网更新schema

相关文章:

基于Java(Struts2 + Hibernate + Spring)+MySQL实现的(Web)在线预约系统

基于Struts2 Hibernate Spring的在线预约系统 1.引言 1.1编写目的 针对医院在线预约挂号系统&#xff0c;提供详细的设计说明&#xff0c;包括系统的需求、功能模块、界面设计、设计方案等&#xff0c;以辅助开发人员顺利进行系统的开发并让项目相关者可以对这个系统进行分…...

PHP获取大文件行数

在PHP中获取大文件的行数时&#xff0c;直接读取整个文件到内存中可能会导致内存溢出&#xff0c;特别是对于非常大的文件。因此&#xff0c;最有效的方法是逐行读取文件并计数。以下是一些实现方法&#xff1a; 方法一&#xff1a;使用 fgets() fgets() 函数逐行读取文件&am…...

2024年网站开发语言选择指南:PHP/Java/Node.js/Python如何选型?

2024年网站开发语言选择指南&#xff1a;PHP/Java/Node.js/Python如何选型&#xff1f; 一、8大主流Web开发语言技术对比 1. PHP开发&#xff1a;中小型网站的首选方案 最新版本&#xff1a;PHP 8.3&#xff08;2023年11月发布&#xff09;核心优势&#xff1a; 全球78%的网站…...

Win7模拟器2025中文版:重温经典,掌上电脑体验

随着科技的快速发展&#xff0c;现代操作系统变得越来越高级&#xff0c;但许多用户仍然怀念经典的Windows 7系统。如果你也想重温那种熟悉的操作体验&#xff0c;Win7模拟器2025中文版 是一个不错的选择。这款软件能够让你在手机上轻松实现Windows 7系统的模拟&#xff0c;带来…...

HTML5+CSS3小实例:CSS立方体

实例:CSS立方体 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&q…...

使用 Vite 快速搭建现代化 React 开发环境

1.检查环境 说明&#xff1a;检测环境&#xff0c;node版本为18.20.6。 2.创建命令 说明&#xff1a;创建命令&#xff0c;选择对应的选项。 npm create vitelatest 3.安装依赖 说明&#xff1a;安装相关依赖。 npm i...

Linux网络编程——基于ET模式下的Reactor

一、前言 上篇文章中我们已经讲解了多路转接剩下的两个接口&#xff1a;poll和epoll&#xff0c;并且知道了epoll的两种工作模式分别是 LT模式和ET模式&#xff0c;下来我们就实现的是一个简洁版的 Reactor&#xff0c;即半同步半异步I/O&#xff0c;在linux网络中&#xff0c…...

【现代深度学习技术】循环神经网络04:循环神经网络

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

1. 认识DartGoogle为Flutter选择了Dart语言已经是既

1. 认识Dart Google为Flutter选择了Dart语言已经是既定的事实&#xff0c;无论你多么想用你熟悉的语言&#xff0c;比如JavaScript、TypeScript、ArkTS等来开发Flutter&#xff0c;至少目前都是不可以的。 Dart 是由谷歌开发的计算机编程语言&#xff0c;它可以被应用于 Web/…...

学习设计模式《三》——适配器模式

一、基础概念 适配器模式的本质是【转换匹配&#xff0c;复用功能】&#xff1b; 适配器模式定义&#xff1a;将一个类的接口转换为客户希望的另外一个接口&#xff1b;适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式的目的&#xff1a;复用…...

【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识

【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识 引言 在微服务架构中&#xff0c;分布式事务处理和性能优化是面试中高频出现的主题。随着系统规模的扩大&#xff0c;如何保证数据一致性和系统性能成为开发者…...

Elasticsearch只返回指定的字段(用_source)

在Elasticsearch中&#xff0c;当你想要查询文档但不返回所有字段&#xff0c;只返回指定的字段&#xff08;比如这里的id字段&#xff09;&#xff0c;你可以使用_source参数来实现这一点。但是&#xff0c;有一点需要注意&#xff1a;Elasticsearch的_source字段默认是返回的…...

【Linux “sed“ 命令详解】

本章目录: 1. 命令简介sed 的优势&#xff1a; 2. 命令的基本语法和用法基本语法&#xff1a;参数说明&#xff1a;常见用法场景&#xff1a;示例1&#xff1a;替换文本示例2&#xff1a;删除空行示例3&#xff1a;从命令输出中处理内容 3. 命令的常用选项及参数常用命令动作&a…...

JMETER使用

接口测试流程: 1.获取接口文档&#xff0c;熟悉接口业务 2.编写接口测试用例以及评审 正例:输入正常的参数&#xff0c;验证接口能否正常返回 反例:权限异常(为空、错误、过期)、参数异常(为空、长度异常、类型异常)、其他异常(黑名单、调用次数限制)、兼容异常(一个接口被多种…...

JavaWeb 课堂笔记 —— 13 MySQL 事务

本系列为笔者学习JavaWeb的课堂笔记&#xff0c;视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章节分布参考视频教程&#xff0c;为同样学习…...

离线安装elasticdump并导入和导出数据

离线安装elasticdump 在 CentOS 或 RHEL 系统上安装 elasticdump&#xff0c;你可以使用 npm&#xff08;Node.js 的包管理器&#xff09;来安装&#xff0c;因为 elasticdump 是一个基于 Node.js 的工具。以下是步骤 先在外网环境下安装 下载nodejs和npm&#xff08;注意x8…...

WhatTheDuck:一个基于浏览器的CSV查询工具

今天给大家介绍一个不错的小工具&#xff1a;WhatTheDuck。它是一个免费开源的 Web 应用程序&#xff0c;允许用户上传 CSV 文件并针对其内容执行 SQL 查询分析。 WhatTheDuck 支持 SQL 代码自动完成以及语法高亮。 WhatTheDuck 将上传的数据存储为 DuckDB 内存表&#xff0c;继…...

关于数字信号与图像处理——基于Matlab的图像增强技术

本篇博客是在做数字信号与图像处理实验中的收获。 具体内容包括&#xff1a;根据给定的代码放入Matlab中分别进行两次运行测试——比较并观察运行后的实验结果与原图像的不同点——画出IJ的直方图&#xff0c;并比较二者差异。接下来会对每一步进行具体讲解。 题目&#xff1a…...

MySQL数据库 - 锁

锁 此笔记参考黑马教程&#xff0c;仅学习使用&#xff0c;如有侵权&#xff0c;联系必删 文章目录 锁1. 概述1.1 介绍1.2 分类 2. 全局锁2.1 介绍2.2 语法2.3 特点&#xff08;弊端&#xff09; 3. 表级锁3.1 介绍3.2 表锁3.3 元数据锁&#xff08;meta data lock&#xff0…...

免费多平台运行器,手机畅玩经典主机大作

软件介绍 飞鸟模拟器是一款面向安卓设备的免费游戏平台&#xff0c;支持PS2/PSP/NDS等十余种经典主机游戏运行。 该软件突破传统模拟器复杂操作模式&#xff0c;采用智能核心加载技术&#xff0c;用户只需双击主程序即可开启游戏之旅&#xff0c;真正实现"即下即玩"…...

计算机软考中级 知识点记忆——排序算法 冒泡排序-插入排序- 归并排序等 各种排序算法知识点整理

一、&#x1f4cc; 分类与比较 排序算法 最优时间复杂度 平均时间复杂度 最坏时间复杂度 空间复杂度 稳定性 应用场景与特点 算法策略 冒泡排序 O(n) O(n) O(n) O(1) 稳定 简单易实现&#xff0c;适用于小规模数据排序。 交换排序策略 插入排序 O(n) O(n) O…...

STC32G12K128单片机GPIO模式SPI操作NorFlash并实现FatFS文件系统

STC32G12K128单片机GPIO模式SPI操作NorFlash并实现FatFS文件系统 Norflash简介NorFlash操作驱动代码文件系统测试代码 Norflash简介 NOR Flash是一种类型的非易失性存储器&#xff0c;它允许在不移除电源的情况下保留数据。NOR Flash的名字来源于其内部结构中使用的NOR逻辑门。…...

uniapp-x 二维码生成

支持X&#xff0c;二维码生成&#xff0c;支持微信小程序&#xff0c;android&#xff0c;ios&#xff0c;网页 - DCloud 插件市场 免费的单纯用爱发电的...

当HTTP遇到SQL注入:Java开发者的攻防实战手册

一、从HTTP请求到数据库查询:漏洞如何产生? 危险的参数拼接:Servlet中的经典错误 漏洞代码重现: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String category = request.getParameter("…...

[dp20_完全背包] 介绍 | 零钱兑换

目录 1. 完全背包 题解 背包必须装满 2.零钱兑换 题解 1. 完全背包 链接&#xff1a; DP42 【模板】完全背包 描述 你有一个背包&#xff0c;最多能容纳的体积是V。 现在有n种物品&#xff0c;每种物品有任意多个&#xff0c;第i种物品的体积为vivi ,价值为wiwi。 &a…...

精打细算 - GPU 监控

精打细算 - GPU 监控 在上一篇,咱们历经千辛万苦,终于让应用程序在 Pod 的“驾驶舱”里成功地“点火”并用上了 GPU。太棒了!但是,车开起来是一回事,知道车速多少、油耗多少、引擎水温是否正常,则是另一回事,而且同样重要,对吧? 我们的 GPU 应用跑起来了,但新的问题…...

故障诊断 | CNN-BiGRU-Attention故障诊断

效果一览 摘要 在现代工业生产中,设备的稳定运行至关重要,故障诊断作为保障设备安全、高效运行的关键技术,其准确性和及时性直接影响着生产效率与成本[[doc_refer_1]][[doc_refer_2]]。随着工业设备复杂性的不断增加,传统故障诊断方法已难以满足实际需求。深度学习技术凭借…...

单片机AIN0、AIN1引脚功能

目录 1. 模拟-数字转换器&#xff08;ADC&#xff09; 2. 交流电源&#xff08;AC&#xff09; 总结 这两部分有什么区别&#xff1f; 在这个电路图中&#xff0c;两个部分分别是模拟-数字转换器&#xff08;ADC&#xff09;和交流电源&#xff08;AC&#xff09;。以下是这…...

交换机与路由器的主要区别:深入分析其工作原理与应用场景

在现代网络架构中&#xff0c;交换机和路由器是两种至关重要的设备。它们在网络中扮演着不同的角色&#xff0c;但很多人对它们的工作原理和功能特性并不十分清楚。本文将深入分析交换机与路由器的主要区别&#xff0c;并探讨它们的工作原理和应用场景。 一、基本定义 1. 交换…...

uniApp小程序保存定制二维码到本地(V3)

这里的二维码组件用的 uv-ui 的二维码 可以按需引入 QRCode 二维码 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 <uv-qrcode ref"qrcode" :size"280" :value"payCodeUrl"></uv-qrcode>&l…...

手机投屏到电视方法

一、投屏软件 比如乐播投屏 二、视频软件 腾讯视频、爱奇艺 三、手机无线投屏功能 四、有线投屏 五、投屏器...

桌面应用UI开发方案

一、基于 Web 技术的跨平台方案 Electron Python/Go 特点&#xff1a; 技术栈&#xff1a;前端使用 HTML/CSS/JS&#xff0c;后端通过 Node.js 集成 Python/Go 模块或服务。 跨平台&#xff1a;支持 Windows、macOS、Linux 桌面端&#xff0c;适合开发桌面应用。 生态成熟&…...

FFmpeg+Nginx+VLC打造M3U8直播

一、视频直播的技术原理和架构方案 直播模型一般包括三个模块&#xff1a;主播方、服务器端和播放端 主播放创造视频&#xff0c;加美颜、水印、特效、采集后推送给直播服务器 播放端&#xff1a; 直播服务器端&#xff1a;收集主播端的视频推流&#xff0c;将其放大后推送给…...

山东科技大学深度学习考试回忆

目录 一、填空&#xff08;五个空&#xff0c;十分&#xff09; 二、选择题(五个&#xff0c;十分&#xff09; 三、判断题&#xff08;五个&#xff0c;五分&#xff09; 四、论述题&#xff08;四个&#xff0c;四十分&#xff09; 五、计算题&#xff08;二个&#xff…...

【Flutter动画深度解析】性能与美学的完美平衡之道

Flutter的动画系统是其UI框架中最引人注目的部分之一&#xff0c;它既能创造令人惊艳的视觉效果&#xff0c;又需要开发者对性能有深刻理解。本文将深入剖析Flutter动画的实现原理、性能优化策略以及设计美学&#xff0c;帮助你打造既流畅又美观的用户体验。 一、Flutter动画核…...

【嵌入式】——Linux系统远程操作和程序编译

目录 一、虚拟机配置网络设置 二、使用PuTTY登录新建的账户 1、在ubuntu下开启ssh服务 2、使用PuTTY连接 三、树莓派实现远程登录 四、树莓派使用VNC viewer登录 五、Linux使用talk聊天程序 1、使用linux自带的talk命令 2、使用c语言编写一个talk程序 一、虚拟机配置网络…...

零、HarmonyOS应用开发者基础学习总览

零、HarmonyOS应用开发者基础认证 1 整体学习内容概览 1 整体学习内容概览 通过系统化的课程学习&#xff0c;熟练掌握 DevEco Studio&#xff0c;ArkTS&#xff0c;ArkUI&#xff0c;预览器&#xff0c;模拟器&#xff0c;SDK 等 HarmonyOS 应用开发的关键概念&#xff0c;具…...

记录一次项目中使用pdf预览过程以及遇到问题以及如何解决

背景 项目中现有的pdf浏览解析不能正确解析展示一些pdf文件&#xff0c;要么内容一直在加载中展示不出来&#xff0c;要么展示的格式很凌乱 解决 方式一&#xff1a;&#xff08;优点&#xff1a;比较无脑&#xff0c;缺点&#xff1a;不能解决遇到的一些特殊问题&#xff0…...

致远OA——自定义开发rest接口

文章目录 :apple: 业务流程 &#x1f34e; 业务流程 代码案例&#xff1a; https://pan.quark.cn/s/57fa808c823f 官方文档&#xff1a; https://open.seeyoncloud.com/seeyonapi/781/https://open.seeyoncloud.com/v5devCTP/39/783.html 登录系统 —— 后台管理 —— 切换系…...

STL之vector基本操作

写在前面 我使用的编译器版本是 g 11.4.0 &#xff08;Ubuntu 22.04 默认版本&#xff09;&#xff0c;支持C17的全部特性&#xff0c;支持C20的部分特性。 vector的作用 我们知道vector是动态数组&#xff08;同时在堆上存储数组元素&#xff09;&#xff0c;我们在不确定数…...

dac直通线还是aoc直通线? sfp使用

"DAC直通线" 和 "AOC直通线" 都是高速互连线缆&#xff0c;用于数据中心、服务器、交换机等设备之间的高速互连。它们的选择主要取决于以下几个方面&#xff1a; &#x1f50c; DAC&#xff08;Direct Attach Cable&#xff0c;直连铜缆&#xff09; 材质&…...

【Linux篇】探索进程间通信:如何使用匿名管道构建高效的进程池

从零开始&#xff1a;通过匿名管道实现进程池的基本原理 一. 进程间通信1.1 基本概念1.2 通信目的1.3 通信种类1.3.1 同步通信1.3.2 异步通信 1.4 如何通信 二. 管道2.1 什么是管道2.2 匿名管道2.2.1 pipe()2.2.2 示例代码&#xff1a;使用 pipe() 进行父子进程通信2.2.3 管道容…...

Mixture-of-Experts with Expert Choice Routing:专家混合模型与专家选择路由

摘要 稀疏激活的专家混合模型(MoE)允许在保持每个token或每个样本计算量不变的情况下,大幅增加参数数量。然而,糟糕的专家路由策略可能导致某些专家未被充分训练,从而使得专家在特定任务上过度或不足专业化。先前的研究通过使用top-k函数为每个token分配固定数量的专家,…...

ai学习中收藏网址【1】

https://github.com/xuwenhao/geektime-ai-course课程⾥所有的代码部分&#xff0c;通过 Jupyter Notebook 的形式放在了 GitHub 上 https://github.com/xuwenhao/geektime-ai-course 图片创作 https://www.midjourney.com/explore?tabtop 创建填⾊本 How to Create Midjour…...

【滑动窗口】最⼤连续 1 的个数 III(medium)

⼤连续 1 的个数 III&#xff08;medium&#xff09; 题⽬描述&#xff1a;解法&#xff08;滑动窗⼝&#xff09;&#xff1a;算法思路&#xff1a;算法流程&#xff1a; C 算法代码&#xff1a;Java 算法代码&#xff1a; 题⽬链接&#xff1a;1004. 最⼤连续 1 的个数 III …...

ClawCloud的免费空间(github用户登录可以获得$5元/月的免费额度)

免费的空间 Welcome to ClawCloud Lets create your workspace 官网&#xff1a;ClawCloud | Cloud Infrastructure And Platform for Developers 区域选择新加坡 然后这个页面会变成新加坡区域&#xff0c;再按一次确定&#xff0c;就创建好了工作台。 初始界面&#xff0…...

sql之DML(insert、delete、truncate、update、replace))

&#x1f3af; 本文专栏&#xff1a;MySQL深入浅出 &#x1f680; 作者主页&#xff1a;小度爱学习 数据库使用时&#xff0c;大多数情况下&#xff0c;开发者只会操作数据&#xff0c;也是就增删改查&#xff08;CRUD&#xff09;。 增删改查四条语句&#xff0c;最重要的是查…...

Spring Boot常用注解全解析:从入门到实战

&#x1f331; Spring Boot常用注解全解析&#xff1a;从入门到实战 #SpringBoot核心 #注解详解 #开发技巧 #高效编程 一、核心启动与配置注解 1. SpringBootApplication 作用&#xff1a;标记主启动类&#xff0c;整合了Configuration、EnableAutoConfiguration和Component…...

Python 赋能区块链教育:打造去中心化学习平台

Python 赋能区块链教育:打造去中心化学习平台 引言 区块链技术正在重塑全球多个行业,而教育领域也不例外。传统的在线学习平台往往依赖中心化存储和管理模式,导致数据安全、用户隐私、资源共享等问题难以解决。而随着 Web 3.0 的发展,区块链在教育场景中的应用逐渐受到关…...

verilog float mult

module pipe_float_mul(input wire clk ,// 时钟信号input wire en ,// 使能信号input wire rst_n ,// 复位信号input wire round_cfg ,// 决…...