前言:
專案是使用Java swing開發,可實作基礎資料維護用戶登錄、系統首頁酒店資訊管理、主要模塊是開房管理、退房管理、房間資訊管理、顧客資訊管理等功能,界面設計比較簡介、適合作為Java課設設計以及學習技術使用,獲取原始碼
引言
在資訊高度發達的今天, 酒店業務涉及的各個作業環節已不再僅僅是傳統 的住宿、 結算業務,而是更廣、更全面的服務性行業代表,酒店賓館作為一個服務性行業,從客 房的營銷即客人的預定開始, 到入住登記直到最后退房結賬, 整個程序應該能夠體現以 賓客為中心,提供快捷方便服務,給賓客感受一種顧客至上的享受,提高管理水平,簡 化各種復雜操作, 在最短時間內完成酒店業務規范操作, 這樣才能令旅客舒適難忘, 因 此,采用全新的計算機管理系統, 將成為提高酒店的管理效率, 改善服務水準的手段之 一,系統從滿足客戶的需求角度出發, 實作了酒店管理的基本流程, 系統的主要功能包 登錄、重置、查看 設定等等,用戶入住酒店的時候所要等待的時間就會大大的減少, 操作員能夠很方便的 對用戶資訊的登記和對房間狀態的的管理, 從而實作了酒店管理系統高效、 準確的特點,
主要技術和工具:
eclipse+JDK1..8+Navicat +swing +mysql
功能截圖:
登錄管理:
用戶輸入賬號密碼以及驗證碼進行登錄驗證

酒店管理資訊:
開房:
用戶錄入開房相關資訊、 提交的時候后臺會驗證資料的資料是否正確、房間是否被占用等情況

退房:
輸入身份證資訊和房間號進行驗證正確后完成退房

房間資訊:
房間資訊管理管理頁面可以查看所有的房間資訊、房間標準以及狀態等、也可以更具房間型別來查詢房間資訊,

顧客資訊:

