javafx实现的工资管理系统

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

image.png


表gongzi

image.png


表guanliyuan

image.png

/*
 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. 测试环境

image.png


2. 测试功能

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


1.登录页面

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



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



部门管理

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



可以指定查询查询部门



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



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



新增会提示新增成功



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



我们也可以修改



修改成功后



管理员管理界面

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



也可以修改用户和密码



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



工资管理界面

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



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



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



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



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



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



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


项目源码+数据库+演示视频+论文:https://download.csdn.net/download/weixin_44385486/87360194

相关文章
|
8月前
|
Java 关系型数据库 MySQL
基于SSM的电动车上牌管理系统(有报告)。Javaee项目。
基于SSM的电动车上牌管理系统(有报告)。Javaee项目。
基于SSM的电动车上牌管理系统(有报告)。Javaee项目。
|
8月前
|
Java 关系型数据库 MySQL
基于SSM的货物进销存管理系统(有报告)。Javaee项目。
基于SSM的货物进销存管理系统(有报告)。Javaee项目。
|
8月前
|
Java 关系型数据库 MySQL
基于SSM的学生宿舍公寓管理系统(有报告)。Javaee项目。
基于SSM的学生宿舍公寓管理系统(有报告)。Javaee项目。
|
10月前
JavaFX制作餐厅管理系统(附源码)2
JavaFX制作餐厅管理系统(附源码)2
65 0
|
25天前
|
安全 Java 关系型数据库
基于Java的超市进销存管理系统
基于Java的超市进销存管理系统
|
8月前
|
Java 关系型数据库 MySQL
基于SSM的超市管理系统(有报告)。Javaee项目。
基于SSM的超市管理系统(有报告)。Javaee项目。
|
2月前
|
JavaScript Java 应用服务中间件
BS-XX-042 基于SSM实现人事管理系统
BS-XX-042 基于SSM实现人事管理系统
|
8月前
|
SQL 关系型数据库 MySQL
基于Swing的校园管理系统
基于Swing的校园管理系统
|
8月前
|
Java 关系型数据库 MySQL
基于SSM学生信息管理系统(选课+请假+奖惩+住宿)。Javaee项目。
基于SSM学生信息管理系统(选课+请假+奖惩+住宿)。Javaee项目。
|
8月前
|
Java 关系型数据库 MySQL
基于SSM的校园停车场管理系统(有报告)。Javaee项目。
基于SSM的校园停车场管理系统(有报告)。Javaee项目。