javafx实现的工资管理系统

本文介绍了程序员小王使用JavaFX平台设计的一个工资管理系统,包括登陆功能、管理员功能、部门管理和工资管理等模块。系统采用MySQL数据库,详细描述了数据库表结构,并对功能需求和测试环境进行了分析。此外,文章还涵盖了系统测试,包括功能测试和并发操作测试,确保系统性能和兼容性。
摘要由CSDN通过智能技术生成

🍅程序员小王的博客:程序员小王的博客
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
🍅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 Transfer

 Source Server         : Windows
 Source Server Type    : MySQL
 Source Server Version : 80022
 Source Host           : localhost:3306
 Source Schema         : aproject

 Target Server Type    : MySQL
 Target Server Version : 80022
 File Encoding         : 65001

 Date: 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<ActionEvent>() {
   public void handle(ActionEvent e) {
      List<Guanliyuan> 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
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小王java

学习java的路上,加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值