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

需求分析

背景和目标

基于现在的各类企业的职工在企业日常工作及生活中所需要的各类需求,通过使用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.mzph.cn/news/186574.shtml

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

相关文章

FFmpeg之将视频转为16:9(横屏)或9:16(竖屏)(一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

全文检索[ES系列] - 第495篇

历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

知识蒸馏代码实现(以MNIST手写数字体为例,自定义MLP网络做为教师和学生网络)

dataloader_tools.py import torchvision from torchvision import transforms from torch.utils.data import DataLoaderdef load_data():# 载入MNIST训练集train_dataset torchvision.datasets.MNIST(root "../datasets/",trainTrue,transformtransforms.ToTens…

QT Day01 qt概述,创建项目,窗口属性,按钮,信号与槽

1.qt概述 1.什么是qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供建立艺 术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组 件编程。 2.支持的平台 Windows – XP 、 Vista 、 Win7 、 Win8…

Java(119):ExcelUtil工具类(org.apache.poi读取和写入Excel)

ExcelUtil工具类(XSSFWorkbook读取和写入Excel),入参和出参都是:List<Map<String,Object>> 一、读取Excel testdata.xlsx 1、new XSSFWorkbook对象 File file = new File(filePath); FileInputStream fis = new FileInputStream(file);…

8.二维数组——将一个二维数组行和列的元素互换,存到另一个二维数组中。

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 将一个二维数组行和列的元素互换&#xff0c;存到另一个二维数组中。 二、题目分析 三、解题 程序运行代码 #incl…

玄学调参实践篇 | 深度学习模型 + 预训练模型 + 大模型LLM

&#x1f60d; 这篇主要简单记录一些调参实践&#xff0c;无聊时会不定期更新~ 文章目录 0、学习率与batch_size判断1、Epoch数判断2、判断模型架构是否有问题3、大模型 - 计算量、模型、和数据大小的关系4、大模型调参相关论文经验总结5、训练时模型的保存 0、学习率与batch_s…

压力测试+接口测试

jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使用方便&#xff0c;是一个比较轻量级的测试工具&#xff0c;使用起来非常简单。因 为jmeter是java开发的&#xff0c;所以运行的时候必须先要安装jdk才可以。jmeter是…

鸿蒙系统开发手册 - HarmonyOS内核驱动层源码分析

众所周知系统定义HarmonyOS是一款“面向未来”、面向全场景&#xff08;移动办公、运动健康、社交通信、媒体娱乐等&#xff09;的分布式操作系统。在传统的单设备系统能力的基础上&#xff0c;HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能…

Arrays.asList() 与 Collections.singletonList()的恩怨情仇

1. 概述 列表是我们使用 Java 时常用的集合类型。 众所周知&#xff0c;我们可以轻松地用一行初始化一个List。例如&#xff0c;当我们想要初始化一个只有一个元素的List时&#xff0c;我们可以使用Arrays.asList()方法或Collections.singletonList()方法。 在本文中&#x…

【Linux】基础IO--文件基础知识/文件操作/文件描述符

文章目录 一、文件相关基础知识二、文件操作1.C语言文件操作2.操作系统文件操作2.1 比特位传递选项2.2 文件相关系统调用2.3 文件操作接口的使用 三、文件描述符fd1.什么是文件描述符2.文件描述符的分配规则 一、文件相关基础知识 我们对文件有如下的认识&#xff1a; 1.文件 …

用最少数量的箭引爆气球[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组points&#xff0c;其中points[i] [xstart, xend]表示水平直径在xstart和xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点完全垂直…

Panalog 日志审计系统 前台RCE漏洞复现

0x01 产品简介 Panalog是一款日志审计系统&#xff0c;方便用户统一集中监控、管理在网的海量设备。 0x02 漏洞概述 Panalog日志审计系统 sy_query.php接口处存在远程命令执行漏洞&#xff0c;攻击者可执行任意命令&#xff0c;接管服务器权限。 0x03 复现环境 FOFA&#xf…

谭巍主任专业角度解读:疣体脱落前的症状是什么?

我们时常会发现身体各个部位长出一些赘生物&#xff0c;有些属于皮肤良性改变&#xff0c;而有些则是病毒引起的&#xff0c;称之为疣体。然而在疣体脱落之前&#xff0c;通常会出现一些症状&#xff0c;这些症状可能因人而异&#xff0c;但以下是一些常见的迹象&#xff1a; 1…

笔记61:注意力提示

本地笔记地址&#xff1a;D:\work_file\&#xff08;4&#xff09;DeepLearning_Learning\03_个人笔记\3.循环神经网络\第10章&#xff1a;动手学深度学习~注意力机制 a a a a a a a a

MySQL索引使用总结

索引(index) 官方定义&#xff1a;一种提高MySQL查询效率的数据结构 优点&#xff1a;加快查询速度 缺点&#xff1a; 1.维护索引需要消耗数据库资源 2.索引需要占用磁盘空间 3.增删改的时候会影响性能 索引分类 索引和数据库表的存储引擎有关&#xff0c;不同的存储引擎&am…

AndroidStudio - 新版本 Logcat 使用详解

最近这俩天正好有时间给自己做一下减法&#xff0c;忘记是去年还是今年&#xff0c;在升级 AndroidStudio 后使用 Logcat查看日志的方式也发生了一些变化&#xff0c;虽然一直在使用&#xff0c;但每当看到之前还未关闭 Logcat 命令行工具额昂也&#xff0c;就感觉可能还存在知…

Multi-head attention机制

多头&#xff1a;多个相同结构的线性变换层&#xff08;方阵&#xff09;&#xff0c;要求分别线性变换 B站教学视频参考&#xff1a;https://www.bilibili.com/video/BV1eG4y1N7Jp/?p17&spm_id_frompageDriver&vd_sourcef4c7dcac0ad5ae8189bd414a3b23020d 什么是多头…

冒泡排序算法是对已知的数列进行从小到大的递增排序。

题目描述冒泡排序算法是对已知的数列进行从小到大的递增排序每个实例输出两行&#xff0c;第一行输出第1轮结果, 第二行输出最终结果 它的排序方法如下: 1.对数列从头开始扫描&#xff0c;比较两个相邻的元素,如果前者大于后者,则交换两者位置 2.重复步骤1&#xff0c;直到没有…

RocketMQ源码剖析之createUniqID方法

目录 版本信息&#xff1a; 写在前面&#xff1a; 源码剖析&#xff1a; 总计&#xff1a; 版本信息&#xff1a; RocketMQ-5.1.3 源码地址&#xff1a;https://github.com/apache/rocketmq 写在前面&#xff1a; 首先&#xff0c;笔者先吐槽一下RocketMQ的官方&#xff0…