Java、MySQL实现学生成绩管理系统

目录

一、环境配置

1.1 构建jar包路径

1.2 安装Java图形化设计工具winbuilder

1.3 安装MySQL数据库

1.4 JDBC连接数据库

修改代码:

配置Navicat:

1.5 测试程序能否运行

二、需求分析

2.1 功能分析

2.2 用例图

三、概要设计

3.1 模块划分

3.2 UI设计

3.2.1 登录界面UI设计

3.3 流程设计

3.3.1 全局流程图

3.4 数据库设计

四、系统实现

4.1 实现步骤

4.2 关键功能的实现

4.2.1 查询功能

4.2.2 添加功能

4.2.3 修改功能

4.2.4 删除功能

五、资源


一、环境配置

1.1 构建jar包路径

        在项目文件夹右击,依次找到Build Path,Configure Build Path,如图1.1。

图1.1 Biuld Path

        接着分别双击junit和mysql-connector的jar包,如图1.2

图1.2 配置jar包

         在系统目录下找到jar包所在的位置,双击选中,如图1.3

图1.3 选中jar包

        最后得到如图1.4所示的效果,证明导包完成。

 图1.4 成功导入jar包

1.2 安装Java图形化设计工具winbuilder

         选中install new software,如图1.5

图1.5 安装winbuilder

         继续按照图示选中,如图1.6

图1.6 选中winbuilder所在位置

         选中winbuilder.zip,如图1.7

图1.7 安装winbuilder

         等待大概四五分钟即可安装成功。

1.3 安装MySQL数据库

        首先安装MySQL5.5-HaoSQL.exe,直接傻瓜式安装,路径自选,如图1.8

图1.8 安装MySQL

          安装完成后,启动MySQL服务(以后每次用服务器时都要先启动),如图1.9

图1.9 启动MySQL 

        解压navicat for mysql10.0.11简体中文破解版.rar文件,找到文件夹中的navicat.exe即可运行图形化数据库设计软件Navicat。如图1.10

图1.10 安装Navicat

         注:Navicat并非数据库,他只是将MySQL的执行方式图形化了,提高了用户的使用效率。否则每次执行MySQL数据库命令时都要在命令行里执行,效率低下且不容易上手。

1.4 JDBC连接数据库

        打开文件目录下的DbUtil.java文件,如图1.11

图1.11 打开DBUtil

修改代码:

        第13行中的skingstudentmanager代表数据库文件的名字,即skingstudentmanager.sql

        第14行表示数据库的用户名root

        第15行表示数据库用户密码,由于使用的HaoSQL服务,这里默认密码为haosql。你也可以像我一样修改自定义密码,修改方式如图1.14。

       

配置Navicat:

打开Navicat,提示试用?没关系,继续。如图1.12

图1.12 打开Navicat

         新建连接,用户名为root,密码输入haosql。连接名可默认不写,也可以自定义,尽量避免使用中文命名。如图1.13 

图1.13 新建连接

        双击新建好的连接,打开连接。如果报错,说明MySQL服务没有启动。这时候在Windows中搜索服务,找到mysql,如图1.14,启动此服务即可。

 图1.14 启动mysql

        修改mysql密码,依次选中用户、root@localhost。如图1.15

图1.15 修改mysql密码 

         双击后,直接在弹出的界面中修改即可。如图1.16

图1.16 修改mysql密码

1.5 测试程序能否运行

        打开数据库连接,如图1.17,数据库名字颜色改变即可。

 图1.17 连接数据库

        打开eclipse运行DBUtil,显示数据库连接成功即说明成功连接了数据库。如图1.18

 图1.18 成功连接数据库

二、需求分析

2.1 功能分析

1、输入一个同学的姓名或学号,系统可以输出学生信息(所在学院、班级、成绩等)。

2、可以对已录入学生成绩管理系统的信息进行修改(删除、添加)。

3、能添加并保存学生信息,即退出时数据不能丢失。

4、输入不同的用户名和密码实现不同身份登录。

2.2 用例图

三、概要设计

3.1 模块划分

 图3.1 模块划分

3.2 UI设计

3.2.1 登录界面UI设计

登录界面通过LogOnFrm实现,其设计方法如下:

▣放置contentPane控件,名字默认

▣在contentPane上放置两个JLabel、两个JButton和两个JTextField,将其属性分别设置为

        ▶loginBut-"登录"

        ▶helpBut-"重置"

        ▶label1-"用户名:"

        ▶label2-"密码:"

        ▶passWord-"密码输入框"

        ▶userName-"用户名输入框"

        ▶label-"考试成绩管理系统"

图3.2.1 登录界面

         其余界面设计与之类似,这里只给出思路,故不一一列出。

3.3 流程设计

3.3.1 全局流程图

