由于要实现界面交互,使用Java Swing库进行开发。

以下是实现代码:

import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList;

public class HotelManagementSystem extends JFrame implements ActionListener { private JLabel welcomeLabel; private JButton roomButton, guestButton, staffButton; private JPanel mainPanel;

private ArrayList<Room> rooms;
private ArrayList<Guest> guests;
private ArrayList<Staff> staffs;

public HotelManagementSystem() {
    // 初始化房间、住户、员工信息
    rooms = new ArrayList<>();
    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 = new ArrayList<>();
    guests.add(new Guest("张三", "103"));
    guests.add(new Guest("李四", "202"));
    guests.add(new Guest("王五", "301"));
    staffs = new ArrayList<>();
    staffs.add(new Staff("马六", "经理", 8000));
    staffs.add(new Staff("钱七", "员工", 5000));
    staffs.add(new Staff("赵八", "员工", 5000));

    // 设置界面元素
    welcomeLabel = new JLabel("欢迎使用酒店信息管理系统!");
    welcomeLabel.setFont(new Font("宋体", Font.BOLD, 24));
    welcomeLabel.setHorizontalAlignment(SwingConstants.CENTER);
    roomButton = new JButton("房间信息管理");
    roomButton.setPreferredSize(new Dimension(200, 100));
    roomButton.setFont(new Font("宋体", Font.PLAIN, 18));
    roomButton.addActionListener(this);
    guestButton = new JButton("住户信息管理");
    guestButton.setPreferredSize(new Dimension(200, 100));
    guestButton.setFont(new Font("宋体", Font.PLAIN, 18));
    guestButton.addActionListener(this);
    staffButton = new JButton("员工信息管理");
    staffButton.setPreferredSize(new Dimension(200, 100));
    staffButton.setFont(new Font("宋体", Font.PLAIN, 18));
    staffButton.addActionListener(this);
    mainPanel = new JPanel(new GridLayout(2, 2, 50, 50));
    mainPanel.add(roomButton);
    mainPanel.add(guestButton);
    mainPanel.add(staffButton);

    // 设置窗体
    setTitle("酒店信息管理系统");
    setSize(800, 600);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    add(welcomeLabel, BorderLayout.NORTH);
    add(mainPanel, BorderLayout.CENTER);
    setVisible(true);
}

public static void main(String[] args) {
    new HotelManagementSystem();
}

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == roomButton) {
        new RoomManagement(rooms);
    } else if (e.getSource() == guestButton) {
        new GuestManagement(guests, rooms);
    } else if (e.getSource() == staffButton) {
        new StaffManagement(staffs);
    }
}

}

房间信息管理界面:

import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList;

public class RoomManagement extends JFrame implements ActionListener { private JLabel titleLabel; private JPanel mainPanel; private ArrayList rooms;

public RoomManagement(ArrayList<Room> rooms) {
    this.rooms = rooms;

    // 设置界面元素
    titleLabel = new JLabel("房间信息管理");
    titleLabel.setFont(new Font("宋体", Font.BOLD, 24));
    titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
    mainPanel = new JPanel(new GridLayout(3, 3, 20, 20));
    for (Room room : rooms) {
        JButton button = new JButton(room.getNumber());
        button.addActionListener(this);
        if (room.isOccupied()) {
            button.setBackground(Color.RED);
        } else {
            button.setBackground(Color.GREEN);
        }
        mainPanel.add(button);
    }

    // 设置窗体
    setTitle("房间信息管理");
    setSize(600, 400);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setLayout(new BorderLayout());
    add(titleLabel, BorderLayout.NORTH);
    add(mainPanel, BorderLayout.CENTER);
    setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
    String roomNumber = e.getActionCommand();
    for (Room room : rooms) {
        if (room.getNumber().equals(roomNumber)) {
            room.setOccupied(!room.isOccupied());
            JButton button = (JButton) e.getSource();
            if (room.isOccupied()) {
                button.setBackground(Color.RED);
            } else {
                button.setBackground(Color.GREEN);
            }
            break;
        }
    }
}

}

