基于java的职工便利系统【大学期末结课作业】

news2024/11/15 13:53:43

需求分析

背景和目标

基于现在的各类企业的职工在企业日常工作及生活中所需要的各类需求,通过使用Java语言开发一个职工便利系统,以方便职工完成公司内的日常事务,提高工作效率。
设计目的:
设计职工便利系统的主要目的是为了提升职工的工作效率和生活质量,让职工能够更加便捷地处理各项工作和生活事务。该系统将为职工提供一站式服务,包括个人信息管理、工作任务管理等功能,从而促进企业的发展和稳定。同时,该系统还能够帮助企业实现数字化转型,提高信息化水平和管理效率。通过设计职工便利系统,我们希望为职工提供更好的工作和生活体验,提高企业的综合竞争力。

用户角色和用例

职工便利系统其主要功能是对职工的工作,生活情况进行查询,添加,删除,修改等操作,可以使管理员更方便简洁的管理职工情况。也使职工的工作,生活更加方便。
职工便利系统用户分为管理员和职工两个部分,首先进入登陆界面进行登录,如果未注册可以进行注册,登录时系统自动可以分别管理员和职工,管理员可以对系统中的职工信息进行添加,删除,查询。(例如职工的工作情况,请假情况,消费情况)。职工可以在系统中进行上下班的打卡,可以在系统中请假,也 可以在系统中进行日常生活中的开销。

管理员

管理员可以对系统中的职工信息进行添加,删除,查询。(例如职工的工作情况,请假情况,消费情况)。

职工

在职工便利系统中,职工可以在系统中进行上下班的打卡,可以在系统中请假,也可以在系统中进行日常生活中的开销。

开发流程

软件设计

系统架构

职工便利系统流程图 (2).jpg

编写目的和范围

通过Java语言,开发可以适用于不同企业的职工便利系统,主要面向企业内的人事管理人员与普通职工使用

设计概述

针对企业内部所需要的基础功能要求,主要完成企业职工的工作考勤打卡,请假的记录。职工在企业内的餐饮,生活消费情况的统计。

运行环境概述

需要能够在电脑端完成管理员与职工账号所需的基本操作

条件与限制

只能作为内部软件,在企业内进行使用
管理员账号需要完成对所有职工的记录进行查看、修改等操作
职工账号只能查看个人信息,完成本账号内的操作

开发阶段

Emplogins类:职工账号登录界面

类:

  • EmpLogins:登录窗口类,实现了ActionListener、MouseListener和KeyListener接口。

方法:

  • public EmpLogins():构造方法,初始化登录窗口界面。
  • private void initView():初始化登录窗口中的控件。
  • private void initJFrame():初始化登录窗口的基本属性。
  • private String randomCode():生成随机验证码。
  • private void showDialog(String content):显示提示信息对话框。
  • 实现的接口方法:actionPerformed(ActionEvent e)、mouseClicked(MouseEvent e)、mousePressed(MouseEvent e)、mouseReleased(MouseEvent e)、mouseEntered(MouseEvent e)、mouseExited(MouseEvent e)、keyTyped(KeyEvent e)、keyPressed(KeyEvent e)、keyReleased(KeyEvent e)。

Function类:管理员界面

类:Function
属性:arry,用于存储职工信息的数组列表
方法:

  1. find(String str),根据查找职工信息,找到返回职工所在数组列表的位置,找不到返回-1
  2. update(Student_Manage.student_information stu),修改职工信息
  3. readfile(),读取文件,将文件中的职工信息存放在数组列表中
  4. add(Student_Manage.student_information stu),添加职工信息
  5. writefile(),将职工信息写入文件
  6. delete(String s),删除职工信息

Input类

类:Input
功能:用于读取和写入职工信息文件,更新职工信息列表。

属性:

  • arry:ArrayList类型,存储职工信息列表。

方法:

  • Input:构造方法,初始化Input对象,读取职工信息文件,将职工信息存储到arry中,并将修改后的职工信息重新写入职工信息文件。
  • fileString:将职工信息对象转换为字符串。
  • toString:将对象转换为字符串,用于调试和输出信息。

Login类:系统初始界面

