1.引言
1.1目的
1.2背景
眼下疫情正处于重要的防控阶段,在大学生活的学生必不可少的会遇到请假出门的情况,本系统可以帮助学生更方便的申请线上请假,也帮助老师更加方便快速的进行批复和反馈。
2.需求分析
2.1总体目标
分为学生登录端和教师登录端,学生端具有填写登录和填写请假条等功能,将学生的账号和请假手续上传到服务器数据库中。老师端具有登录和批复请假条等功能并具有查看服务器数据库权限。
2.2功能目标
学生端:具有填写登录和填写请假条等功能,将学生的账号和请假手续上传到服务器数据库中。
教师端:具有登录和批复请假条等功能并具有查看服务器数据库权限。
服务器数据库:储存所有学生和教师的账号密码和请假条详细信息等内容。
2.3数据需求
学生端:1.学号 2.登录密码。
教师端:1.工号 2.登录密码。
服务器:MySQL数据库:所有账号密码,请假条详细信息。
2.4数据流图
图1 详细操作流程图
2.5性能要求
服务器应当支持多学生和教师端同时登录,对于上传的信息,服务器应做到及时反馈和回复。
3.系统设计
3.1总体设计
使用mysql 创建一个数据库student_information,在这个数据库中创建两张表,分别为users 用于比对用户登录 id 信息,student 用于请假管理人员查看所有学生请假信息。
使用java swing 设计界面,一个用于用户选择登录身份(老师 or 学生)
一个登录界面,用学号/工号和密码登录请假管理系统,一个学生请假信息填写界面,一个学生查询请假情况界面,一个老师查询所有请假学生的信息界面
使用JDBC驱动器连接Mysql 数据库student_information 信息,Mysql增删改查,建库删库,建表删表。
用java 实现各个界面按钮功能,例如登录、查询、退出、提交等
图2 总体设计关系图
3.2功能设计
主要功能/作用 | 代码文件 | 继承的文件 |
登录界面初始化 | Admin_Main_Window.java | |
背景板设置 | BackgroundPanel.java | Admin_Main_Window.java |
注册登录账号密码验证 | loginView.java | |
数据库控制 | MysqlContrl.java | StudentPermissionslip.java |
学生请假界面工作控制 | StudentPermissionslip.java | |
主函数 | Main.java | |
教师批准请假系界面控制 | Check.java | MysqlContrl.java |
表1 学生请假管理系统功能设计表
图3 功能设计关系图
3.3数据库概念结构设计
数据库整体结构 | 用处 |
student_information | 整体数据库文件 |
student_information.student | 管理学生申请的请假条 |
student_information.users | 管理全部的账号密码 |
表2 数据库概念结构设计表
图4 数据库概念结构关系图
4.实现
4.1开发技术
1.搭建开发环境,官网下载MYSQL Shell,Navicat Premium,JDBC 驱动器等,并且配置好环境。
2.创建数据库student_information
4.2登录数据库
使用命令行登录Mysql数据库
![]() |
图5 登录数据库图
4.3创建用户数据库
数据表 users,check,student,在控制台输入命令后,利用数据库可视化工具创建数据库和数据表。
图6 创建用户数据库图
创建student_information.student 数据表
![]() |
图7 用户数据库图
创建student_information.users
数据表图8图
4.4设计Java Swing 界面
选择界面设计,图标选择为珠海科技学院的校徽,背景图片设计为图书馆,老师和学生的按钮分别两种不同的登录方式,根据身份选择登录身份。
图9 选择界面设计图
登陆界面设置,学生可以输入学号密码点击登录填写请假信息,也可以点击查询,查看请假状态;老师输入工号密码查询批准学生请假信息。输入学号与密码,并且与数据库比对,一致准许登录,不一致会有提示错误。
图10登录界面设计图
学生登录 ID 填写请假信息,当填写的信息不全面的时候,点击提交按钮,系统会提示错误,只有全部填写完毕,才能提交请教信息。界面背景图片选择图书馆喷泉照片,有两个按钮,一个提交信息,一个退出界面。运行截图和源代码截图如下
图11请假信息设计图1
当填写信息不全面的时候,系统会提示无法提交
图12请假信息设计图2
按钮监听事件源代码截图如下
老师查看学生请假信息,并且在 agree 那一栏填写是否通过,1 为通过,0 为不通过。设置两个按钮,同意和驳回。并且点击不同意按钮既可以不通过学生的请假申请,数据提交到数据库并且在界面更新。
图13查看学生请假信息设计图
学生填写请假信息后,如果想要查询是否申请通过,可以通过以下界面的查询按钮,查看状态,1 为通过,0 为不通过。
5.用JDBC 连接数据库
连接student_information
设置 flag 来判断 insert 是否成功
获取数据库的数据后,输出 list
登录判断,查找 id 是否在数据库中,判断 id 与密码是否一一对应
在数据库中通过id 查找agree 状态
5.1测试技术
黑盒测试,让用户来进行使用体验
5.2连接数据库
成功登录并连接数据库,正常运行,没有发现问题
![]() |
图14 连接数据库图
5.3运行程序
成功运行程序并显示了选择用户的界面
图15 运行程序图
5.4学生登录
输入学号密码,点击登录,进入学生请假信息填写界面。
图16 学生登录图
5.5学生填写请假信息
填写请假信息,提交数据库 student_information.student
图17学生填写请假信息图
若少填写信息,系统会提示填写不允许为空。
图18 学生填写请假失败图
5.6教师进行登录
选择蓝色头像登录为老师管理登录
图19 教师进行登录图
5.7教师进行请假批阅和查询
登录查看所有请假学生的填写信息,并且决定是否准许请假,准许为 1, 不准许为 0,老师随时可以更改请假状态,并且在数据库更新。
图20 教师进行数据库查看图