旅馆住宿系统
旅馆住宿系统中,旅馆业主可进行添加房间操作。
– 旅馆业主登录旅馆住宿系统后,可以请求添加房间;
– 待进入“房间管理”对话框,单击“添加”按钮可进行添加房间操作;
– 添加房间时,可以设定房间的房间编号、房间类型、房间描述信息;
– 添加房间信息不能缺失,若某一项未填写,要给出提示信息;
– 房间编号长度不超过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;
}
}
}