基於JavaSwing設計和實現的酒店管理系統
前言:
項目是使用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管理系統內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!