图3.3.1 全局流程图

 登录界面流程图、添加、删除、修改界面流程图等均省略,仅提供思路。

3.4 数据库设计

        首先画出E-R图,如图3.4.1

图3.4.1 E-R图

         其次给出关系模式,这里只给出学生表的关系模式,后期需要根据E-R图及关系模式设计数据库中的表。

student(sno,name,sex,maj,dept,cno)

四、系统实现

4.1 实现步骤

        学生成绩管理系统采用三层架构实现,分别编写了实体类、Dao类、工具类、测试类和界面类。

        三层架构中的表示层由界面类实现,用来制作图形用户界面,是面向用户的层。

        业务逻辑层由Dao类来实现,主要包含了增删改查逻辑操作的代码实现。业务逻辑层是对界面层中用户动作的实现。

        数据访问层通过工具类实现,它将数据库与Java程序连接起来,实现了连接数据库、关闭数据库的功能,只有成功连接数据库后JDBC驱动才能真正对MySQL数据库实现增删改查。

        最后,实体层是从数据表到实体类的映射,是其他三层数据传输的载体。

4.2 关键功能的实现

主要包括增删改查功能的实现,其中除了查询的语句为executeQuery,其他三个都是executeUpdate。

4.2.1 查询功能

图4.2.1 查询功能代码图

4.2.2 添加功能

图4.2.2 添加功能代码图

4.2.3 修改功能

 图4.2.3 修改功能代码图

4.2.4 删除功能

  图4.2.4 删除功能代码

五、资源

        包括源代码、数据库文件、HaoSQL安装文件、Navicat安装包、jar包、winbuilder工具、数据库文件、jdk文件

        资源点这里:百度网盘

        提取码:77j8

  • 20
    点赞
  • 317
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
很抱歉,我作为一名语言模型,并不具备编写完整程序的能力,我无法为您提供完整的源代码。但是我可以给您提供一些参考和思路,希望对您有所帮助。 首先您需要了解 Java Swing 和 MySQL 数据库的基础知识,这是您编写学生成绩管理系统的基础。其次您需要掌握 JDBC(Java Database Connectivity)编程,这是 Java 与数据库交互的重要手段。 接下来,我为您提供一个基本的程序框架,您可以根据这个框架进行代码编写。 ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class StudentGradeManagementSystem extends JFrame implements ActionListener { // 用户登录界面控件 private JLabel userLabel; private JLabel passwordLabel; private JTextField userText; private JPasswordField passwordText; private JButton loginButton; private JButton registerButton; // 学生管理界面控件 // TODO // 教师管理界面控件 // TODO public StudentGradeManagementSystem() { // 用户登录界面初始化 userLabel = new JLabel("用户名"); passwordLabel = new JLabel("密码"); userText = new JTextField(20); passwordText = new JPasswordField(20); loginButton = new JButton("登录"); registerButton = new JButton("注册"); // 用户登录界面布局 JPanel loginPanel = new JPanel(new GridLayout(3, 2)); loginPanel.add(userLabel); loginPanel.add(userText); loginPanel.add(passwordLabel); loginPanel.add(passwordText); loginPanel.add(loginButton); loginPanel.add(registerButton); // 添加事件监听器 loginButton.addActionListener(this); registerButton.addActionListener(this); // TODO: 学生管理界面和教师管理界面的初始化和布局 // 设置窗口标题和大小,显示窗口 setTitle("学生成绩管理系统"); setSize(600, 400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new CardLayout()); add(loginPanel, "loginPanel"); // TODO: 添加学生管理界面和教师管理界面 setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == loginButton) { // 用户登录逻辑 String username = userText.getText(); String password = new String(passwordText.getPassword()); if (login(username, password)) { // 登录成功,显示学生管理界面或教师管理界面 // TODO } else { JOptionPane.showMessageDialog(this, "用户名或密码错误!"); } } else if (e.getSource() == registerButton) { // 用户注册逻辑 // TODO } else { // TODO: 学生管理界面和教师管理界面的事件处理 } } private boolean login(String username, String password) { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/student"; String user = "root"; String pass = "123456"; String sql = "select * from users where username=? and password=?"; try { Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, pass); PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { rs.close(); pstmt.close(); conn.close(); return true; } rs.close(); pstmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return false; } public static void main(String[] args) { new StudentGradeManagementSystem(); } } ``` 以上是一个基本的程序框架,包括用户登录界面和学生管理界面、教师管理界面的初始化和布局,以及登录和注册的事件处理。 您需要根据这个框架,实现学生和教师管理界面的控件和事件处理,以及数据库的连接和操作。在编写过程中,您可以参考 Java Swing 和 MySQL 的相关文档和教程,以及相关的开源项目和示例代码,提高编程效率。 希望以上内容对您有所帮助。如果您有更多问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值