Java完整代码给学生分配宿舍且有图形页面
时间: 2024-03-14 09:44:49 浏览: 106
以下是一个简单的Java学生宿舍管理系统的代码,实现了给学生分配宿舍的功能,并且使用Java Swing实现了图形页面。需要注意的是,这只是一个简单的示例,实际应用中还需要根据具体需求进行调整和完善。
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DormitoryManagement extends JFrame implements ActionListener {
private JLabel label1, label2, label3, label4, label5;
private JTextField text1, text2, text3, text4, text5;
private JButton button1, button2;
private JTextArea area;
private JComboBox<String> comboBox;
private String[] dormitoryType = {"男生宿舍", "女生宿舍"};
public DormitoryManagement() {
super("学生宿舍管理系统");
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
label1 = new JLabel("姓名:");
text1 = new JTextField(10);
label2 = new JLabel("学号:");
text2 = new JTextField(10);
label3 = new JLabel("性别:");
text3 = new JTextField(10);
label4 = new JLabel("年龄:");
text4 = new JTextField(10);
label5 = new JLabel("宿舍类型:");
comboBox = new JComboBox<>(dormitoryType);
button1 = new JButton("给学生分配宿舍");
button2 = new JButton("清空");
area = new JTextArea(10, 40);
add(label1);
add(text1);
add(label2);
add(text2);
add(label3);
add(text3);
add(label4);
add(text4);
add(label5);
add(comboBox);
add(button1);
add(button2);
add(area);
button1.addActionListener(this);
button2.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
String name = text1.getText();
String id = text2.getText();
String gender = text3.getText();
int age = Integer.parseInt(text4.getText());
String dormitoryType = comboBox.getSelectedItem().toString();
Dormitory dormitory = findAvailableDormitory(dormitoryType);
if (dormitory != null) {
Student student = new Student(name, id, gender, age);
dormitory.addStudent(student);
area.append("姓名:" + name + " 学号:" + id + " 性别:" + gender + " 年龄:" + age + " 已分配至宿舍:" + dormitory.getNumber() + "\n");
} else {
area.append("没有可用的宿舍。\n");
}
} else if (e.getSource() == button2) {
text1.setText("");
text2.setText("");
text3.setText("");
text4.setText("");
area.setText("");
}
}
private Dormitory findAvailableDormitory(String dormitoryType) {
// TODO: 实现查找可用宿舍的逻辑
return null;
}
public static void main(String[] args) {
new DormitoryManagement();
}
}
class Student {
private String name;
private String id;
private String gender;
private int age;
public Student(String name, String id, String gender, int age) {
this.name = name;
this.id = id;
this.gender = gender;
this.age = age;
}
// getter和setter方法
}
class Dormitory {
private String number;
private String type;
private int capacity;
private int available;
private Student[] students;
public Dormitory(String number, String type, int capacity) {
this.number = number;
this.type = type;
this.capacity = capacity;
this.available = capacity;
this.students = new Student[capacity];
}
public void addStudent(Student student) {
students[capacity - available] = student;
available--;
}
// getter和setter方法
}
```
在上述代码中,使用了三个类:`DormitoryManagement`、`Student`和`Dormitory`。`DormitoryManagement`类是主类,实现了图形页面和学生分配宿舍的功能;`Student`类表示学生,包含学生的基本信息;`Dormitory`类表示宿舍,包含宿舍的编号、类型、容纳人数等信息,并实现了添加学生的方法。
在`DormitoryManagement`类中,实现了`findAvailableDormitory`方法,用于查找可用的宿舍。具体实现需要根据实际需求进行调整,这里只是一个简单的示例。
需要注意的是,这里使用了Java Swing实现了图形页面,需要了解Java Swing的基本知识才能理解代码。如果您不熟悉Java Swing,可以先学习一下相关知识。
阅读全文