javafx实现的工资管理系统
创始人
2024-05-05 14:54:18

🍅程序员小王的博客:程序员小王的博客
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
🍅java自学的学习路线:java自学的学习路线

需求分析

1.1用户需求

随着公司业务的扩展,人员的增多,传统的手工作业已经不再适合公司发展的需要,所以引进计算机技术对企业内部员工进行方便的管理,这样有诸多好处,各层管理人员可以对企业众多的员工信息进行动态的管理,例如基本资料的修改,添加,删除,查询等。有利于减少错误,减轻人事部门的任务,提高效率,节约人力资源,降低企业成本。

本系统在设计过程中,为了克服这些困难,需要使程序代码标准化,软件统一化,确保软件的可维护性和实用性;删除不必要的管理冗余,实现管理规范化、科学化;界面友好、简单化,做到实用、方便,尽量满足员工工资管理的需要。

1.2 业务流程分析

本系统主要面向的用户有系统管理员。下面对该系统的不同操作范围做说明。

本系统主要有以下功能模块:

(1)登陆功能:登陆系统为身份验证登录。管理员登录通过不同的用户名和密码进入工资管理界面,新的用户需要注册。

(2)管理员功能:可以对管理员进行增删改查等功能

(3)部门管理功能:可以新增部门,修改部门,删除部门,通过部门名查询部门等

(4)工资管理功能:可以查询所有员工的工资,可以添加员工的个人信息和具有那个月的工资,可以修改工资,可以删除员工信息,可以通过月份查询工资,也可以通过月份,姓名,工资类别,工资数值等查询工资

1.3 功能需求分析

本系统的主要结构功能图如下:

2. 总体设计

2.1体系结构设计

JavaFx平台是一个构建于java技术基本上的并且容易创建和部署富客户端平台的跨平台的应用。

下图说明JavaFx的整体架构,分别描述了各个部件和各部分是如何联系起来的。在下面的JavaFX API的基础上就可以运行你的JavaFx代码。它包括JavaFX的高性能的图形引擎叫Prism;小而高效的窗口系统,叫Glass;还有一个媒体引擎和一个web引擎。虽然这些组件都不是公开的,但是它们的说明能帮助你更好的理解如何运行一个JavaFX应用程序。结构模式如图所示。

JavaFX 结构模式

2.2数据库设计

数据库的选型在设计系统时同样很关键,首要目标是选择一款能够满足甚至 超过预定要求的技术或解决方案。选型的正确方法将使用户在面对众多产品时,提高其做出最佳选择的能力。数据库选型时,必须考虑以下五大因素:

(1)开发要求

(2)性能/成本

(3)数据库运行和管理

(4)可升级性

(5)总体拥有成本

Mysql 是一个开源的完全免费的数据库系统,是一个快速的、可靠的易于使用的数据库服务器。

数据库名: aproject

文档版本: V1.0.0

文档描述: 基于javafx的工资管理系统数据库表设计描述

表bumen

编号 名称 数据类型 长度 小数位 允许空值 主键
1 id int 10 0 N Y
2 mingcheng varchar 200 0 Y N

表gongzi

编号 名称 数据类型 长度 小数位 允许空值 主键
1 id int 10 0 N Y
2 xingming varchar 200 0 Y N
3 bumen varchar 200 0 Y N
4 gongzizhonglei varchar 200 0 Y N
5 gongzishuzhi varchar 200 0 Y N
6 yuefen varchar 200 0 Y N

表guanliyuan

