javaSwing酒店管理

一、介紹

在這篇博客中,我們將介紹一個基于MySQL數據庫、Java編程語言和Swing圖形用戶界面的簡單酒店管理系統。該系統包括了查詢房客信息、查詢房客狀態、修改房客信息、添加房間信息、添加住戶、退房管理、預定管理、退訂管理、入賬管理、出賬管理、修改資料等多個功能。

二、數據庫介紹

1.t_book(預訂信息表):

表示酒店客房的預訂信息,每條記錄對應一個預訂訂單。
字段解釋:
id: 預訂編號,主鍵。
name: 預訂人姓名。
phone: 預訂人電話。
checkTime: 預訂入住時間。
creditTime: 訂單創建時間。
state: 預訂狀態(已退訂等)。
t_cashier(收支信息表):

記錄酒店的收入和支出情況,用于財務管理。
字段解釋:
id: 記錄編號,主鍵。
type: 類型(收入/支出)。
money: 金額。
remarks: 備注。
time: 創建時間。

2.t_guestroom(客房信息表):

存儲酒店客房的基本信息,包括房間號、狀態和類型。
字段解釋:
id: 客房編號,主鍵。
num: 房間號。
state: 房間狀態(0表示空閑,1表示已入住)。
type: 客房類型。

3.t_household(住戶信息表):

記錄入住和退房的住戶信息,包括姓名、身份證號、入住時間、房間號等。
字段解釋:
id: 住戶編號,主鍵。
name: 住戶姓名。
idNum: 身份證號碼。
checkTime: 入住時間。
roomNum: 入住房號。
money: 收費金額。
state: 入住狀態。
outTime: 退房時間。

4.t_user(用戶信息表):

存儲系統用戶的登錄名和密碼。
字段解釋:
id: 用戶編號,主鍵。
userName: 登錄名。
password: 登錄密碼。

三、程序截圖

1.查詢房客信息

在這里插入圖片描述

2.查詢房客狀態

在這里插入圖片描述

3.修改客房信息

在這里插入圖片描述

4.添加房間信息

在這里插入圖片描述

5.添加住戶

在這里插入圖片描述

6.退房管理

在這里插入圖片描述

7.預定管理

在這里插入圖片描述

8.退訂管理

在這里插入圖片描述

9.入賬管理

在這里插入圖片描述

10.出賬管理

在這里插入圖片描述

11.修改資料

在這里插入圖片描述

四、代碼

1.addGuestRoom

