Java 酒店信息管理系统

本系统使用 Java Swing 框架开发,实现酒店房间、住户、员工信息的管理功能。

功能概述

  • 房间管理: 查看房间信息、编辑房间入住状态(空闲/已入住)。- 住户管理: 添加、删除、查看、编辑住户信息,包括姓名和入住房间号。- 员工管理: 添加、删除、查看、编辑员工信息,包括姓名、职位和薪资。

初始数据

  • 房间:9间(101、102、103、201、202、203、301、302、303),其中 103、202、301 已入住。- 住户:3位(张三、李四、王五),分别入住了 103、202、301。- 员工:3位(马六、钱七、赵八),职位分别是经理、员工、员工,薪资分别是 8000、5000、5000。

代码示例javaimport java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;

import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;

public class HotelManagementSystem {

private JFrame frame;    private JTable roomTable;    private JTable guestTable;    private JTable staffTable;

private List<Room> rooms = new ArrayList<>();    private List<Guest> guests = new ArrayList<>();    private List<Staff> staffs = new ArrayList<>();

public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() {            public void run() {                try {                    HotelManagementSystem window = new HotelManagementSystem();                    window.frame.setVisible(true);                } catch (Exception e) {                    e.printStackTrace();                }            }        });    }

public HotelManagementSystem() {        initialize();        initData();    }

private void initialize() {        frame = new JFrame();        frame.setBounds(100, 100, 800, 600);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setTitle('酒店信息管理系统');

    JLabel welcomeLabel = new JLabel('欢迎使用酒店信息管理系统!');        frame.getContentPane().add(welcomeLabel, BorderLayout.NORTH);

    JPanel roomPanel = new JPanel();        frame.getContentPane().add(roomPanel, BorderLayout.WEST);

    JLabel roomLabel = new JLabel('房间信息');        roomPanel.add(roomLabel);

    DefaultTableModel roomTableModel = new DefaultTableModel(new Object[][] {}, new String[] { '房间号', '状态' });        roomTable = new JTable(roomTableModel);        roomTable.getColumnModel().getColumn(0).setPreferredWidth(100);        roomTable.getColumnModel().getColumn(1).setPreferredWidth(100);        roomPanel.add(new JScrollPane(roomTable));

    JPanel guestPanel = new JPanel();        frame.getContentPane().add(guestPanel, BorderLayout.CENTER);

    JLabel guestLabel = new JLabel('住户信息');        guestPanel.add(guestLabel);

    DefaultTableModel guestTableModel = new DefaultTableModel(new Object[][] {}, new String[] { '姓名', '房间号' });        guestTable = new JTable(guestTableModel);        guestTable.getColumnModel().getColumn(0).setPreferredWidth(100);        guestTable.getColumnModel().getColumn(1).setPreferredWidth(100);        guestPanel.add(new JScrollPane(guestTable));

    JPanel staffPanel = new JPanel();        frame.getContentPane().add(staffPanel, BorderLayout.EAST);

    JLabel staffLabel = new JLabel('员工信息');        staffPanel.add(staffLabel);

    DefaultTableModel staffTableModel = new DefaultTableModel(new Object[][] {}, new String[] { '姓名', '职位', '薪资' });        staffTable = new JTable(staffTableModel);        staffTable.getColumnModel().getColumn(0).setPreferredWidth(100);        staffTable.getColumnModel().getColumn(1).setPreferredWidth(100);        staffTable.getColumnModel().getColumn(2).setPreferredWidth(100);        staffPanel.add(new JScrollPane(staffTable));

    JPanel controlPanel = new JPanel();        frame.getContentPane().add(controlPanel, BorderLayout.SOUTH);

    JLabel instructionLabel = new JLabel('请选择要进行的操作:');        controlPanel.add(instructionLabel);

    JButton addRoomButton = new JButton('添加房间');        addRoomButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String roomNumber = javax.swing.JOptionPane.showInputDialog(frame, '请输入房间号:');                if (roomNumber != null) {                    rooms.add(new Room(roomNumber));                    refreshRoomTable();                }            }        });        controlPanel.add(addRoomButton);

    JButton editRoomButton = new JButton('编辑房间');        editRoomButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                int selectedRow = roomTable.getSelectedRow();                if (selectedRow >= 0) {                    Room room = rooms.get(selectedRow);                    room.setOccupied(!room.isOccupied());                    refreshRoomTable();                }            }        });        controlPanel.add(editRoomButton);

    JButton addGuestButton = new JButton('添加住户');        addGuestButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String name = javax.swing.JOptionPane.showInputDialog(frame, '请输入姓名:');                if (name != null) {                    String roomNumber = javax.swing.JOptionPane.showInputDialog(frame, '请输入房间号:');                    if (roomNumber != null) {                        guests.add(new Guest(name, roomNumber));                        refreshGuestTable();                    }                }            }        });        controlPanel.add(addGuestButton);

    JButton deleteGuestButton = new JButton('删除住户');        deleteGuestButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                int selectedRow = guestTable.getSelectedRow();                if (selectedRow >= 0) {                    guests.remove(selectedRow);                    refreshGuestTable();                }            }        });        controlPanel.add(deleteGuestButton);

    JButton addStaffButton = new JButton('添加员工');        addStaffButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String name = javax.swing.JOptionPane.showInputDialog(frame, '请输入姓名:');                if (name != null) {                    String position = javax.swing.JOptionPane.showInputDialog(frame, '请输入职位:');                    if (position != null) {                        String salary = javax.swing.JOptionPane.showInputDialog(frame, '请输入薪资:');                        if (salary != null) {                            staffs.add(new Staff(name, position, Integer.parseInt(salary)));                            refreshStaffTable();                        }                    }                }            }        });        controlPanel.add(addStaffButton);

    JButton deleteStaffButton = new JButton('删除员工');        deleteStaffButton.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                int selectedRow = staffTable.getSelectedRow();                if (selectedRow >= 0) {                    staffs.remove(selectedRow);                    refreshStaffTable();                }            }        });        controlPanel.add(deleteStaffButton);    }