类: Login

属性:

  • frame: JFrame对象,表示窗体
  • jp1: JPanel对象,表示面板1,用于显示“请选择你的身份登录”标签
  • jp2: JPanel对象,表示面板2
  • jp3: JPanel对象,表示面板3,用于显示管理员和职工登录按钮
  • jlb1: JLabel对象,表示“请选择你的身份登录”标签
  • jb1: JButton对象,表示管理员登录按钮
  • jb2: JButton对象,表示职工登录按钮

方法:

  • Login(): 构造函数,用于创建登录界面的GUI组件
  • actionPerformed(ActionEvent e): 实现ActionListener接口的方法,用于处理按钮的点击事件

Manager Login类:管理员界面()

类:ManagerLogin

属性:

  • 工号:JTextField类型,用于输入工号
  • 姓名:JTextField类型,用于输入姓名
  • 年龄:JTextField类型,用于输入年龄
  • 职位:JTextField类型,用于输入职位
  • 餐饮花费:JTextField类型,用于输入餐饮花费
  • 日常开销:JTextField类型,用于输入日常开销
  • group:ButtonGroup类型,按钮组,将男和女单选框添加到按钮组中
  • 录入:JButton类型,用于添加职工信息
  • 查询:JButton类型,用于查询符合条件的职工信息
  • 删除:JButton类型,用于删除职工信息
  • 修改:JButton类型,用于修改职工信息
  • 显示:JButton类型,用于查看全部职工信息
  • 返回:JButton类型,用于返回登录界面
  • p1-p7:JPanel类型,用于调节布局的通道
  • pv:JPanel类型,面板,用于存放输入职工信息的组件
  • ph:JPanel类型,面板,用于存放操作按钮
  • pb:JPanel类型,面板,用于存放标题和提示信息

方法:

  • ManagerLogin():构造方法,用于初始化界面和添加监听
  • actionPerformed(ActionEvent arg0):重写的方法,用于处理按钮点击事件

showones类:查询指定职工信息

模块:Student_Manage
类:showones
属性:

  • arry:存储符合条件的职工信息列表
  • stu:职工信息对象
  • table:JTable对象,用于展示职工信息表格
  • model:DefaultTableModel对象,用于管理职工信息表格数据

方法:

  • createColumnNames():创建表格列名向量
  • createTableModelData():创建表格数据向量
  • showones():展示符合条件的职工信息表格,包括读取查询条件、读取职工信息、创建表格、设置表格样式、设置排序器、设置数据居中显示、展示表格等功能。

show_stuall类:管理职工数据(查看全部职工,修改数据)

模块:Student_Manage

  • 功能:该模块用于实现职工便利系统的各项功能,包括添加、删除、修改、查询和展示全部职工信息等。

类:show_stuall

  • 属性:
    • table:JTable对象,用于显示职工信息表格。
    • model:DefaultTableModel对象,用于存储职工信息数据。
  • 方法:
    • createColumnNames():创建表格列名。
    • createTableModelData():创建表格数据。
    • show_stuall():构造函数,创建职工信息表格并显示。

属性:

方法:

  • createColumnNames():创建表格列名。
  • createTableModelData():创建表格数据。
  • show_stuall():构造函数,创建职工信息表格并显示。

student_information类:接收键盘输入的职工信息

类:student_information

属性:

  • stuID:工号,私有属性,可通过getStuID()和setStuID()方法进行获取和设置。
  • name:姓名,私有属性,可通过getName()和setName()方法进行获取和设置。
  • sex:性别,私有属性,可通过getSex()和setSex()方法进行获取和设置。
  • age:年龄,私有属性,可通过getAge()和setAge()方法进行获取和设置。
  • callnumber:职位,私有属性,可通过getCallnumber()和setCallnummber()方法进行获取和设置。
  • home_place:餐饮花销,籍贯,私有属性,可通过getHome_place()和setHome_place()方法进行获取和设置。
  • identityID:日常开销,私有属性,可通过getIdentityID()和setIdentityID()方法进行获取和设置。
  • daka:打卡次数,私有属性,可通过getDaka()和setDaka()方法进行获取和设置。
  • qingjia:请假次数,私有属性,可通过getQingjia()和setQingjia()方法进行获取和设置。

