Java 酒店信息管理系统:房间、住户、员工信息管理
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; }
}
原文地址: https://www.cveoy.top/t/topic/oEQb 著作权归作者所有。请勿转载和采集!