關鍵代碼:
主入口:
public class LoginFrame extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JPasswordField passwordField;
private JTextField textField_1;
private CaptchaUtils cpt;
private BufferedImage image1;
private String code;
private JLabel label_6;
//創建deskservice物件
private DeskService deskService=new DeskServiceImpl();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrame frame = new LoginFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public LoginFrame() {
setBackground(Color.GREEN);
setTitle("KING'S LANDING");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(500, 250, 624, 524);
contentPane = new JPanel(){
protected void paintComponent(Graphics g){
super.paintComponent(g);
ImageIcon images=new ImageIcon("images/624524.jpg");
g.drawImage(images.getImage(),0,0,null);
}
};
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JLabel label_1 = new JLabel("\u7528\u6237\u540D");
label_1.setBackground(Color.WHITE);
label_1.setForeground(Color.WHITE);
label_1.setFont(new Font("微軟雅黑", Font.PLAIN, 15));
label_1.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/yonghu.png")));
textField = new JTextField();
textField.setBackground(Color.WHITE);
textField.setColumns(10);
label_6=new JLabel();
label_6.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
cpt=new CaptchaUtils();
//獲取畫布
image1=cpt.getBuffImg();
//獲取亂數
code=cpt.getCode();
ImageIcon icon=new ImageIcon(image1,"jpeg");
label_6.setIcon(icon);
}
});
/**
* 驗證碼
*/
cpt=new CaptchaUtils();
//獲取畫布
image1=cpt.getBuffImg();
//獲取亂數
code=cpt.getCode();
ImageIcon icon=new ImageIcon(image1,"jpeg");
label_6.setIcon(icon);
JLabel label_2 = new JLabel("\u5BC6\u7801");
label_2.setForeground(Color.WHITE);
label_2.setFont(new Font("微軟雅黑", Font.PLAIN, 15));
label_2.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/mima.png")));
JButton button = new JButton("\u767B\u5F55");
//設定按鈕的透明
button.setContentAreaFilled(false);
//給按鈕上的字設定顏色
button.setForeground(Color.WHITE);
button.setBackground(Color.WHITE);
button.setFont(new Font("微軟雅黑", Font.PLAIN, 20));
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//獲取輸入的用戶名和密碼
String name=textField.getText();
char[]array=passwordField.getPassword();
String password=new String(array);
System.out.println("name:"+name);
System.out.println("password:"+password);
//用戶輸入的驗證碼
String codeFrame=textField_1.getText();
if(!(code.equalsIgnoreCase((codeFrame)))){
JOptionPane.showMessageDialog(null, "驗證碼錯誤,請重新輸入!");
return;
}
DeskDaoImpl deskDao=new DeskDaoImpl();
Desk desk=new Desk(name,password);
int code=deskDao.LoginDesk(desk);
//判斷是否是管理員登錄
if(code==1){
//登錄成功
new HomeFrame().setVisible(true);
//符合 則跳轉到管理員的后臺管理界面
dispose();
return ;
}
else{
boolean bool=deskService.LoginDeskService(desk);
if(!bool){
JOptionPane.showMessageDialog(null, "賬號或密碼錯誤,請重新輸入!");
return;
}
//登錄成功
new HomeFrame().setVisible(true);
dispose();
}
});
}
開房入住:
@Override
//開房監聽事件
public void mouseClicked(MouseEvent e) {
//獲取輸入的房間號
int houseId=Integer.parseInt(textField.getText());
//獲取輸入的姓名
String name=p_name.getText();
//獲取輸入的年齡
int age=Integer.parseInt(p_age.getText());
//獲取輸入的入住天數
int day=Integer.parseInt(p_day.getText());
//獲取輸入的身份證號
String id=p_id.getText();
//獲取輸入的性別
String sex=p_sex.getText();
//獲取房間型別
String type=p_type.getText();
//封裝到Guest物體中
Guest guest=new Guest();
guest.setG_roomid(houseId);
guest.setG_name(name);
guest.setG_age(age);
guest.setG_days(day);
guest.setG_id(id);
guest.setG_sex(sex);
//封裝到Room物體中
Room room=new Room();
room.setR_id(houseId);
//判斷年齡是否合理
if(!(age>0&&age<100)){
JOptionPane.showMessageDialog(null, "年齡輸入不合理,請重新輸入!");
return;
}
//判斷性別是否合理
if(!(sex.equals("男")||sex.equals("女"))){
JOptionPane.showMessageDialog(null, "性別只能是男或女,請重新輸入!");
return;
}
//入住天數不能小于1
if(!(day>0)){
JOptionPane.showMessageDialog(null, "入住天數不能小于1天,請重新輸入!");
return;
}
boolean bool=rs.OpenRoom(room);
if(!bool){
//房間已滿則開房失敗
JOptionPane.showMessageDialog(null, "該房間已滿,請更換房間!");
return;
}
if(!(type.equals("標準房")||type.equals("套房")||type.equals("雙人房")||type.equals("豪華套房"))){
JOptionPane.showMessageDialog(null, "輸入的資訊有誤,開房失敗!");
return;
}
boolean bool1=gsi.AddGuest(guest);
if(bool1){
//身份證不符合格式也失敗
JOptionPane.showMessageDialog(null, "身份證不符合格式,開房失敗!");
return;
}
}
});
資料庫設計:
用戶表:
CREATE TABLE `NewTable` (
`d_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '前臺id' ,
`d_name` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '姓名' ,
`d_password` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '密碼' ,
INDEX `d_id` (`d_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=latin1 COLLATE=latin1_swedish_ci
AUTO_INCREMENT=112
ROW_FORMAT=COMPACT
;
入住資訊表:
CREATE TABLE `NewTable` (
`g_roomid` int(11) NULL DEFAULT NULL COMMENT '房間id' ,
`g_id` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '顧客編號' ,
`g_name` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '姓名' ,
`g_sex` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '性別' ,
`g_age` int(11) NULL DEFAULT NULL COMMENT '年齡' ,
`g_days` int(11) NULL DEFAULT NULL COMMENT '入住天數' ,
`g_time` datetime NULL DEFAULT NULL COMMENT '入住日期'
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=latin1 COLLATE=latin1_swedish_ci
ROW_FORMAT=COMPACT
;
房間資訊表 :
CREATE TABLE `NewTable` (
`r_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'roo id' ,
`r_type` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT 'room 型別' ,
`r_price` double NULL DEFAULT NULL COMMENT 'room價格' ,
`r_local` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT 'room位置' ,
`r_state` varchar(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT 'room狀態' ,
INDEX `r_id` (`r_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=latin1 COLLATE=latin1_swedish_ci
AUTO_INCREMENT=106
ROW_FORMAT=COMPACT
;
ps:專案來于網路、作者整理優化測驗、若有侵權聯系作者洗掉
總結:
通過這次課程設計,我學到了許多令我受益匪淺的知識,感覺java的界面設計和 mfc差不多,只是java沒有可視化的界面做起來太累了,其他主要是類和物件的問題,實作起來還是挺簡單的,綜合了根據中小型星級酒店的實際情況的特點, 雖然用戶界面比較一般,但操作使用還是方便,符合酒店管理的基本流程,但由于時間倉促,一些不足之處還很多、比如美化和部分功能設計的都比較簡單、但作為學生學習參考以及課程設計還是不錯的選擇,
訂閱專欄獲取原始碼
JavaSwing系列專案推薦:
JavaSwing ATM取款機系統的設計和實作
JavaSwing的經典坦克大戰游戲設計實作
JavaSwing+mysql的圖書管理系統設計實作
JavaSwing+Mysql的酒店管理系統設計實作
JavaSwing+Mysql的餐廳點餐系統設計實作
JavaSwing+Mysql的倉庫管理系統設計實作
JavaSwing+Mysql超市商品管理系統設計實作
javaSwing+TXT學生資訊管理系統設計實作
JavaSwing+mysql學生社團管理系統設計實作
打卡JavaSwing專案更新 9 / 100篇
大家可以點贊、收藏、關注、評論我啦
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/294930.html
標籤:java
上一篇:Java反射超詳解?
下一篇:專欄訂閱須知《必讀》