方法:

  • 无参构造函数:创建student_information类的对象时调用,用于初始化对象。
  • 有参构造函数:创建student_information类的对象时调用,用于初始化对象,并设置stuID、name、sex、age、callnumber、home_place、identityID属性的值。
  • getStuID():获取工号。
  • setStuID():设置工号。
  • getName():获取姓名。
  • setName():设置姓名。
  • getSex():获取性别。
  • setSex():设置性别。
  • getAge():获取年龄。
  • setAge():设置年龄。
  • getCallnumber():获取职位。
  • setCallnummber():设置职位。
  • getHome_place():获取餐饮花销。
  • setHome_place():设置餐饮花销。
  • getIdentityID():获取日常花销。
  • setIdentityID():设置日常花销。
  • getDaka():获取打卡次数。
  • setDaka():设置打卡次数。
  • getQingjia():获取请假次数。
  • setQingjia():设置请假次数。
  • fileString():将属性转换为字符串,用于将职工信息写入文件。

StudentLogin类:职工个人界面(完成上下班打卡,请假,吃饭,日常消费等操)

类:StudentLogin

该类是一个继承自JFrame的窗体类,用于展示职工登陆后的界面。

属性:

  • stu:类型为student_information,用于存储职工信息。
  • fun:类型为Function,用于操作职工信息的函数。
  • dakaNum:类型为int,用于记录打卡次数。
  • qingjiaNum:类型为int,用于记录请假次数。
  • curEat:类型为int,用于记录餐饮消费金额。
  • curCost:类型为int,用于记录日常开销金额。

方法:

  • public StudentLogin():构造函数,用于创建窗体及其组件。
  • private void initJFrame():用于初始化界面,设置窗体的布局管理、标题、大小、位置、关闭方式以及窗口标题图标。
  • private void initButtom():用于初始化按钮等组件,包括三个面板p1、p2、p3,两个标签text1、text2,以及多个按钮。还为按钮添加了ActionListener,使得当用户点击这些按钮时,会执行相应的操作,如打卡、吃饭、请假、支付等。
  • private void initMenuBar():用于初始化菜单栏,包括一个菜单“菜单”和一个子菜单“返回登录界面”以及一个菜单“摸鱼”和一个子菜单“拼图小游戏”。还为子菜单添加了ActionListener,使得当用户点击这些子菜单时,会执行相应的操作,如返回登录界面、打开小游戏等。
  • @Override public void actionPerformed(ActionEvent e):用于处理事件响应。

测试阶段

用户登录界面测试

功能需求:
完成管理员及职工登录的入口选择
测试结果:
界面显示正常
管理员及职工登录入口测试正常,可以完成目标功能需求

管理员界面测试

功能需求:
完成职工信息的添加、删除、修改,查看所有职工信息工作打卡及消费情况,返回用户登录界面
测试结果:
界面显示正常
可以完成添加、删除、修改职工信息的功能
查看所有职工信息功能完善,可以通过工号、姓名等方式设置条件进行查看
返回用户登录页面功能正常

职工账号登录界面

功能需求:
接收从键盘输入的职工账号及密码信息,完成随机验证码功能
测试结果:
正常完成用户账号、密码及验证码的输入,随机验证码功能正常显示
密码显示与隐藏功能模块正常
登录按钮功能正常
注册按钮功能正常

职工便利系统

功能需求:
完成职工上下班打卡,请假提交功能,日常生活开销功能,加入娱乐功能
测试结果:
上下班打卡功能正常使用
请假提交功能正常,可以完成请假内容的输入与提交
日常生活开销记录功能正常,可以完成吃饭及日常消费的记录功能
摸鱼按钮可以完成其功能操作
拼图小游戏模块功能正常
可以通过菜单模块正常返回用户登录界面

拼图小游戏功能模块

测试结果:
游戏功能正常执行
通过小游戏界面可以重新登录到职工便利系统界面

操作方法

系统介绍