住户信息管理界面:

import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList;

public class GuestManagement extends JFrame implements ActionListener { private JLabel titleLabel, nameLabel, roomNumberLabel; private JTextField nameTextField, roomNumberTextField; private JButton addButton, deleteButton, viewButton, editButton; private JList guestList; private DefaultListModel guestListModel; private ArrayList guests; private ArrayList rooms;

public GuestManagement(ArrayList<Guest> guests, ArrayList<Room> rooms) {
    this.guests = guests;
    this.rooms = rooms;

    // 设置界面元素
    titleLabel = new JLabel("住户信息管理");
    titleLabel.setFont(new Font("宋体", Font.BOLD, 24));
    titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
    nameLabel = new JLabel("姓名:");
    nameLabel.setFont(new Font("宋体", Font.PLAIN, 18));
    roomNumberLabel = new JLabel("房间号:");
    roomNumberLabel.setFont(new Font("宋体", Font.PLAIN, 18));
    nameTextField = new JTextField();
    nameTextField.setPreferredSize(new Dimension(200, 30));
    roomNumberTextField = new JTextField();
    roomNumberTextField.setPreferredSize(new Dimension(200, 30));
    addButton = new JButton("增加");
    addButton.setPreferredSize(new Dimension(100, 30));
    addButton.addActionListener(this);
    deleteButton = new JButton("删除");
    deleteButton.setPreferredSize(new Dimension(100, 30));
    deleteButton.addActionListener(this);
    viewButton = new JButton("查看");
    viewButton.setPreferredSize(new Dimension(100, 30));
    viewButton.addActionListener(this);
    editButton = new JButton("编辑");
    editButton.setPreferredSize(new Dimension(100, 30));
    editButton.addActionListener(this);
    guestListModel = new DefaultListModel<>();
    for (Guest guest : guests) {
        guestListModel.addElement(guest);
    }
    guestList = new JList<>(guestListModel);
    guestList.setFont(new Font("宋体", Font.PLAIN, 18));

    // 设置窗体
    setTitle("住户信息管理");
    setSize(800, 600);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setLayout(new BorderLayout());
    JPanel inputPanel = new JPanel(new GridLayout(2, 2, 20, 20));
    inputPanel.add(nameLabel);
    inputPanel.add(nameTextField);
    inputPanel.add(roomNumberLabel);
    inputPanel.add(roomNumberTextField);
    JPanel buttonPanel = new JPanel(new FlowLayout());
    buttonPanel.add(addButton);
    buttonPanel.add(deleteButton);
    buttonPanel.add(viewButton);
    buttonPanel.add(editButton);
    JPanel listPanel = new JPanel(new BorderLayout());
    listPanel.add(new JScrollPane(guestList), BorderLayout.CENTER);
    add(titleLabel, BorderLayout.NORTH);
    add(inputPanel, BorderLayout.CENTER);
    add(buttonPanel, BorderLayout.SOUTH);
    add(listPanel, BorderLayout.EAST);
    setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == addButton) {
        String name = nameTextField.getText();
        String roomNumber = roomNumberTextField.getText();
        boolean roomFound = false;
        for (Room room : rooms) {
            if (room.getNumber().equals(roomNumber)) {
                roomFound = true;
                if (room.isOccupied()) {
                    JOptionPane.showMessageDialog(this, "该房间已经有住户了!");
                } else {
                    guests.add(new Guest(name, roomNumber));
                    guestListModel.addElement(new Guest(name, roomNumber));
                    room.setOccupied(true);
                    JOptionPane.showMessageDialog(this, "增加成功!");
                }
                break;
            }
        }
        if (!roomFound) {
            JOptionPane.showMessageDialog(this, "没有找到该房间!");
        }
    } else if (e.getSource() == deleteButton) {
        int selectedIndex = guestList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要删除的住户!");
        } else {
            Guest guest = guestListModel.getElementAt(selectedIndex);
            for (Room room : rooms) {
                if (room.getNumber().equals(guest.getRoomNumber())) {
                    room.setOccupied(false);
                    break;
                }
            }
            guests.remove(guest);
            guestListModel.remove(selectedIndex);
            JOptionPane.showMessageDialog(this, "删除成功!");
        }
    } else if (e.getSource() == viewButton) {
        int selectedIndex = guestList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要查看的住户!");
        } else {
            Guest guest = guestListModel.getElementAt(selectedIndex);
            JOptionPane.showMessageDialog(this, "姓名:" + guest.getName() + "\n房间号:" + guest.getRoomNumber());
        }
    } else if (e.getSource() == editButton) {
        int selectedIndex = guestList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要编辑的住户!");
        } else {
            Guest guest = guestListModel.getElementAt(selectedIndex);
            String newName = JOptionPane.showInputDialog(this, "请输入新姓名:", guest.getName());
            String newRoomNumber = JOptionPane.showInputDialog(this, "请输入新房间号:", guest.getRoomNumber());
            boolean roomFound = false;
            for (Room room : rooms) {
                if (room.getNumber().equals(newRoomNumber)) {
                    roomFound = true;
                    if (room.isOccupied() && !newRoomNumber.equals(guest.getRoomNumber())) {
                        JOptionPane.showMessageDialog(this, "该房间已经有住户了!");
                    } else {
                        guest.setName(newName);
                        guest.setRoomNumber(newRoomNumber);
                        guestListModel.set(selectedIndex, guest);
                        for (Room r : rooms) {
                            if (r.getNumber().equals(guest.getRoomNumber())) {
                                r.setOccupied(true);
                            } else if (r.getNumber().equals(guest.getRoomNumber())) {
                                r.setOccupied(false);
                            }
                        }
                        JOptionPane.showMessageDialog(this, "编辑成功!");
                    }
                    break;
                }
            }
            if (!roomFound) {
                JOptionPane.showMessageDialog(this, "没有找到该房间!");
            }
        }
    }
}

}

