您好,登錄后才能下訂單哦!
這篇文章主要介紹“java實現酒店管理系統代碼分享”,在日常操作中,相信很多人在java實現酒店管理系統代碼分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java實現酒店管理系統代碼分享”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一共3個實體類,每個實體類有各自的屬性和get,set方法,沒什么好說的
管理員實體類:
/*
管理員實體
*/
package cn.edu.shengda;
/**
*
* @author Administrator
*/
public class Admin {
private String id; //編號
private String name; //姓名
private String password; //密碼
private String extend; //權限
void setID(String id) {
this.id=id;
}
void setName(String name) {
this.name=name;
}
void setPassword(String password) {
this.password=password;
}
void setExtend(String extend) {
this.extend=extend;
}
String getID() {
return this.id;
}
String getName() {
return this.name;
}
String getPassword() {
return this.password;
}
String getExtend() {
return this.extend;
}
}
客戶實體類:
/*
客戶實體
*/
package cn.edu.shengda;
import java.sql.Date;
/**
*
* @author Administrator
*/
public class Customer {
private int id; //編號
private String name; //姓名
private String card; //身份證
private int room; //房間號
private Float money; //押金
private Date time; //入住時間
private String sex; //性別
private String hometown; //籍貫
int getId() {
return this.id;
}
String getName() {
return this.name;
}
String getCard() {
return this.card;
}
int getRoom() {
return this.room;
}
Float getMoney() {
return this.money;
}
Date getTime() {
return this.time;
}
String getSex() {
return this.sex;
}
String getHometown() {
return this.hometown;
}
}
客房實體:
/*
客房實體
*/
package cn.edu.shengda;
/**
*
* @author Administrator
*/
public class Room {
private int id; //編號
private String grade ; //級別
private float price; //價格
private int state; //狀態
private String remarks; //備注
void setID(int ID) {
this.id = ID;
}
void setGrade(String grade) {
this.grade = grade;
}
void setPrice(float price) {
this.price = price;
}
void setState(int state) {
this.state = state;
}
void setRemarks(String remarks) {
this.remarks = remarks;
}
int getID() {
return this.id;
}
String getGrade() {
return this.grade;
}
float getPrice() {
return this.price;
}
int getState() {
return this.state;
}
String getRemarks() {
return this.remarks;
}
}
登錄界面:
包含兩個文本框,分別是用戶名和密碼
兩個按鈕,登錄和注冊
點擊登錄,將會判斷用戶名和密碼是否正確,然后提示不同的結果
注冊頁面
點擊注冊,將會跳轉到注冊頁面
點擊注冊后也會有相應的提示
判斷注冊是否符合規則
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Register {
String name;
String ID;
String password;
String confirmpassword;
void setName(String name) {
this.name = name;
}
void setID(String ID) {
this.ID = ID;
}
void setPassword(String password) {
this.password = password;
}
void setconfirmpasswd(String confirmpassword) {
this.confirmpassword = confirmpassword;
}
private PreparedStatement getPreparedStatement(String sql) throws SQLException {
return new DBConnecter().getConnection().prepareStatement(sql);
}
//判斷注冊的賬號是否符合規則
boolean JudgeRegister() throws SQLException {
if(this.name.equals("")) {
JOptionPane.showMessageDialog(null, "用戶名不能為空!",
"用戶名", JOptionPane.ERROR_MESSAGE);
return false;
}
if(this.ID.equals("")) {
JOptionPane.showMessageDialog(null, "賬號不能為空!",
"賬號為空", JOptionPane.ERROR_MESSAGE);
return false;
}
if(this.password.equals("")) {
JOptionPane.showMessageDialog(null, "密碼不能為空!",
"密碼為空", JOptionPane.ERROR_MESSAGE);
return false;
}
if(!this.password.equals(this.confirmpassword)) {
JOptionPane.showMessageDialog(null, "兩次輸入的密碼不一致!",
"密碼不一致", JOptionPane.ERROR_MESSAGE);
return false;
}
AdminManager am = new AdminManager();
if(am.JudgeAdminID(this.ID)) {
JOptionPane.showMessageDialog(null, "賬號已存在",
"賬號已存在", JOptionPane.ERROR_MESSAGE);
return false;
}
//符合規則,彈出注冊成功的窗口,并將賬號添加數據庫
JOptionPane.showMessageDialog(null, "注冊成功");
addAdmin();
return true;
}
//向數據庫添加Admin賬戶
void addAdmin() throws SQLException {
String sql="insert into admin (id, name, password) values (?,?,?)";
PreparedStatement ps = getPreparedStatement(sql);
ps.setString(1, this.ID);
ps.setString(2, this.name);
ps.setString(3, this.password);
ps.executeUpdate();
ps.close();
}
}
注冊成功后就可以點擊登錄了
主頁面:
登錄成功后來到主頁面
主頁面下面的表格,我先把數據庫中的房間數據讀出,然后轉換成ArrayList,最后放到表格中
class MyDefaultTableModel extends DefaultTableModel {
public MyDefaultTableModel(Object[][] data, Object[] columnNames) {
super(data, columnNames);
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
}
private DefaultTableModel toDefaultTableModel(ArrayList<Room> al) {
int row = al.size();
Object [][] o = new Object[row+1][5];
Room room = null;
o[0][0]="房間號";
o[0][1]="級別";
o[0][2]="價格";
o[0][3]="狀態";
o[0][4]="備注";
for(int i=0; i<row; i++) {
room = al.get(i);
for(int j=0; j<5; j++) {
if(j==0) {
o[i+1][j] = Integer.valueOf(room.getID());
} else if(j==1) {
o[i+1][j] = room.getGrade();
} else if(j==2) {
o[i+1][j] = Float.valueOf(room.getPrice());
} else if(j==3) {
o[i+1][j] = room.getState()==1 ? "有人"
: "空";
} else if(j==4) {
o[i+1][j] = room.getRemarks();
}
}
}
String col[]= {"房間號", "級別", "價格", "狀態", "備注"};
return new MyDefaultTableModel(o, col);
}
private ArrayList<Room> toArrayList(ResultSet rs) {
try {
ArrayList<Room> al = new ArrayList<>();
Room room = new Room();
while (rs.next()) {
room = new Room();
room.setID(rs.getInt("id"));
room.setGrade(rs.getString("grade"));
room.setPrice(rs.getFloat("price"));
room.setState(rs.getInt("state"));
room.setRemarks(rs.getString("remarks"));
al.add(room);
}
rs.close();
return al;
} catch(SQLException ex) {
return null;
}
}
系統管理包含兩個選項:刷新和退出系統,點擊刷新將重新加載表格,點擊退出系統則整個程序結束
基本管理有兩個選項:住宿登記和退房結賬,住宿登記是登記顧客的信息和選擇房間
退房結賬,輸入房間號之后會進行退房。
點擊住宿登記會跳出窗口
房間管理有兩個選項:增加房間和查詢房間
點擊添加房間,輸入房間號,價格,級別,點擊添加,添加成功;點擊取消,返回主頁面
查詢房間,輸入房間號,將會顯示房間的所有信息
JDBC連接數據庫:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Administrator
*/
public class DBConnecter {
/*
連接數據庫
*/
private String driver = "com.mysql.cj.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/hotelsql?
serverTimezone=UTC&characterEncoding=utf-8";
private String user = "root";
private String password = "12481632";
public Connection getConnection() throws SQLException {
try {
Class.forName(driver);
} catch (java.lang.ClassNotFoundException cnfe) {
cnfe.printStackTrace();
System.out.println("驅動失敗");
}
Connection conn = null;
//conn=DriverManager.getConnection(URL, "root", "12481632");
try {
conn = DriverManager.getConnection(url, user, password);
}catch(SQLException ex) {
System.out.println("數據庫登錄失敗!");
}
return conn;
}
/*
*/
}
到此,關于“java實現酒店管理系統代碼分享”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。