职工便利系统是一种用于管理员工信息和考勤的系统。该职工便利系统具有以下几个功能特点:

  • 可以录入、修改、查询和删除员工的基本信息,如姓名、职位、部门等。
  • 可以记录、统计和分析员工的考勤情况,如上下班打卡、请假等。
  • 可以根据员工的角色和权限分配不同的功能模块,如管理员、普通职工等。
  • 可以帮助企业建立规范化的人才管理制度,挖掘和培养核心人才。

系统安装

详细描述软件的安装过程,例如下载、安装、配置等。

系统使用

登录界面:
进入职工便利系统,会弹出“用户登录界面”,该窗口显示“请选择你的身份登录”提示信息,提示信息下面有“管理员”和“职工”两个按钮
image.png

管理员管理界面

image.png
点击“管理员”按钮进入管理员管理窗口,窗口下方有“添加职工”,“查询符合条件的职工”,“修改职工”,“删除职工”,“查看全部职工”,“返回登陆界面”六个按钮,管理员可以输入其想要进行查询,修改,删除,添加职工的工号对其进行需要的操作。
image.png
1.添加职工
输入好想要添加的职工的工号,姓名,性别,等信息,选择“添加职工”即可进行添加。
image.png
2.查询符合条件的职工
输入想要查询职工的工号即可查询职工的基本信息。
image.png
3.修改职工
输入好需要修改的职工的工号和姓名可以进行对职工其他信息的修改。
image.png
4.删除职工
输入需要删除职工的工号可以对其信息进行删除。
image.png
5.查看全部职工
点击“全部查看职工”按钮可以查询所有系统中职工的信息。
image.png
6.选择“返回登陆界面”按钮则返回“用户登录界面”
职工系统界面

点击“职工”按钮,进入“登录界面”输入用户名,密码,验证码进行登录。
image.png
登录成功后,进入菜单窗口,该窗口分为“工作”,“生活”两个部分,在工作部分中有“上班打卡”和“下班打卡”和“提交请假申请”按钮,职工可以在该窗口进行上下班的打卡和请假,在生活部分中有“吃饭”,“日常开销”两个按钮,职工可以在系统中进行生活上的开销。点击菜单中的按钮,系统会自动为职工的操作添加相应的记录
image.png
点击“吃饭”按钮弹出“添加花费”窗口,职工可以输入菜名和价格进行记录。
image.png
点击“日常开销”按钮弹出“添加生活开销”窗口并对其所需要的事件和花费进行记录。
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1272436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#测试开源运行耗时库MethodTimer.Fody

微信公众号“dotNET跨平台”的文章《一个监控C#方法运行耗时开源库》介绍了支持测量方法耗时的包MethodTimer.Fody,使用方便,还可以自定义输出信息格式。本文学习并测试MethodTimer.Fody包的使用方式。   新建控制台程序,通过Nuget包管理器…

文心一言 VS 讯飞星火 VS chatgpt (146)-- 算法导论12.2 1题

一、用go语言,假设一棵二叉搜索树中的结点在1到 1000 之间,现在想要查找数值为 363 的结点。下面序列中哪个不是查找过的序列? a.2,252,401,398,330,344,397,363。 b.9…

unity3d模型中缺失animation

在 模型的Rig-Animationtype 设置成Legacy https://tieba.baidu.com/p/2293580178

【开源】基于Vue.js的医院门诊预约挂号系统的设计和实现

项目编号: S 033 ,文末获取源码。 \color{red}{项目编号:S033,文末获取源码。} 项目编号:S033,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2…

SNAT / DNAT 自定义链

目录 linux 系统本身是没有转发功能,只有路由发送数据 NAT NAT的实现分为两类 SNAT SNAT 应用环境 SNAT 原理 SNAT 转换前提条件 例图参考 开启 SNAT 命令 临时开启 永久开启 修改 iptables 网卡 DNAT DNAT 应用环境 DNAT 原理 DNAT 转换前提条件 …

阿里云Arthas使用——通过watch命令查看类的返回值 捞数据出来

前言 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类…

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)项目搭建

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)项目搭建 持续更新中… java+vue+微信小程序项目】从零开始搭建——健身房管理平台 项目简介Java项目搭建(IDEA)1.新建项目2.项目类型3.项目设置4…