员工信息管理界面:

import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList;

public class StaffManagement extends JFrame implements ActionListener { private JLabel titleLabel, nameLabel, positionLabel, salaryLabel; private JTextField nameTextField, positionTextField, salaryTextField; private JButton addButton, deleteButton, viewButton, editButton; private JList staffList; private DefaultListModel staffListModel; private ArrayList staffs;

public StaffManagement(ArrayList<Staff> staffs) {
    this.staffs = staffs;

    // 设置界面元素
    titleLabel = new JLabel("员工信息管理");
    titleLabel.setFont(new Font("宋体", Font.BOLD, 24));
    titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
    nameLabel = new JLabel("姓名:");
    nameLabel.setFont(new Font("宋体", Font.PLAIN, 18));
    positionLabel = new JLabel("职位:");
    positionLabel.setFont(new Font("宋体", Font.PLAIN, 18));
    salaryLabel = new JLabel("薪资:");
    salaryLabel.setFont(new Font("宋体", Font.PLAIN, 18));
    nameTextField = new JTextField();
    nameTextField.setPreferredSize(new Dimension(200, 30));
    positionTextField = new JTextField();
    positionTextField.setPreferredSize(new Dimension(200, 30));
    salaryTextField = new JTextField();
    salaryTextField.setPreferredSize(new Dimension(200, 30));
    addButton = new JButton("增加");
    addButton.setPreferredSize(new Dimension(100, 30));
    addButton.addActionListener(this);
    deleteButton = new JButton("删除");
    deleteButton.setPreferredSize(new Dimension(100, 30));
    deleteButton.addActionListener(this);
    viewButton = new JButton("查看");
    viewButton.setPreferredSize(new Dimension(100, 30));
    viewButton.addActionListener(this);
    editButton = new JButton("编辑");
    editButton.setPreferredSize(new Dimension(100, 30));
    editButton.addActionListener(this);
    staffListModel = new DefaultListModel<>();
    for (Staff staff : staffs) {
        staffListModel.addElement(staff);
    }
    staffList = new JList<>(staffListModel);
    staffList.setFont(new Font("宋体", Font.PLAIN, 18));

    // 设置窗体
    setTitle("员工信息管理");
    setSize(800, 600);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setLayout(new BorderLayout());
    JPanel inputPanel = new JPanel(new GridLayout(3, 2, 20, 20));
    inputPanel.add(nameLabel);
    inputPanel.add(nameTextField);
    inputPanel.add(positionLabel);
    inputPanel.add(positionTextField);
    inputPanel.add(salaryLabel);
    inputPanel.add(salaryTextField);
    JPanel buttonPanel = new JPanel(new FlowLayout());
    buttonPanel.add(addButton);
    buttonPanel.add(deleteButton);
    buttonPanel.add(viewButton);
    buttonPanel.add(editButton);
    JPanel listPanel = new JPanel(new BorderLayout());
    listPanel.add(new JScrollPane(staffList), BorderLayout.CENTER);
    add(titleLabel, BorderLayout.NORTH);
    add(inputPanel, BorderLayout.CENTER);
    add(buttonPanel, BorderLayout.SOUTH);
    add(listPanel, BorderLayout.EAST);
    setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == addButton) {
        String name = nameTextField.getText();
        String position = positionTextField.getText();
        int salary = Integer.parseInt(salaryTextField.getText());
        staffs.add(new Staff(name, position, salary));
        staffListModel.addElement(new Staff(name, position, salary));
        JOptionPane.showMessageDialog(this, "增加成功!");
    } else if (e.getSource() == deleteButton) {
        int selectedIndex = staffList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要删除的员工!");
        } else {
            Staff staff = staffListModel.getElementAt(selectedIndex);
            staffs.remove(staff);
            staffListModel.remove(selectedIndex);
            JOptionPane.showMessageDialog(this, "删除成功!");
        }
    } else if (e.getSource() == viewButton) {
        int selectedIndex = staffList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要查看的员工!");
        } else {
            Staff staff = staffListModel.getElementAt(selectedIndex);
            JOptionPane.showMessageDialog(this, "姓名:" + staff.getName() + "\n职位:" + staff.getPosition() + "\n薪资:" + staff.getSalary());
        }
    } else if (e.getSource() == editButton) {
        int selectedIndex = staffList.getSelectedIndex();
        if (selectedIndex == -1) {
            JOptionPane.showMessageDialog(this, "请选择要编辑的员工!");
        } else {
            Staff staff = staffListModel.getElementAt(selectedIndex);
            String newName = JOptionPane.showInputDialog(this, "请输入新姓名:", staff.getName());
            String newPosition = JOptionPane.showInputDialog(this, "请输入新职位:", staff.getPosition());
            String newSalaryStr = JOptionPane.showInputDialog(this, "请输入新薪资:", staff.getSalary());
            int newSalary = Integer.parseInt(newSalaryStr);
            staff.setName(newName);
            staff.setPosition(newPosition);
            staff.setSalary(newSalary);
            staffListModel.set(selectedIndex, staff);
            JOptionPane.showMessageDialog(this, "编辑成功!");
        }
    }
}

}

房间、住户、员工实体类:

public 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;
}

}

public 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 void setName(String name) {
    this.name = name;
}

public String getRoomNumber() {
    return roomNumber;
}

public void setRoomNumber(String roomNumber) {
    this.roomNumber = roomNumber;
}

@Overrid
请你使用java语言设计一个简单的酒店信息管理系统具体要求如下: 1可对房间信息进行查看、编辑编辑即更改房间的入住状态初始房间有9间:101、102、103;201、202、203;301、302、303其中103、202、301已经入住 2可对住户信息进行增加、删除、查看、编辑初始住户有三位:张三、李四、王五分别入住了103、202、301 3可对酒店员工信息进行增加、删除、查看、编辑初始员工有

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

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