private void initData() {        rooms.add(new Room('101'));        rooms.add(new Room('102'));        rooms.add(new Room('103', true));        rooms.add(new Room('201'));        rooms.add(new Room('202', true));        rooms.add(new Room('203'));        rooms.add(new Room('301', true));        rooms.add(new Room('302'));        rooms.add(new Room('303'));

    guests.add(new Guest('张三', '103'));        guests.add(new Guest('李四', '202'));        guests.add(new Guest('王五', '301'));

    staffs.add(new Staff('马六', '经理', 8000));        staffs.add(new Staff('钱七', '员工', 5000));        staffs.add(new Staff('赵八', '员工', 5000));

    refreshRoomTable();        refreshGuestTable();        refreshStaffTable();    }

private void refreshRoomTable() {        DefaultTableModel model = (DefaultTableModel) roomTable.getModel();        model.setRowCount(0);        for (Room room : rooms) {            model.addRow(new Object[] { room.getNumber(), room.isOccupied() ? '已入住' : '空闲' });        }    }

private void refreshGuestTable() {        DefaultTableModel model = (DefaultTableModel) guestTable.getModel();        model.setRowCount(0);        for (Guest guest : guests) {            model.addRow(new Object[] { guest.getName(), guest.getRoomNumber() });        }    }

private void refreshStaffTable() {        DefaultTableModel model = (DefaultTableModel) staffTable.getModel();        model.setRowCount(0);        for (Staff staff : staffs) {            model.addRow(new Object[] { staff.getName(), staff.getPosition(), staff.getSalary() });        }    }

private static class Room {

    private String number;        private boolean occupied;

    public Room(String number) {            this.number = number;            this.occupied = false;        }

    public Room(String number, boolean occupied) {            this.number = number;            this.occupied = occupied;        }

    public String getNumber() {            return number;        }

    public boolean isOccupied() {            return occupied;        }

    public void setOccupied(boolean occupied) {            this.occupied = occupied;        }

}

private static class Guest {

    private String name;        private String roomNumber;

    public Guest(String name, String roomNumber) {            this.name = name;            this.roomNumber = roomNumber;        }

    public String getName() {            return name;        }

    public String getRoomNumber() {            return roomNumber;        }

}

private static class Staff {

    private String name;        private String position;        private int salary;

    public Staff(String name, String position, int salary) {            this.name = name;            this.position = position;            this.salary = salary;        }

    public String getName() {            return name;        }

    public String getPosition() {            return position;        }

    public int getSalary() {            return salary;        }

}
Java 酒店信息管理系统:房间、住户、员工信息管理

原文地址: https://www.cveoy.top/t/topic/oEQb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录