MySQL之binlog日志

聊聊BINLOG binlog记录什么? MySQL server中所有的搜索引擎发生了更新(DDL和DML)都会产生binlog日志,记录的是语句的原始逻辑 为什么需要binlog? binlog主要有两个应用场景,一是数据复制,在…

CHEM 14 not know

Goals of this lab: • Create and use a calibration curve for the absorbance/concentration relationship for crystal violet • Evaluate absorbance versus time measurements to determine the order of a reaction • Analyze graphs of data to determine best linea…

MySQL进阶知识:InnoDB引擎

目录 逻辑存储结构 架构 内存结构 Buffer Pool Change Buffer Adaptive Hash Index Log Buffer 磁盘结构 后台线程 事务原理 redo log undo log MVCC 隐式字段 undo log版本链 readView 逻辑存储结构 这张图在我之前的笔记中出现过,接下来我们详细介…

CMake 教程:常用命令及其使用方法

CMake是一个跨平台、开源的构建工具,它可以自动生成Makefile或者Visual Studio等IDE的工程文件。它能够帮助开发者更方便地管理项目的构建过程,提高项目构建的效率。在本文中,我们将介绍CMake常用的命令以及对应的用法 add_executable add_e…

五、shell - 算术运算符

目录 1、简介 2、例子 ​​​​​​​1、简介 Shell 和其他编程一样,支持包括:算术、关系、布尔、字符串等运算符。原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现,例如expr。expr 是一款表达式计算工具&#xff…

JAVEE初阶 多线程基础(四)

线程安全 一.线程安全存在的问题二.锁三.关于锁的理解四.关于锁操作混淆的理解4.1两个线程是否对同一对象加锁 一.线程安全存在的问题 为什么这里的count不是一百万呢?这就是线程所存在的不安全的问题,由于线程是抢占式执行,同时执行count,操作本质是三个指令 1.load 读取内存…

JUC并发编程 01——多线程基础知识

一.线程应用 异步调用 以调用方角度来讲,如果 需要等待结果返回,才能继续运行就是同步 不需要等待结果返回,就能继续运行就是异步 应用 比如在项目中,视频文件需要转换格式等操作比较费时,这时开一个新线程处理视…

Apache Hive3.1.3 遇到DATE_FORMAT转换2021年12月格式的问题

比如:需要将时间2021-12-28 00:00:00转换成2021-12的格式,用date_format会将2021-12转换成2022-12的问题。 解决方法: 方式一:大写的‘Y’换成‘y’ 方式二:字符串截取,substr 本博主推荐方式一&#xf…

学习笔记小结

redis-cluster集群 redis3.0引入的分布式存储方案 集群由多个node节点组成,redis数据分布在这些节点当中。 在集群之中分为主节点和从节点 集群模式当中,主从一一对应,数据的写入和读取与主从模式一样,主负责写,从…

EasyMicrobiome-易扩增子、易宏基因组等分析流程依赖常用软件、脚本文件和数据库注释文件

啥也不说了,这个好用,给大家推荐:YongxinLiu/EasyMicrobiome (github.com) 大家先看看引用文献吧,很有用:https://doi.org/10.1002/imt2.83 还有这个,后面马上介绍:YongxinLiu/EasyAmplicon: E…

联想M7400W激光打印机加粉清零方法

基本参数 产品定位:多功能商用一体机 产品类型:黑白激光多功能一体机 涵盖功能:打印、复印、扫描 最大处理幅面:A4 耗材类型:鼓粉分离 耗材容量:硒鼓LD2451 12000页,墨粉LT2451 1500页、L…

11月30日作业

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数 #include <iostream>using namespace std;class …

MySQL实现(高可用方案-MHA安装及配置)

MySQL高可用性解决方案Master High Availability (MHA) 是一种在 MySQL 故障转移环境中实现快速故障转移和数据保护的开源软件。MHA 能在 MySQL 主节点发生故障时&#xff0c;自动将备节点提升为主节点&#xff0c;并且不会中断正在进行的 SQL 操作。 需求&#xff1a;主从配置…