旅馆住宿系统

旅馆住宿系统中,旅馆业主可进行添加房间操作。

– 旅馆业主登录旅馆住宿系统后,可以请求添加房间;

– 待进入“房间管理”对话框,单击“添加”按钮可进行添加房间操作;

– 添加房间时,可以设定房间的房间编号、房间类型、房间描述信息;

– 添加房间信息不能缺失,若某一项未填写,要给出提示信息;

– 房间编号长度不超过5个字符;

– 房间描述长度不超过1000个字符;

– 房间信息不能重复,成功填写后,可进行保存或取消操作,之后返回“房间管理”对话框,结束添加房间流程。

实验步骤:

 代码:

package org.example;

 

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.HashMap;

import java.util.Map;

 

public class RoomManagementSystem {

    // 模拟数据库,存储房间信息

    private Map<String, Room> rooms = new HashMap<>();

 

    // GUI组件

    private JFrame frame;

    private JTextField roomNumberField;

    private JTextField roomTypeField;

    private JTextArea roomDescriptionArea;

    private JButton addButton;

    private JButton cancelButton;

    private JButton viewRoomsButton; // 添加查看房间按钮

 

    public static void main(String[] args) {

        RoomManagementSystem system = new RoomManagementSystem();

        system.createGUI();

    }

 

    // 创建GUI

    public void createGUI() {

        frame = new JFrame("旅馆住宿系统 - 添加房间");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setSize(400, 350); // 调整窗口大小以容纳新按钮

        frame.setLayout(new GridLayout(6, 2, 10, 10)); // 调整布局以容纳新按钮

 

        // 房间编号

        frame.add(new JLabel("房间编号:"));

        roomNumberField = new JTextField();

        frame.add(roomNumberField);

 

        // 房间类型

        frame.add(new JLabel("房间类型:"));

        roomTypeField = new JTextField();

        frame.add(roomTypeField);

 

        // 房间描述

        frame.add(new JLabel("房间描述:"));

        roomDescriptionArea = new JTextArea();

        roomDescriptionArea.setWrapStyleWord(true);

        roomDescriptionArea.setLineWrap(true);

        frame.add(new JScrollPane(roomDescriptionArea));

 

        // 添加按钮

        addButton = new JButton("添加房间");

        addButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                addRoom();

            }

        });

        frame.add(addButton);

 

        // 取消按钮

        cancelButton = new JButton("取消");

        cancelButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                cancelAddRoom();

            }

        });

        frame.add(cancelButton);

 

        // 查看房间按钮

        viewRoomsButton = new JButton("查看房间");

        viewRoomsButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                viewRooms();

            }

        });

        frame.add(viewRoomsButton);

 

        frame.setVisible(true);

    }

 

    // 添加房间方法

    private void addRoom() {

        String roomNumber = roomNumberField.getText().trim();

        String roomType = roomTypeField.getText().trim();

        String roomDescription = roomDescriptionArea.getText().trim();

 

        if (roomNumber.isEmpty()) {

            JOptionPane.showMessageDialog(frame, "房间编号不能为空", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

        if (roomNumber.length() > 5) {

            JOptionPane.showMessageDialog(frame, "房间编号长度不能超过5个字符", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

        if (rooms.containsKey(roomNumber)) {

            JOptionPane.showMessageDialog(frame, "房间编号已存在", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

        if (roomType.isEmpty()) {

            JOptionPane.showMessageDialog(frame, "房间类型不能为空", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

        if (roomDescription.isEmpty()) {

            JOptionPane.showMessageDialog(frame, "房间描述不能为空", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

        if (roomDescription.length() > 1000) {

            JOptionPane.showMessageDialog(frame, "房间描述长度不能超过1000个字符", "错误", JOptionPane.ERROR_MESSAGE);

            return;

        }

 

        Room room = new Room(roomNumber, roomType, roomDescription);

        rooms.put(roomNumber, room);

        JOptionPane.showMessageDialog(frame, "房间添加成功", "成功", JOptionPane.INFORMATION_MESSAGE);

        clearFields();

    }

 

    // 取消添加房间方法

    private void cancelAddRoom() {

        clearFields();

        JOptionPane.showMessageDialog(frame, "取消添加房间", "提示", JOptionPane.INFORMATION_MESSAGE);

    }

 

    // 查看房间信息方法

    private void viewRooms() {

        StringBuilder roomInfo = new StringBuilder("房间信息:\n");

        if (rooms.isEmpty()) {

            roomInfo.append("暂无房间信息");

        } else {

            for (Room room : rooms.values()) {

                roomInfo.append("房间编号: ").append(room.roomNumber)

                        .append(", 房间类型: ").append(room.roomType)

                        .append(", 房间描述: ").append(room.roomDescription)

                        .append("\n");

            }

        }

        JOptionPane.showMessageDialog(frame, roomInfo.toString(), "房间信息", JOptionPane.INFORMATION_MESSAGE);

    }

 

    // 清空输入框

    private void clearFields() {

        roomNumberField.setText("");

        roomTypeField.setText("");

        roomDescriptionArea.setText("");

    }

 

    // 房间类

    class Room {

        private String roomNumber;

        private String roomType;

        private String roomDescription;

 

        public Room(String roomNumber, String roomType, String roomDescription) {

            this.roomNumber = roomNumber;

            this.roomType = roomType;

            this.roomDescription = roomDescription;

        }

    }

}

 

posted @ 2025-04-09 11:45  不会JAVA的小袁  阅读(21)  评论(0)    收藏  举报