要求使用对象和类,继承、多态、抽象类、接口、数组、集合、 Swing 框架等知识点。写一个学生管理系统
时间: 2023-07-03 11:17:59 浏览: 46
好的,我可以帮您写一个简单的学生管理系统。首先,我们需要定义一个学生类,包含学生的姓名、学号、年龄、性别等属性。代码如下:
```
public class Student {
private String name;
private String id;
private int age;
private String gender;
public Student(String name, String id, int age, String gender) {
this.name = name;
this.id = id;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
public void setId(String id) {
this.id = id;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
```
接下来,我们需要定义一个学生管理系统类,包含添加学生、删除学生、修改学生信息、查询学生信息等操作。代码如下:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class StudentManagementSystem extends JFrame implements ActionListener {
private JLabel nameLabel, idLabel, ageLabel, genderLabel;
private JTextField nameTextField, idTextField, ageTextField, genderTextField;
private JButton addButton, deleteButton, updateButton, searchButton, clearButton;
private JTextArea infoTextArea;
private ArrayList<Student> studentList;
public StudentManagementSystem() {
setTitle("学生管理系统");
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
nameLabel = new JLabel("姓名:");
inputPanel.add(nameLabel);
nameTextField = new JTextField();
inputPanel.add(nameTextField);
idLabel = new JLabel("学号:");
inputPanel.add(idLabel);
idTextField = new JTextField();
inputPanel.add(idTextField);
ageLabel = new JLabel("年龄:");
inputPanel.add(ageLabel);
ageTextField = new JTextField();
inputPanel.add(ageTextField);
genderLabel = new JLabel("性别:");
inputPanel.add(genderLabel);
genderTextField = new JTextField();
inputPanel.add(genderTextField);
add(inputPanel, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new FlowLayout());
addButton = new JButton("添加");
addButton.addActionListener(this);
buttonPanel.add(addButton);
deleteButton = new JButton("删除");
deleteButton.addActionListener(this);
buttonPanel.add(deleteButton);
updateButton = new JButton("修改");
updateButton.addActionListener(this);
buttonPanel.add(updateButton);
searchButton = new JButton("查询");
searchButton.addActionListener(this);
buttonPanel.add(searchButton);
clearButton = new JButton("清空");
clearButton.addActionListener(this);
buttonPanel.add(clearButton);
add(buttonPanel, BorderLayout.CENTER);
infoTextArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(infoTextArea);
add(scrollPane, BorderLayout.SOUTH);
studentList = new ArrayList<>();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
String name = nameTextField.getText();
String id = idTextField.getText();
int age = Integer.parseInt(ageTextField.getText());
String gender = genderTextField.getText();
Student student = new Student(name, id, age, gender);
studentList.add(student);
infoTextArea.append("添加学生成功:" + student.toString() + "\n");
} else if (e.getSource() == deleteButton) {
String id = idTextField.getText();
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
Student student = studentList.remove(i);
infoTextArea.append("删除学生成功:" + student.toString() + "\n");
break;
}
}
} else if (e.getSource() == updateButton) {
String id = idTextField.getText();
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
Student student = studentList.get(i);
student.setName(nameTextField.getText());
student.setAge(Integer.parseInt(ageTextField.getText()));
student.setGender(genderTextField.getText());
infoTextArea.append("修改学生信息成功:" + student.toString() + "\n");
break;
}
}
} else if (e.getSource() == searchButton) {
String id = idTextField.getText();
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
Student student = studentList.get(i);
infoTextArea.append("查询学生信息成功:" + student.toString() + "\n");
break;
}
}
} else if (e.getSource() == clearButton) {
nameTextField.setText("");
idTextField.setText("");
ageTextField.setText("");
genderTextField.setText("");
infoTextArea.setText("");
}
}
public static void main(String[] args) {
StudentManagementSystem studentManagementSystem = new StudentManagementSystem();
studentManagementSystem.setVisible(true);
}
}
```
这个学生管理系统使用了 Swing 框架构建用户界面,并且实现了添加学生、删除学生、修改学生信息、查询学生信息、清空输入框等操作。您可以根据需求进行修改和扩展。