学生成绩管理系统 建立图形用户界面对学生成绩数据库的数据进行增加、修改、删除、查询等操作。功能要求: 创建若干学生对象,每个学生信息包括学号,姓名,四科成绩(应用数学、大学英语、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数据库,您需要根据自己的数据库类型进行修改。此外,这个示例代码仅实现了基本的增加、修改、删除和查询功能,您可以根据自己的需求进行修改和扩展。

相关推荐

最新推荐

recommend-type

java图形用户界面实现菜单功能

主要为大家详细介绍了java图形用户界面实现菜单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

数据库实验一实验一 熟悉数据库管理工具、数据库和表的基本操作 一、实验目的: 1.了解SQL Server或MYSQL数据库的基本知识; 2.熟悉SQL Se

3.掌握图形化交互工具的基本操作,学会数据库及表的创建与管理; 4.理解和掌握SQL语言: 能够熟练地使用create/alter/drop语句创建、修改和删除数据库、基本表;能够使用insert语句;理解和掌握基本的Select语句。 ...
recommend-type

图形界面数据库学生信息管理系统

自己写了一个简单的学生信息管理系统,使用图形界面,实现登录校验,学生信息的增删查改功能。
recommend-type

学生课程成绩查询管理信息系统分析与设计

该软件是国内首家使用业务导航图形化界面来实现进销存、财务管理和人事工资管理一体化功能的优秀软件,界面图文并茂,生动形象,简单易用;数据结构与数据库设计简单清晰;把复杂的业务流程设计归结为编制相关表格...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依