/** addGuestRoom.java** Created on __DATE__, __TIME__*/package hotel.view;import java.awt.event.ActionEvent;
import java.sql.Connection;import hotel.dao.KeFangDao;
import hotel.model.KeFang;
import hotel.util.DbUtil;import javax.swing.JOptionPane;/**** @author  __USER__*/
public class addGuestRoom extends javax.swing.JInternalFrame {DbUtil dbUtil = new DbUtil();KeFangDao guestRoomDao = new KeFangDao();/** Creates new form addGuestRoom */public addGuestRoom() {initComponents();}//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {jLabel1 = new javax.swing.JLabel();
num = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
type = new javax.swing.JTextField();
save = new javax.swing.JButton();
reset = new javax.swing.JButton();setClosable(true);
setTitle("添加房間信息");jLabel1.setText("房間號");num.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
numActionPerformed(evt);
}
});jLabel2.setText("類型");save.setText("保存");
save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveActionPerformed(evt);
}
});reset.setText("重置");
reset.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(45, 45, 45)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jLabel1)
.add(jLabel2))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(type)
.add(num, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)))
.add(layout.createSequentialGroup()
.add(84, 84, 84)
.add(save)
.add(18, 18, 18)
.add(reset)))
.addContainerGap(88, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(38, 38, 38)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel1)
.add(num, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel2)
.add(type, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 17, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(reset)
.add(save))
.addContainerGap())
);pack();
}	/*** 重置按鈕時間* @param evt*/private void resetActionPerformed(ActionEvent evt) {reset();}private void saveActionPerformed(java.awt.event.ActionEvent evt) {String num = this.num.getText();String type = this.type.getText();if(num == null || "".equals(num)){JOptionPane.showMessageDialog(null, "請輸入房間號");return;}if(type == null && "".equals(type)){JOptionPane.showMessageDialog(null, "請輸入類型");return;}Connection con = null;try {con = dbUtil.getCon();KeFang g = guestRoomDao.findByRoomNum(con, Integer.parseInt(num));//判斷房間號是否存在if(g != null){JOptionPane.showMessageDialog(null, "該房間已存在");return;}//封裝對象KeFang guestRoom = new KeFang();guestRoom.setNum(Integer.parseInt(num));guestRoom.setState(0);guestRoom.setType(type);//保存數據int result = guestRoomDao.addGusteRoom(con, guestRoom);if(result != 0){JOptionPane.showMessageDialog(null, "添加成功");}else{JOptionPane.showMessageDialog(null, "添加失敗");}} catch (Exception e) {JOptionPane.showMessageDialog(null, "添加失敗");e.printStackTrace();}finally{try {dbUtil.closeCon(con);//關閉數據庫連接} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 清空輸入框的值*/private void reset(){this.num.setText("");this.type.setText("");}void numActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField num;
private javax.swing.JButton reset;
private javax.swing.JButton save;
private javax.swing.JTextField type;
// End of variables declaration//GEN-END:variables}

2.addHousehold

/** addHousehold.java** Created on __DATE__, __TIME__*/package hotel.view;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;import hotel.dao.ShouYinDao;
import hotel.dao.KeFangDao;
import hotel.dao.RuZhuDao;
import hotel.model.ShouYin;
import hotel.model.KeFang;
import hotel.model.ZhuHu;
import hotel.util.DbUtil;import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;/**** 添加住戶窗口*/
public class addHousehold extends JInternalFrame {//實例化對象DbUtil dbUtil = new DbUtil();RuZhuDao householdDao = new RuZhuDao();KeFangDao guestRoomDao = new KeFangDao();ShouYinDao cashierDao = new ShouYinDao();//創建窗口public addHousehold() {initComponents();this.setLocation(200, 50);}//控件private void initComponents() {jLabel1 = new JLabel();jLabel2 = new JLabel();jLabel3 = new JLabel();jLabel4 = new JLabel();name = new JTextField();idNum = new JTextField();money = new JTextField();roomNum = new JTextField();jButton1 = new JButton();jButton2 = new JButton();setClosable(true);setIconifiable(true);setMaximizable(true);setTitle("添加住戶");jLabel1.setText("姓名");jLabel2.setText("身份證");jLabel3.setText("房間號");jLabel4.setText("收費");jButton1.setText("添加");jButton1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {jButton1ActionPerformed(evt);}});jButton2.setText("重置");/*** layout布局*/GroupLayout layout = new GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().addContainerGap(56, Short.MAX_VALUE).add(layout.createParallelGroup(GroupLayout.LEADING).add(GroupLayout.TRAILING,layout.createSequentialGroup().add(jButton1).add(51,51,51).add(jButton2).add(119,119,119)).add(GroupLayout.TRAILING,layout.createSequentialGroup().add(layout.createParallelGroup(GroupLayout.TRAILING).add(jLabel3).add(jLabel4).add(jLabel2).add(jLabel1)).add(50,50,50).add(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createParallelGroup(GroupLayout.TRAILING,false).add(GroupLayout.LEADING,idNum).add(GroupLayout.LEADING,name,GroupLayout.DEFAULT_SIZE,195,Short.MAX_VALUE)).add(layout.createParallelGroup(GroupLayout.TRAILING,false).add(GroupLayout.LEADING,money).add(GroupLayout.LEADING,roomNum,GroupLayout.DEFAULT_SIZE,193,Short.MAX_VALUE))).add(89,89,89)))));layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(39, 39, 39).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel1).add(name,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).addPreferredGap(LayoutStyle.RELATED).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel2).add(idNum,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).addPreferredGap(LayoutStyle.RELATED).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel3).add(roomNum,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).add(4, 4, 4).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel4).add(money,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jButton1).add(jButton2)).addContainerGap()));pack();}// </editor-fold>//GEN-END:initComponentsprivate void jButton1ActionPerformed(ActionEvent evt) {//獲取輸入框的值String name = this.name.getText();//姓名String idNum = this.idNum.getText();//身份證號String roomNum = this.roomNum.getText();//房間號String money = this.money.getText();//費用//驗證值是否為空if("".equals(name) || name == null){JOptionPane.showMessageDialog(null, "請輸入姓名");return;}if("".equals(idNum) || idNum == null){JOptionPane.showMessageDialog(null, "請輸入身份證號碼");return;}if("".equals(roomNum) || roomNum == null){JOptionPane.showMessageDialog(null, "請輸入房間號");return;}if("".equals(money) || money == null){JOptionPane.showMessageDialog(null, "請輸入入住費用");}//封裝對象ZhuHu household = new ZhuHu();household.setName(name);household.setIdNum(idNum);household.setRoomNum(Integer.parseInt(roomNum));household.setMoney(Integer.parseInt(money));household.setState("入住中");Connection con = null;try {con = dbUtil.getCon();KeFang gr = new KeFang();//判斷房間是否存在或者是否已有人入住gr = guestRoomDao.findByRoomNum(con, Integer.parseInt(roomNum));if(gr == null){JOptionPane.showMessageDialog(null, "未查詢到客房信息");return;}if(gr.getState() == 1){JOptionPane.showMessageDialog(null, "房間占用,請重新選擇房間");return;}int result = householdDao.addHousehold(con, household);if(result != 0){JOptionPane.showMessageDialog(null, "添加成功");reset();//更新房間狀態未已入住KeFang guestRoom = new KeFang();guestRoom.setNum(Integer.parseInt(roomNum));guestRoom.setState(1);guestRoomDao.updateState(con, guestRoom);//添加收銀信息ShouYin cashier = new ShouYin();cashier.setType("收入");cashier.setMoney(money);cashier.setRemarks("用戶"+name+"入住收入金額"+money);cashierDao.addCashier(con, cashier);}else{JOptionPane.showMessageDialog(null, "添加失敗");}} catch (Exception e) {JOptionPane.showMessageDialog(null, "添加失敗");e.printStackTrace();}finally{try {dbUtil.closeCon(con);//關閉數據庫連接} catch (Exception e) {e.printStackTrace();}}}//清空輸入框的值public void reset(){this.name.setText("");this.idNum.setText("");this.roomNum.setText("");this.money.setText("");}//窗口控件private JTextField idNum;private	JButton jButton1;private JButton jButton2;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JTextField money;private JTextField name;private JTextField roomNum;}

3.BookManger

/** BookManger.java** Created on __DATE__, __TIME__*/package hotel.view;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;import hotel.dao.YuDingDao;
import hotel.model.YuDing;
import hotel.util.DbUtil;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;
/***添加預訂信息* @author Administrator**/
public class BookManger extends javax.swing.JInternalFrame {//實例化對象DbUtil dbUtil = new DbUtil();YuDingDao bookDao = new YuDingDao();/** 創建窗口 */public BookManger() {initComponents();this.setLocation(200, 50);//設置窗口位置}//初始化控件private void initComponents() {jLabel1 = new JLabel();name = new JTextField();jLabel2 = new JLabel();phone = new JTextField();jLabel3 = new JLabel();checkTime = new JTextField();save = new JButton();jButton2 = new JButton();setClosable(true);setIconifiable(true);setTitle("預訂管理");jLabel1.setText("姓名");jLabel2.setText("聯系電話");jLabel3.setText("入住時間");save.setText("保存");save.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {saveActionPerformed(evt);}});jButton2.setText("重置");/*** layout布局*/GroupLayout layout = new GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(32,32,32).add(layout.createParallelGroup(GroupLayout.LEADING).add(jLabel3).add(jLabel2).add(jLabel1)).addPreferredGap(LayoutStyle.RELATED).add(layout.createParallelGroup(GroupLayout.LEADING,false).add(GroupLayout.TRAILING,phone,GroupLayout.DEFAULT_SIZE,153,Short.MAX_VALUE).add(save).add(checkTime).add(GroupLayout.TRAILING,name))).add(layout.createSequentialGroup().add(186,186,186).add(jButton2))).addContainerGap(89, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(30, 30, 30).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel1).add(name,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).addPreferredGap(LayoutStyle.RELATED).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel2).add(phone,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).addPreferredGap(LayoutStyle.RELATED).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel3).add(checkTime,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).addPreferredGap(LayoutStyle.RELATED,28, Short.MAX_VALUE).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jButton2).add(save)).addContainerGap()));pack();}/*** 保存按鈕事件* @param evt*/private void saveActionPerformed(java.awt.event.ActionEvent evt) {String name = this.name.getText();//姓名String phone = this.phone.getText();//聯系電話String checkTime = this.checkTime.getText();//預訂入住時間//驗證數據是否為空if (name == null || "".equals(name)) {JOptionPane.showMessageDialog(null, "請輸入入住人姓名");}if (phone == null || "".equals(phone)) {JOptionPane.showMessageDialog(null, "請輸入聯系電話");}if (checkTime == null || "".equals(checkTime)) {JOptionPane.showMessageDialog(null, "請輸入入住時間");}//封裝數據對象YuDing book = new YuDing();book.setName(name);book.setPhone(phone);book.setCheckTime(checkTime);book.setState("已預訂");Connection con = null;//保存數據try {con = dbUtil.getCon();int result = bookDao.addBook(con, book);if (result != 0) {JOptionPane.showMessageDialog(null, "保存成功");reset();} else {JOptionPane.showMessageDialog(null, "保存失敗");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();JOptionPane.showMessageDialog(null, "保存失敗");}finally{try {dbUtil.closeCon(con);//關閉數據庫連接} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//清空輸入框的值private void reset() {this.name.setText("");this.phone.setText("");this.checkTime.setText("");}/** 控件 */private JTextField checkTime;private JButton jButton2;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JTextField name;private JTextField phone;private JButton save;}

4.editAdmin

 * editAdmin.java** Created on __DATE__, __TIME__*/package hotel.view;import hotel.dao.BianJiDao;
import hotel.util.DbUtil;import java.sql.Connection;import javax.swing.JOptionPane;/**** @author  __USER__*/
public class editAdmin extends javax.swing.JInternalFrame {DbUtil dbUtil = new DbUtil();BianJiDao editModulDao = new BianJiDao();/** Creates new form editAdmin */public editAdmin() {initComponents();}/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*///GEN-BEGIN:initComponents// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents() {jLabel1 = new javax.swing.JLabel();jTextField1 = new javax.swing.JTextField();jLabel2 = new javax.swing.JLabel();password = new javax.swing.JPasswordField();jLabel3 = new javax.swing.JLabel();repassword = new javax.swing.JPasswordField();jButton1 = new javax.swing.JButton();jLabel4 = new javax.swing.JLabel();oldpassword = new javax.swing.JPasswordField();setClosable(true);setResizable(true);jLabel1.setText("\u7528\u6237\u540d");jTextField1.setText("admin");jTextField1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jTextField1ActionPerformed(evt);}});jLabel2.setText("\u65b0\u5bc6\u7801");password.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {passwordActionPerformed(evt);}});jLabel3.setText("\u786e\u8ba4\u5bc6\u7801");jButton1.setText("\u4fee\u6539");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});jLabel4.setText("\u65e7\u5bc6\u7801");org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(26, 26, 26).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(jLabel3).add(jLabel2).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel4).add(jLabel1))).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING,false).add(oldpassword, 0, 0,Short.MAX_VALUE).add(jTextField1,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,181, Short.MAX_VALUE).add(repassword, 0, 0,Short.MAX_VALUE).add(password, 0, 0,Short.MAX_VALUE))).add(layout.createSequentialGroup().add(134, 134, 134).add(jButton1))).addContainerGap(82, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(26, 26, 26).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jTextField1,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel1)).add(18, 18, 18).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel4).add(oldpassword,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(12, 12, 12).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(password,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel2)).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(repassword,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel3)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 23,Short.MAX_VALUE).add(jButton1).add(28, 28, 28)));pack();}// </editor-fold>//GEN-END:initComponentsprivate void passwordActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {Connection con = null;String password = new String(this.password.getPassword());String repassword = new String(this.repassword.getPassword());String oldpassword = new String(this.oldpassword.getPassword());try {con = dbUtil.getCon();String oldpwd = editModulDao.oldPassword(con);if(!oldpassword.equals(oldpwd)){JOptionPane.showMessageDialog(null, "舊密碼不符");return;}} catch (Exception e1) {e1.printStackTrace();}if (password == null || "".equals(password)) {JOptionPane.showMessageDialog(null, "請輸入密碼");return;}if (!password.equals(repassword)) {JOptionPane.showMessageDialog(null, "兩次輸入密碼不一致");return;}//修改數據庫操作try {con = dbUtil.getCon();int result = editModulDao.updateAdmin(con, password);if (result != 0) {JOptionPane.showMessageDialog(null, "修改成功");this.password.setText("");} else {JOptionPane.showMessageDialog(null, "修改失敗");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {dbUtil.closeCon(con);//關閉數據庫連接} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}//GEN-BEGIN:variables// Variables declaration - do not modifyprivate javax.swing.JButton jButton1;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JTextField jTextField1;private javax.swing.JPasswordField oldpassword;private javax.swing.JPasswordField password;private javax.swing.JPasswordField repassword;// End of variables declaration//GEN-END:variables}```## 5.editData
```java
/** editData.java** Created on __DATE__, __TIME__*/package hotel.view;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.LayoutStyle;import hotel.dao.BianJiDao;
import hotel.util.DbUtil;/*** 修改管理員資料* @author Administrator**/
public class editData extends javax.swing.JInternalFrame {DbUtil dbUtil = new DbUtil();BianJiDao editModulDao = new BianJiDao();/** Creates new form editData */public editData() {initComponents();this.setLocation(300, 100);//設置窗口位置}/** 控件 */private void initComponents() {jLabel1 = new JLabel();jTextField1 = new JTextField();jLabel2 = new JLabel();password = new JPasswordField();password2 = new JPasswordField();jButton1 = new JButton();reset = new JButton();setClosable(true);setTitle("修改資料");jLabel1.setText("賬號");jTextField1.setEditable(false);jTextField1.setText("admin");jLabel2.setText("密碼");jButton1.setText("修改");jButton1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {jButton1ActionPerformed(evt);}});reset.setText("重置");reset.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {resetActionPerformed(evt);}});/*** layout布局*/GroupLayout layout = new GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(29, 29, 29).add(layout.createParallelGroup(GroupLayout.LEADING,false).add(layout.createSequentialGroup().add(jLabel1).add(18,18,18).add(jTextField1,GroupLayout.PREFERRED_SIZE,172,GroupLayout.PREFERRED_SIZE)).add(layout.createSequentialGroup().add(jLabel2).add(18,18,18).add(layout.createParallelGroup(GroupLayout.LEADING).add(password,0,0,Short.MAX_VALUE).add(layout.createSequentialGroup().add(jButton1).addPreferredGap(LayoutStyle.RELATED,35,Short.MAX_VALUE).add(reset).add(23,23,23))))).addContainerGap(52, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.LEADING).add(layout.createSequentialGroup().add(31, 31, 31).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel1).add(jTextField1,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jLabel2).add(password,GroupLayout.PREFERRED_SIZE,GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(layout.createParallelGroup(GroupLayout.BASELINE).add(jButton1).add(reset)).addContainerGap(35, Short.MAX_VALUE)));pack();}/*** 修改管理員資料*///修改按鈕事件private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {String password = new String(this.password.getPassword());String repassword = new String(this.password2.getPassword());if (password == null || "".equals(password)) {JOptionPane.showMessageDialog(null, "請輸入密碼");return;}if(!password.equals(repassword)){JOptionPane.showMessageDialog(null, "兩次輸入密碼不一致");return;}Connection con = null;//修改數據庫操作try {con = dbUtil.getCon();int result = editModulDao.updateAdmin(con, password);if (result != 0) {JOptionPane.showMessageDialog(null, "修改成功");this.password.setText("");} else {JOptionPane.showMessageDialog(null, "修改失敗");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {dbUtil.closeCon(con);//關閉數據庫連接} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//重置輸入框的值private void resetActionPerformed(ActionEvent evt) {this.password.setText("");}//頁面控件private JButton jButton1;private JLabel jLabel1;private JLabel jLabel2;private JTextField jTextField1;private JPasswordField password;private JPasswordField password2;private JButton reset;}

5.inAccountManger

/** inAccountManger.java** Created on __DATE__, __TIME__*/package hotel.view;import hotel.dao.YuDingDao;
import hotel.dao.ShouYinDao;
import hotel.model.ShouYin;
import hotel.util.DbUtil;import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;import com.sun.org.apache.bcel.internal.generic.NEW;/**** @author  __USER__*/
public class inAccountManger extends javax.swing.JInternalFrame {DbUtil dbUtil = new DbUtil();ShouYinDao cashierDao = new ShouYinDao();/** Creates new form inAccountManger */public inAccountManger() {initComponents();this.fillTable();this.setLocation(200, 50);//設置窗口位置}/*** 填充表格數據* @param name*/public void fillTable() {DefaultTableModel dtm = (DefaultTableModel) inAccountTable.getModel();dtm.setRowCount(0);Connection con = null;try {con = dbUtil.getCon();ResultSet re = cashierDao.cashier(con);while (re.next()) {Vector v = new Vector();//添加每一行的數據v.add(re.getString("id"));v.add(re.getString("type"));v.add(re.getString("money"));v.add(re.getString("remarks"));v.add(re.getString("time"));dtm.addRow(v);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*///GEN-BEGIN:initComponents// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents() {jScrollPane1 = new javax.swing.JScrollPane();inAccountTable = new javax.swing.JTable();jPanel1 = new javax.swing.JPanel();jLabel1 = new javax.swing.JLabel();money = new javax.swing.JTextField();jLabel2 = new javax.swing.JLabel();remarks = new javax.swing.JTextField();add = new javax.swing.JButton();jLabel3 = new javax.swing.JLabel();type = new javax.swing.JTextField();setClosable(true);setIconifiable(true);setTitle("\u5165\u8d26\u7ba1\u7406");inAccountTable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { { null, null, null, null, null },{ null, null, null, null, null },{ null, null, null, null, null },{ null, null, null, null, null } }, new String[] {"編號", "狀態", "金額", "備注", "時間" }) {boolean[] canEdit = new boolean[] { false, false, false, false,false };public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit[columnIndex];}});jScrollPane1.setViewportView(inAccountTable);jLabel1.setText("\u91d1\u989d");jLabel2.setText("\u5907\u6ce8");add.setText("\u6dfb\u52a0");add.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {addActionPerformed(evt);}});jLabel3.setText("\u7c7b\u578b");type.setEditable(false);type.setText("\u6536\u5165");type.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jTextField1ActionPerformed(evt);}});org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().addContainerGap().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(add).add(jPanel1Layout.createSequentialGroup().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING,false).add(org.jdesktop.layout.GroupLayout.LEADING,jPanel1Layout.createSequentialGroup().add(jLabel3).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(type)).add(jPanel1Layout.createSequentialGroup().add(jLabel1).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(money,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,176,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))).add(18,18,18).add(jLabel2).add(18,18,18).add(remarks,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,181,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))).addContainerGap(439, Short.MAX_VALUE)));jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().addContainerGap().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel1).add(money,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel2).add(remarks,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel3).add(type,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).add(add)));org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING,layout.createSequentialGroup().addContainerGap().add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(org.jdesktop.layout.GroupLayout.LEADING,jPanel1,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).add(org.jdesktop.layout.GroupLayout.LEADING,jScrollPane1,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,897, Short.MAX_VALUE)).addContainerGap()));layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().addContainerGap().add(jScrollPane1,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 131,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(jPanel1,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addContainerGap(30, Short.MAX_VALUE)));pack();}// </editor-fold>//GEN-END:initComponentsprivate void addActionPerformed(java.awt.event.ActionEvent evt) {String money = this.money.getText();String remarks = this.remarks.getText();String type = this.type.getText();if("".equals(money) || money == null){JOptionPane.showMessageDialog(null, "請輸入金額");return;}if("".equals(remarks) || remarks == null){JOptionPane.showMessageDialog(null, "請輸入備注");return;}ShouYin cashier = new ShouYin();cashier.setMoney(money);cashier.setRemarks(remarks);cashier.setType(type);Connection con  = null;	try {con = dbUtil.getCon();int result = cashierDao.addCashier(con, cashier);if(result != 0){JOptionPane.showMessageDialog(null, "添加成功!");this.fillTable();this.money.setText("");this.remarks.setText("");}} catch (Exception e) {JOptionPane.showMessageDialog(null, "添加失敗!");e.printStackTrace();}}private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}//GEN-BEGIN:variables// Variables declaration - do not modifyprivate javax.swing.JButton add;private javax.swing.JTable inAccountTable;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JPanel jPanel1;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JTextField type;private javax.swing.JTextField money;private javax.swing.JTextField remarks;// End of variables declaration//GEN-END:variables}

6.login

/** login.java** Created on __DATE__, __TIME__*/package hotel.view;import hotel.dao.UserDao;
import hotel.model.User;
import hotel.util.DbUtil;import java.awt.Font;
import java.sql.Connection;import javax.swing.JOptionPane;
import javax.swing.UIManager;/**** @author  __USER__*/
public class login extends javax.swing.JFrame {DbUtil dbUtil = new DbUtil();UserDao userDao = new UserDao();/** Creates new form login */public login() {//改變系統默認字體Font font = new Font("Dialog", Font.PLAIN, 12);java.util.Enumeration keys = UIManager.getDefaults().keys();while (keys.hasMoreElements()) {Object key = keys.nextElement();Object value = UIManager.get(key);if (value instanceof javax.swing.plaf.FontUIResource) {UIManager.put(key, font);}}initComponents();// 設置Frame居中顯示this.setLocationRelativeTo(null);}/** This method is called from within the constructor to* initialize the form.* WARNING: Do NOT modify this code. The content of this method is* always regenerated by the Form Editor.*///GEN-BEGIN:initComponents// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents() {jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();userName = new javax.swing.JTextField();password = new javax.swing.JPasswordField();login = new javax.swing.JButton();reset = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setTitle("\u7ba1\u7406\u5458\u767b\u9646");jLabel1.setText("\u767b\u5f55\u540d");jLabel2.setText("\u5bc6\u7801");login.setText("\u767b\u9646");login.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {loginActionPerformed(evt);}});reset.setText("\u91cd\u7f6e");org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(39,39,39).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel1).add(jLabel2)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING,false).add(password,0,0,Short.MAX_VALUE).add(userName,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,154,Short.MAX_VALUE))).add(layout.createSequentialGroup().add(81,81,81).add(login).add(18,18,18).add(reset))).addContainerGap(55, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(32, 32, 32).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel1).add(userName,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel2).add(password,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED,18, Short.MAX_VALUE).add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(reset).add(login)).addContainerGap()));pack();}// </editor-fold>//GEN-END:initComponentsprivate void loginActionPerformed(java.awt.event.ActionEvent evt) {String userName = this.userName.getText();String password = new String(this.password.getPassword());if("".equals(userName) || userName == null){JOptionPane.showMessageDialog(null, "用戶名不能為空");return;}if("".equals(password) || password == null){JOptionPane.showMessageDialog(null, "密碼不能為空");return;}User user = new User();user.setUserName(userName);user.setPassword(password);Connection conn = null;try {conn = dbUtil.getCon();User us = userDao.login(conn, user);if(us == null){JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤");}else{this.dispose();new main().setVisible(true);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {dbUtil.closeCon(conn);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** @param args the command line arguments*/public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new login().setVisible(true);}});}//GEN-BEGIN:variables// Variables declaration - do not modifyprivate javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JButton login;private javax.swing.JPasswordField password;private javax.swing.JButton reset;private javax.swing.JTextField userName;// End of variables declaration//GEN-END:variables}

五、聯系與交流

扣:969060742 完整程序資源、sql、代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213378.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213378.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213378.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

0009Java程序設計-ssm微信小程序在慢性疾病管理中的應用

文章目錄 **摘要**目錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 首先,論文一開始便是清楚的論述了小程序的研究內容。其次,剖析系統需求分析,弄明白“做什么”,分析包括業務分析和業務流程的分析以及用例…

極坐標曲線@典型的4種曲線

文章目錄 abstract典型曲線心形線玫瑰線阿基米德螺線伯努利雙扭線 abstract 除了圓和圓錐曲線外,還有許多曲線用極坐標描述會簡單得多 典型曲線 分析下列曲線時,線分析是否含有三角函數(周期性) 利用描點法做出單個周期內的圖形 作圖:可以打開geogebra https://www.geogebr…

記:vite3+vue3+axios前端項目跨域問題解決【前端和服務器nginx配置】

前言&#xff1a;什么是跨域&#xff0c;網上一搜一大把&#xff0c;所以這里直接跳過&#xff0c;直入主題。 處理方式&#xff1a;不通過后端處理跨域&#xff0c;通過前端服務器nginx處理。 1.前端涉及處理跨域的必要配置&#xff08;開發環境、生產環境&#xff09;&…

銀行插件導致的Outlook客戶端無法連接服務器問題

問題現象 最近遇到好些同事出現outlook客戶端無法連接服務器的情況&#xff0c;具體現象就是右下角一直顯示【正在嘗試連接…】或者【需要密碼】&#xff0c;點擊【需要密碼】按鈕&#xff0c;輸密碼的彈窗是一個完全空白的頁面。 此時打開word&#xff0c;右上角那里去登錄o…

LeetCode19. Remove Nth Node From End of List

文章目錄 一、題目二、題解 一、題目 Given the head of a linked list, remove the nth node from the end of the list and return its head. Example 1: Input: head [1,2,3,4,5], n 2 Output: [1,2,3,5] Example 2: Input: head [1], n 1 Output: [] Example 3: I…

智能優化算法應用:基于緞藍園丁鳥算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于緞藍園丁鳥算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于緞藍園丁鳥算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.緞藍園丁鳥算法4.實驗參數設定5.算法…

自動數據增廣論文筆記 | AutoAugment: Learning Augmentation Strategies from Data

谷歌大腦出品 paper: https://arxiv.org/abs/1805.09501 這里是個論文的閱讀心得&#xff0c;筆記&#xff0c;不等同論文全部內容 文章目錄 一、摘要1.1 翻譯1.2 筆記 二、(第三部分)自動增強:直接在感興趣的數據集上搜索最佳增強策略2.1 翻譯2.2 筆記 三、(第四部分)實驗與結…

為什么說數字化轉型能幫助企業降本增效?

引言 數字化轉型是當今商業領域中的關鍵議題&#xff0c;它不僅是技術的應用&#xff0c;更是一種戰略性的變革&#xff0c;對企業而言具有重要意義。在這個數字化時代&#xff0c;企業需要不斷適應和采納新技術&#xff0c;以獲得競爭優勢并提高效率。 數字化轉型旨在將傳統業…

匿名內部類 - ( 零基礎學java )

Java-匿名內部類 我們先分析匿名內部類的結構,然后逐一解釋,最后以下羅列的問題都會在下面的內容中一一得到解答 : 匿名內部類到底是什么? 我們為什么要學習匿名內部類 ? 匿名內部類都有怎樣的作用 ? 匿名內部類應用的場景又有哪些 ? 匿名內部類是否有缺陷? 讓我們…

Java (JDK 21) 調用 OpenCV (4.8.0)

Java 調用 OpenCV 一.OpenCV 下載和安裝二.創建 Java Maven 項目三.其他測試 一.OpenCV 下載和安裝 Open CV 官網 可以下載編譯好的包&#xff0c;也可以下載源碼自行編譯 雙擊安裝 opencv-4.8.0-windows.exe 默認為當前目錄 安裝即解壓縮 根據系統位數選擇 將 x64 目錄下 op…

外匯交易到哪開戶?外匯開戶所需流程有哪些?

外匯交易是一種全球性的金融市場活動&#xff0c;參與者可以通過買入或賣出不同國家的貨幣來獲取利潤。在進行外匯交易之前&#xff0c;開設一個外匯交易賬戶是必要的。本文將介紹外匯交易開戶的重要性、選擇外匯交易平臺的因素以及開戶所需的基本流程&#xff0c;幫助讀者更好…

開往渤海的列車:滄港鐵路如何扮演產業帶城市生態共贏的關鍵先生

新時代構建新格局&#xff0c;新格局呼喚新作為。在交通強國戰略背景下&#xff0c;鐵路運輸企業需要如何彰顯“鐵擔當”&#xff1f; 逢山開路、遇水架橋&#xff0c;身處重要地理區位&#xff0c;滄州滄港鐵路有限公司&#xff08;以下簡稱“滄港鐵路”&#xff09;不斷搶抓…

并查集帶壓縮路徑的find

目錄 原因&#xff1a; 優化&#xff1a; 原因&#xff1a; 當路徑比較特殊&#xff0c;如圖&#xff1a; 非常深&#xff0c;最底層進行find時&#xff0c;循環找根&#xff08;或者遞歸找&#xff09;&#xff0c;消耗就比較大。 我們可以進行優化。 優化&#xff1a; &…

【C++】C++異常語法、使用、規范、異常安全及異常的優缺點

1. C異常概念 異常是一種處理錯誤的方式&#xff0c;當一個函數發現自己無法處理的錯誤時就可以拋出異常&#xff0c;讓函數的直接或間接的調用者處理這個錯誤。 throw: 當問題出現時&#xff0c;程序會拋出一個異常。這是通過使用 throw 關鍵字來完成的。catch: 在您想要處理…

給你的Python程序添點Emoji魔法:使用Emoji模塊增添趣味和個性!

當你想給你的Python程序增添一些趣味和個性時&#xff0c;Emoji模塊是一個很有用的工具。Emoji模塊允許你在Python中使用各種表情符號&#xff0c;從笑臉到動物&#xff0c;甚至是食物和天氣等。在本篇博客中&#xff0c;我們將介紹如何在Python中使用Emoji模塊&#xff0c;并展…

【小白專用】使用PHP創建和操作MySQL數據庫,數據表

php數據庫操作 php連接mysql數據庫 <?php $hostlocalhost; // 數據庫主機名 $username"root"; // 數據庫用戶名 $password"al6"; // 數據庫密碼 $dbname"mysql"; // 數據庫名 $connIDmysqli_connect($host,$username,$password,$dbn…

adb push報錯:remote couldn‘t create file: Is a directory

adb push報錯&#xff1a;remote couldn‘t create file: Is a directory 出現這個問題可能是電腦本地目錄中包含中文或者是目錄地址中多包含了一個/ 比如說以下兩種路徑 1. test/測試音頻文件1/a.mp3 2.test/test_audio/ 這兩種都是不可以的&#xff08;我是在as中執行的…

MQTT服務質量-QoS

QoS是消息發送方和接收方之間的協議&#xff0c;定義了指定消息發送保證等級。本文將深入探究MQTT中不同的QoS等級。 QoS是什么 MQTT提供三個QoS等級&#xff1a; 最多一次&#xff08;QoS 0&#xff09;至少一次&#xff08;QoS 1&#xff09;確切一次&#xff08;QoS 2&am…

科技提升安全,基于YOLOv5系列模型【n/s/m/l/x】開發構建商超扶梯場景下行人安全行為姿態檢測識別系統

在商超等人流量較為密集的場景下經常會報道出現一些行人在扶梯上摔倒、受傷等問題&#xff0c;隨著AI技術的快速發展與不斷普及&#xff0c;越來越多的商超、地鐵等場景開始加裝專用的安全檢測預警系統&#xff0c;核心工作原理即使AI模型與攝像頭圖像視頻流的實時計算&#xf…

2024年JAVA招聘行情如何?

大家都在說Java求職不好找&#xff0c;是真的嗎&#xff1f;我們來看看數據。 數據支持&#xff1a;根據TIOBE 5月份的編程語言排行榜&#xff0c;Java仍然是前三名之一。這意味著&#xff0c;Java在開發領域仍然占據重要地位。 而在中國的IT市場中&#xff0c;Java仍然是主要…