用Java编写一个成绩管理系统包括增删改查和ui界面
时间: 2024-03-27 10:36:12 浏览: 29
好的,这是一个比较复杂的项目,需要涉及到Java的GUI编程和数据结构等知识。我可以给你提供一些思路和代码示例,但是具体实现还需要你自己去完成。
首先,我们需要定义一个学生类,用于存储学生的信息,包括姓名、学号、性别、年龄、成绩等属性。代码如下:
```java
public class Student {
private String name;
private String id;
private String gender;
private int age;
private double score;
public Student(String name, String id, String gender, int age, double score) {
this.name = name;
this.id = id;
this.gender = gender;
this.age = age;
this.score = score;
}
// 省略getter和setter方法
}
```
接下来,我们需要定义一个学生管理类,用于实现增删改查等操作。代码如下:
```java
import java.util.ArrayList;
public class StudentManager {
private ArrayList<Student> studentList;
public StudentManager() {
studentList = new ArrayList<>();
}
// 添加学生
public void addStudent(Student student) {
studentList.add(student);
}
// 删除学生
public void deleteStudent(int index) {
studentList.remove(index);
}
// 修改学生信息
public void updateStudent(int index, Student student) {
studentList.set(index, student);
}
// 查找学生
public Student findStudent(String id) {
for (Student student : studentList) {
if (student.getId().equals(id)) {
return student;
}
}
return null;
}
// 获取所有学生
public ArrayList<Student> getAllStudents() {
return studentList;
}
}
```
然后,我们需要设计一个GUI界面,用于与用户交互。这个界面可以包括一个表格,显示所有学生的信息,以及一些按钮,如添加、删除、修改、查找等。代码如下:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class StudentUI extends JFrame implements ActionListener {
private StudentManager manager;
private JTextField nameField, idField, genderField, ageField, scoreField;
private JTable table;
public StudentUI() {
this.manager = new StudentManager();
this.setTitle("学生成绩管理系统");
this.setSize(800, 600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());
// 添加表格
String[] columnNames = {"姓名", "学号", "性别", "年龄", "成绩"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
this.add(scrollPane, BorderLayout.CENTER);
// 添加表单
JPanel formPanel = new JPanel(new GridLayout(6, 2));
JLabel nameLabel = new JLabel("姓名:");
nameField = new JTextField();
JLabel idLabel = new JLabel("学号:");
idField = new JTextField();
JLabel genderLabel = new JLabel("性别:");
genderField = new JTextField();
JLabel ageLabel = new JLabel("年龄:");
ageField = new JTextField();
JLabel scoreLabel = new JLabel("成绩:");
scoreField = new JTextField();
JButton addButton = new JButton("添加");
addButton.addActionListener(this);
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(this);
JButton updateButton = new JButton("修改");
updateButton.addActionListener(this);
JButton findButton = new JButton("查找");
findButton.addActionListener(this);
formPanel.add(nameLabel);
formPanel.add(nameField);
formPanel.add(idLabel);
formPanel.add(idField);
formPanel.add(genderLabel);
formPanel.add(genderField);
formPanel.add(ageLabel);
formPanel.add(ageField);
formPanel.add(scoreLabel);
formPanel.add(scoreField);
formPanel.add(addButton);
formPanel.add(deleteButton);
formPanel.add(updateButton);
formPanel.add(findButton);
this.add(formPanel, BorderLayout.SOUTH);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("添加")) {
String name = nameField.getText();
String id = idField.getText();
String gender = genderField.getText();
int age = Integer.parseInt(ageField.getText());
double score = Double.parseDouble(scoreField.getText());
Student student = new Student(name, id, gender, age, score);
manager.addStudent(student);
refreshTable();
} else if (cmd.equals("删除")) {
int index = table.getSelectedRow();
manager.deleteStudent(index);
refreshTable();
} else if (cmd.equals("修改")) {
int index = table.getSelectedRow();
String name = nameField.getText();
String id = idField.getText();
String gender = genderField.getText();
int age = Integer.parseInt(ageField.getText());
double score = Double.parseDouble(scoreField.getText());
Student student = new Student(name, id, gender, age, score);
manager.updateStudent(index, student);
refreshTable();
} else if (cmd.equals("查找")) {
String id = idField.getText();
Student student = manager.findStudent(id);
if (student != null) {
nameField.setText(student.getName());
genderField.setText(student.getGender());
ageField.setText(Integer.toString(student.getAge()));
scoreField.setText(Double.toString(student.getScore()));
}
}
}
// 刷新表格数据
private void refreshTable() {
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0);
ArrayList<Student> students = manager.getAllStudents();
for (Student student : students) {
Object[] rowData = {student.getName(), student.getId(), student.getGender(), student.getAge(), student.getScore()};
model.addRow(rowData);
}
}
}
```
最后,我们只需要在主函数中创建一个界面实例即可。代码如下:
```java
public class Main {
public static void main(String[] args) {
StudentUI ui = new StudentUI();
}
}
```
这样就完成了一个简单的学生成绩管理系统。当然,这只是一个基础的版本,你可以根据自己的需求进行修改和扩展。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)