编号 名称 数据类型 长度 小数位 允许空值 主键
1 id int 10 0 N Y
2 yonghuming varchar 200 0 Y N
3 mima varchar 200 0 Y N
/*Navicat Premium Data TransferSource Server         : WindowsSource Server Type    : MySQLSource Server Version : 80022Source Host           : localhost:3306Source Schema         : aprojectTarget Server Type    : MySQLTarget Server Version : 80022File Encoding         : 65001Date: 27/12/2022 21:16:05
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for bumen
-- ----------------------------
DROP TABLE IF EXISTS `bumen`;
CREATE TABLE `bumen`  (`id` int NOT NULL AUTO_INCREMENT,`mingcheng` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for gongzi
-- ----------------------------
DROP TABLE IF EXISTS `gongzi`;
CREATE TABLE `gongzi`  (`id` int NOT NULL AUTO_INCREMENT,`xingming` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`bumen` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`gongzizhonglei` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`gongzishuzhi` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`yuefen` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Table structure for guanliyuan
-- ----------------------------
DROP TABLE IF EXISTS `guanliyuan`;
CREATE TABLE `guanliyuan`  (`id` int NOT NULL AUTO_INCREMENT,`yonghuming` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`mima` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

3. 详细设计与实现

用例图

登录界面设计

登录模块是工资管理系统的入口,在运行本系统是首先经过登录界面的验证,输入正确的用户名和密码才可登录到系统中,通过用户与密码的验证保证了数据的安全。

 //登录按钮触发事件
cidb834c0bf1e.setOnAction(new EventHandler() {public void handle(ActionEvent e) {List list = cid9fa8d13a0cdao.queryByKey("yonghuming", cid8ea6ca765a.getText());if(list.size()>0){if(list.get(0).getMima().equals(cid7248dc7861.getText())){username=list.get(0).getYonghuming();showMsg("登录成功");Stage stage=new Stage();stage.setTitle("系统功能");GuanliyuanMainUI mainui = new GuanliyuanMainUI("");mainui.setUsername(username);stage.setScene(new Scene(mainui,600,600));stage.show();((Stage) ((Button)e.getSource()).getScene().getWindow()).close();return;}}showMsg("用户名或密码错误,登录失败");}
});

系统管理员界面设计了四个按钮(分别是管理员工信息、工资信息、部门管理以及退出系统)关键代码如下:

首先在窗口中创建组件四个JButton,设置他们的基础属性(窗口名称,大小)。以及通过addActionListener(new ActionListener()设置按钮的监听函数

final JButton button = new JButton();    //定义一个JButton对象button.setText("管理员工信息");   //设置窗口属性button.setBounds(175, 30, 150, 50);  //设置窗口大小getContentPane().add(button);     //向容器中添加该按钮

当用户选择一个菜单时,会引发一个动作事件,需要给每个菜单项添加监听器,重写ActionListener接口中的actionPreformed()方法。例如:

    button.addActionListener(**new** ActionListener(){    //设置该按钮的监听函数public void actionPerformed(ActionEvent e) {dispose();    //关闭该窗口UI_2_IM  UI2=new UI_2_IM();    //定义一个UI_2_IM的对象}});
  1. 程序测试(含程序运行界面)

安装好基于javafx的工资管理程序设计以后,此时,可以单击它启动站点管理工作环境的登录界面。 进入系统后,以几组数据作为测试标本对系统各功能模块进行测试运行,本次测试主要是测试该系统它的并发操作时的测试(负载能力)、具体功能测试、组合操作的测试、系统的兼容性、某种特定情况下的系统运行(实时响应)和后台功能等。

对于本系统的测试包括对系统的用户界面测试和功能性测试,测试的范围涉及系统的各个功能模块的测试,其中重要且量大的便是测试用例的设计,对于测试用例的设计主要是对各个功能进行边界值设计、正常数据的输入等,便于测试和查看测试结果。

1. 测试环境

软件环境(相关软件、操作系统等)
操作平台:Windows 11 64 位
数据库:MySql 5.7.36
浏览器:Google Chrome
硬件环境(网络、设备等)
CPU:2.28 GHz
内存:16 GB

2. 测试功能

功能测试是用于测试系统的功能需求的黑盒测试方法。根据产品特征、操作 描述和用户方案,测试产品的特性和可操作行为以确定它们满足设计需求。功能 测试用于验证应用程序对用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

  1. 登录页面

我们可以实现登录注册功能,我们输入用户名和密码之后点击注册

注册成功之后点击登录,进入工资管理系统

  1. 部门管理

登录系统之后,我们点击部门管理,进入部门管理页面

可以指定查询查询部门

不输入名称,就是直接查询所有

我们也可以新增部门,点击新增,输入新增部门,点击保存,就可以新增了

新增会提示新增成功

删除,会出现提示,防止误操作

我们也可以修改

修改成功后

  1. 管理员管理界面

我们登录系统的管理员进行管理

也可以修改用户和密码

不管是修改和删除我们都必须要选择一行之后才能进行

  1. 工资管理界面

打开工资管理界面可以直接查看员工的工资包含编号,姓名,部门,工资种类,月份等

我们可以通过部门查询员工的工资

也可以通过月份查找员工的工资

还可以通过工资种类查询员工工资

能将所有输入的员工工资数据保存到文件中,并可选择继续输入或退出。

至少能删除某员工特定年份和月份的工资信息、删除某员工所有工资信息。执行删除时应有相关提示,以免用户误操作。

修改:能修改除员工号外所有信息。执行修改时应有相关提示,以免用户误操作。


项目源码+数据库+演示视频+论文:https://download.csdn.net/download/weixin_44385486/87360194
在这里插入图片描述

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...