🍅程序员小王的博客:程序员小王的博客
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
🍅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的对象
}});
- 程序测试(含程序运行界面)
安装好基于javafx的工资管理程序设计以后,此时,可以单击它启动站点管理工作环境的登录界面。 进入系统后,以几组数据作为测试标本对系统各功能模块进行测试运行,本次测试主要是测试该系统它的并发操作时的测试(负载能力)、具体功能测试、组合操作的测试、系统的兼容性、某种特定情况下的系统运行(实时响应)和后台功能等。
对于本系统的测试包括对系统的用户界面测试和功能性测试,测试的范围涉及系统的各个功能模块的测试,其中重要且量大的便是测试用例的设计,对于测试用例的设计主要是对各个功能进行边界值设计、正常数据的输入等,便于测试和查看测试结果。
1. 测试环境
软件环境(相关软件、操作系统等) |
---|
操作平台:Windows 11 64 位 |
数据库:MySql 5.7.36 |
浏览器:Google Chrome |
硬件环境(网络、设备等) |
CPU:2.28 GHz |
内存:16 GB |
2. 测试功能
功能测试是用于测试系统的功能需求的黑盒测试方法。根据产品特征、操作 描述和用户方案,测试产品的特性和可操作行为以确定它们满足设计需求。功能 测试用于验证应用程序对用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
- 登录页面
我们可以实现登录注册功能,我们输入用户名和密码之后点击注册
注册成功之后点击登录,进入工资管理系统
- 部门管理
登录系统之后,我们点击部门管理,进入部门管理页面
可以指定查询查询部门
不输入名称,就是直接查询所有
我们也可以新增部门,点击新增,输入新增部门,点击保存,就可以新增了
新增会提示新增成功
删除,会出现提示,防止误操作
我们也可以修改
修改成功后
- 管理员管理界面
我们登录系统的管理员进行管理
也可以修改用户和密码
不管是修改和删除我们都必须要选择一行之后才能进行
- 工资管理界面
打开工资管理界面可以直接查看员工的工资包含编号,姓名,部门,工资种类,月份等
我们可以通过部门查询员工的工资
也可以通过月份查找员工的工资
还可以通过工资种类查询员工工资
能将所有输入的员工工资数据保存到文件中,并可选择继续输入或退出。
至少能删除某员工特定年份和月份的工资信息、删除某员工所有工资信息。执行删除时应有相关提示,以免用户误操作。
修改:能修改除员工号外所有信息。执行修改时应有相关提示,以免用户误操作。
项目源码+数据库+演示视频+论文:https://download.csdn.net/download/weixin_44385486/87360194