基于JavaGUI实现的学生点名系统

基于Java设计的点名系统

项目说明

需求分析(总体概述)

基本功能:

系统支持新的学生信息的加入、删除和修改,学生信息包括学号、姓名、图像等,并支持文件存储,以及从文件中读入学生的相关信息;

系统支持多种点名策略:

--1、随机点名
--2、优先点名曾经缺勤的学生,可以根据缺勤拼读增大点名概率;
--3、按照特定数据规则点名,如对学号最后两位数除5余2的学生进行点名;
  • 点名结果存文件,系统每次启动都能够加载历史点名信息;
  • 输出点名结果信息至数据库。数据库可使用 MySQL,SQLserver sqlLite 等;
  • 在学期末依据这学期的点名结果,形成完善的报表,并给出相应的总评成绩。
  • 设计有好的人机交互界面。

拓展(不用做):

根据图像点名。如上课时拍一张图片,自动实现点名功能。

总览

项目由八个功能,分别由八个按钮来响应,(八个方法实现)

分别是:读取文件、添加学生、删除学生、修改学生、存储文件、点名(随机点名、优先点迟到、学号后两位特征点名)、入数据库、期末报表。

启动界面

基于JavaGUI实现的学生点名系统_第1张图片

  • 读取 Excel 文件

  • 添加学生(包括打开图片)

基于JavaGUI实现的学生点名系统_第2张图片
基于JavaGUI实现的学生点名系统_第3张图片

  • 删除学生

基于JavaGUI实现的学生点名系统_第4张图片

  • 修改学生

基于JavaGUI实现的学生点名系统_第5张图片

  • 存储文件(没有子窗口,存储成功或提示)

基于JavaGUI实现的学生点名系统_第6张图片

  • 点名(三种点名)

基于JavaGUI实现的学生点名系统_第7张图片

  • 入数据库
    基于JavaGUI实现的学生点名系统_第8张图片

  • 输出期末报表(Excel 格式)(默认文件名:期末报表.xlsx)

基于JavaGUI实现的学生点名系统_第9张图片

功能实现

实体类:Student

属性:学号、姓名、图片位置、被点次数、迟到次数

方法:属性的 set/get 方法

数据库操作类:StudentDao

方法:insertStudent

向数据库中写入学生信息(入数据库)

窗口属性设置:PublicWindowSet

主窗口类:AdmintratorWindow

八个按钮对应方法:

  • 读取文件:loadFileBtn

  • 添加学生:insertStudentBtn

  • 删除学生:deleteStudentBtn

  • 修改学生:modifyStudentBtn

  • 存储文件:storeFileBtn(存储文件为 Excel,覆盖原始文件)

  • 点名(随机点名、优先点迟到、学号后两位特征点名):callNameBtn

  • 随机点名使用位置随机数

  • 优先点迟到:将所有的迟到名单按单个计数,并存储在一个新的链表中(即每个单迟到次数喂一次),对整个链表随机取数,迟到次数多的频率越大,被点几率越大)

  • 学号后两位特征点名,对学号后两位除 5 余 2 的进行随机抽取

入数据库:outToDatabaseBtn

将表格文件信息存入数据库 student 中

期末报表:termStateBtn(将表格信息存入新的“期末报表.xlsx”文件中,成绩评定为:迟到次数/被点次数)

项目构建

软件

--1、系统:win10
--2、eclipseEE版、jdk1.8、mysql5.5
--3、数据库操作软件使用sqlyog

组建项目

--1、在sqlyog中或者其他数据库可视化操作软件中运行“student.sql”文件创建关键数据库student
--2、在eclipse中将项目导入:右键importimportexit Java
--3.运行:右键run as  java application  选择启动类为Main.java

注意事项:

由于项目是根据特定文件格式和输入格式来进行开发,文件格式或者输入格式错误可能导致运行出错。

具体信息:

  • 输入文件需要时.xlsx 格式(即项目下“学生信息.xlsx”),且文件中只有一个 sheet、5 列、第一行元素值固定为“学号、姓名、图片位置、被点次数、迟到次数”。
  • 文本输入:文本输入格式也需要按照特定格式:比如初始输入学生信息文件中被点次数、迟到次数必须为数字
  • 数据库冲突:数据库中学号唯一,所以文件中不能出现相同学号的学生。
  • 其他问题:暂留(请严格按照和李哥是输入)
    为“学号、姓名、图片位置、被点次数、迟到次数”。
  • 文本输入:文本输入格式也需要按照特定格式:比如初始输入学生信息文件中被点次数、迟到次数必须为数字
  • 数据库冲突:数据库中学号唯一,所以文件中不能出现相同学号的学生。
  • 其他问题:暂留(请严格按照和李哥是输入)

你可能感兴趣的:(Java,GUI,学生管理,点名系统,课程设计)