学生成绩管理系统 建立图形用户界面对学生成绩数据库的数据进行增加、修改、删除、查询等操作。功能要求: 创建若干学生对象,每个学生信息包括学号,姓名,四科成绩(应用数学、大学英语、Java程序设计、数据库)。 可以按姓名或学号查询个人信息 可以修改学生成绩 可以删除学生记录 可以计算每学生的平均成绩、显示学生信息、按平均成绩排序,输出排序结果; 可以计算并输出各科平均分,最高分和最低分。 输入学生信息时,必须有容错处理的能力 用图形用户界面完成人机交互 学生以学号注册并登录,信息用数据库存放。代码
时间: 2024-03-11 22:43:47 浏览: 17
以下是一个简单的Java学生成绩管理系统的示例代码,包括图形用户界面和数据库。这个示例代码可以实现增加、修改、删除、查询学生信息的功能,以及计算每个学生的平均成绩、显示学生信息、排序、计算各科平均分、最高分和最低分等功能。
请注意,这只是一个示例代码,您可以根据自己的需求进行修改和扩展。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class StudentGradeManagementSystem extends JFrame implements ActionListener {
private JLabel label1, label2, label3, label4, label5, label6, label7;
private JTextField text1, text2, text3, text4, text5, text6, text7;
private JButton button1, button2, button3, button4, button5, button6;
private JTextArea textArea;
private JScrollPane scrollPane;
private Connection connection = null;
private PreparedStatement preparedStatement = null;
public StudentGradeManagementSystem() {
initUI();
initDB();
}
private void initUI() {
setTitle("学生成绩管理系统");
setLayout(new GridLayout(8, 2));
setSize(600, 600);
// 第一行:学号
label1 = new JLabel("学号:");
text1 = new JTextField(10);
add(label1);
add(text1);
// 第二行:姓名
label2 = new JLabel("姓名:");
text2 = new JTextField(10);
add(label2);
add(text2);
// 第三行:应用数学成绩
label3 = new JLabel("应用数学成绩:");
text3 = new JTextField(10);
add(label3);
add(text3);
// 第四行:大学英语成绩
label4 = new JLabel("大学英语成绩:");
text4 = new JTextField(10);
add(label4);
add(text4);
// 第五行:Java程序设计成绩
label5 = new JLabel("Java程序设计成绩:");
text5 = new JTextField(10);
add(label5);
add(text5);
// 第六行:数据库成绩
label6 = new JLabel("数据库成绩:");
text6 = new JTextField(10);
add(label6);
add(text6);
// 第七行:按钮
button1 = new JButton("添加");
button1.addActionListener(this);
button2 = new JButton("修改");
button2.addActionListener(this);
button3 = new JButton("删除");
button3.addActionListener(this);
button4 = new JButton("查询");
button4.addActionListener(this);
button5 = new JButton("排序");
button5.addActionListener(this);
button6 = new JButton("统计");
button6.addActionListener(this);
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
add(button6);
// 第八行:文本框
label7 = new JLabel("学生信息:");
textArea = new JTextArea(15, 30);
textArea.setEditable(false);
scrollPane = new JScrollPane(textArea);
add(label7);
add(scrollPane);
setVisible(true);
}
private void initDB() {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void addStudent() {
try {
String sql = "INSERT INTO student (id, name, math, english, java, database) VALUES (?, ?, ?, ?, ?, ?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, text1.getText());
preparedStatement.setString(2, text2.getText());
preparedStatement.setString(3, text3.getText());
preparedStatement.setString(4, text4.getText());
preparedStatement.setString(5, text5.getText());
preparedStatement.setString(6, text6.getText());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void updateStudent() {
try {
String sql = "UPDATE student SET name=?, math=?, english=?, java=?, database=? WHERE id=?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, text2.getText());
preparedStatement.setString(2, text3.getText());
preparedStatement.setString(3, text4.getText());
preparedStatement.setString(4, text5.getText());
preparedStatement.setString(5, text6.getText());
preparedStatement.setString(6, text1.getText());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void deleteStudent() {
try {
String sql = "DELETE FROM student WHERE id=?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, text1.getText());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void searchStudent() {
try {
String sql = "SELECT * FROM student WHERE id=? OR name=?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, text1.getText());
preparedStatement.setString(2, text2.getText());
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
textArea.append("学号:" + resultSet.getString("id") + "\n");
textArea.append("姓名:" + resultSet.getString("name") + "\n");
textArea.append("应用数学成绩:" + resultSet.getString("math") + "\n");
textArea.append("大学英语成绩:" + resultSet.getString("english") + "\n");
textArea.append("Java程序设计成绩:" + resultSet.getString("java") + "\n");
textArea.append("数据库成绩:" + resultSet.getString("database") + "\n\n");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private void sortStudent() {
try {
String sql = "SELECT * FROM student ORDER BY (math+english+java+database)/4 DESC";
preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
textArea.setText("");
while (resultSet.next()) {
textArea.append("学号:" + resultSet.getString("id") + "\n");
textArea.append("姓名:" + resultSet.getString("name") + "\n");
textArea.append("应用数学成绩:" + resultSet.getString("math") + "\n");
textArea.append("大学英语成绩:" + resultSet.getString("english") + "\n");
textArea.append("Java程序设计成绩:" + resultSet.getString("java") + "\n");
textArea.append("数据库成绩:" + resultSet.getString("database") + "\n");
textArea.append("平均成绩:" + (resultSet.getInt("math") + resultSet.getInt("english") + resultSet.getInt("java") + resultSet.getInt("database")) / 4 + "\n\n");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private void statisticsStudent() {
try {
String sql = "SELECT AVG(math), AVG(english), AVG(java), AVG(database), MAX(math), MAX(english), MAX(java), MAX(database), MIN(math), MIN(english), MIN(java), MIN(database) FROM student";
preparedStatement = connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
textArea.setText("");
while (resultSet.next()) {
textArea.append("应用数学平均分:" + resultSet.getFloat(1) + "\n");
textArea.append("大学英语平均分:" + resultSet.getFloat(2) + "\n");
textArea.append("Java程序设计平均分:" + resultSet.getFloat(3) + "\n");
textArea.append("数据库平均分:" + resultSet.getFloat(4) + "\n");
textArea.append("应用数学最高分:" + resultSet.getFloat(5) + "\n");
textArea.append("大学英语最高分:" + resultSet.getFloat(6) + "\n");
textArea.append("Java程序设计最高分:" + resultSet.getFloat(7) + "\n");
textArea.append("数据库最高分:" + resultSet.getFloat(8) + "\n");
textArea.append("应用数学最低分:" + resultSet.getFloat(9) + "\n");
textArea.append("大学英语最低分:" + resultSet.getFloat(10) + "\n");
textArea.append("Java程序设计最低分:" + resultSet.getFloat(11) + "\n");
textArea.append("数据库最低分:" + resultSet.getFloat(12) + "\n");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
addStudent();
textArea.setText("添加成功!");
} else if (e.getSource() == button2) {
updateStudent();
textArea.setText("修改成功!");
} else if (e.getSource() == button3) {
deleteStudent();
textArea.setText("删除成功!");
} else if (e.getSource() == button4) {
searchStudent();
} else if (e.getSource() == button5) {
sortStudent();
} else if (e.getSource() == button6) {
statisticsStudent();
}
}
public static void main(String[] args) {
new StudentGradeManagementSystem();
}
}
```
请注意,这个示例代码仅适用于MySQL数据库,您需要根据自己的数据库类型进行修改。此外,这个示例代码仅实现了基本的增加、修改、删除和查询功能,您可以根据自己的需求进行修改和扩展。