自学内容网 自学内容网

企业人事管理系统

  1.课设要求描述   

【系统描述】软件从登录界面开始,验证用户名与密码后,根据登录用户名权限的不同,打开软件后展示不同的功能模块。软件主要功能模块是人事管理、部门管理、备忘录、员工生日提醒、数据库的维护等。


通过简单分析后,总结如下信息(以下描述功能必须完成):


√由于该系统的使用对象较多,要有较好的权限管理,这样可以让不同用
户对不同的功能模块具有不同的操作权限;
√系统提供基本信息进行管理,员工基本信息可以由员工录入,也可由人
事处工作人员进行录入;
√员工只能查看和修改自己的信息,人事管理人员可以查看或修改所有员
工的信息,部门负责人只能查看本部门工作人员信息,但不能查看员工薪资;
√记录公司内部员工基本档案信息,提供便捷的查询功能;
√在查询员工信息时,可以对当前员工的家庭情况,培训与进修情况进行
添加与修改与删除操作;
√不同的员工不同职称,职级或工作年限对应不同的薪资,管理员可以调
整员工的职称或职级,员工的薪资及职称/职级调整后需要有审核;√部门负责人可以按年度添加员工考核结果;
√生日提醒
√备忘录
√员工入职、转岗、离职
√可以按照条件对员工相关情况进行统计;√提供灵活的数据备份,还原与清空功能。

√提供异常处理功能

-- 创建一个视图,用于展示员工的详细信息

-- 创建一个视图,用于展示员工及其家庭成员的详细信息


-- 定义一个触发器将新插入员工的生日提醒信息插入到表中

-- 定义一个触发器更新表中相应员工的生日提醒日期

2.制作思路及基础讲解

此项目主要是用于完成大二下半学期的数据库课设,随手记录。技术面大二下之前只学过Java,MySQL/SQLServer。所以此项目没有前端界面,只通过命令行的形式来操作该系统,制作思路:首先是数据库作为存储数据的地方,编写根据课设要求编写好对应的建表语句和存储过程,视图,触发器等。然后编写好对应系统的Java代码,最后通过JDBC将Java代码与数据库连接起来。

  部分学生可能学的比较浅,不理解mysql,sqlserver,java,c等一堆名词之间的含义。之前有同学找我做过这类似的课设。问的问题都比较抽象,例如用mysql做一个系统之类的。在此简单说一下我对于这些的理解,mysql,sqlserver都是数据库的一种,只不过是外国的所以都是用英文表示,大部分上课不听的同学看到这一堆英文都会比较懵,其实只需简单把数据库(mysql,SQLServer)理解成存储数据的地方,而java,c等语言是用来编写系统逻辑功能的代码。当然在数据库中的存储过程或者触发器什么的,这些功能也能在代码编程语言中通过特定的逻辑实现类似的功能,只不过我们在数据库中写好的话,免去了Java中代码的编写量,并且查询时速度会更快。

3.使用工具及语言详解

不同的学校要求不同,有的是sqlserver,有的是mysql,但其实这两者的区别在我看来区别不大,大部分的语句格式都是一样的,所以我选择了我熟悉的一种,mysql来进行编写。在语言方面,我大一的时候学过c,但是当时没有认真听,后来也慢慢都忘了,大二时学了Java,并且之后又系统性的学了一遍,所以选择来用Java语言编写。对于编译器我使用的是IDEA,版本随意,这个不影响,但需要注意IDEA不是免费的,可以去试用30天,也可以自行网上找方法安装破解版。数据库可视化工具使用的是Navicat,这个工具同样也不是免费的,但提供14天试用期,有长期需求也需要各位自行找破解版。

PS:这里又提到两个新名词,IDEA和Navicat,这不是编程语言,而是工具的名字,大家需要慢慢熟悉这些名词,简单来说就是他能让你的编程之路变得更顺畅,提供了可视化的界面,不需要一直在黑窗口中输入代码

4.数据库建表代码(完整数据库文件请到主页资源处下载)

-- 创建用户表
CREATE TABLE Users (
    UserID INT PRIMARY KEY AUTO_INCREMENT,
    Username VARCHAR(50) NOT NULL,
    Password VARCHAR(255) NOT NULL,
    RoleID INT
);

-- 创建角色表
CREATE TABLE Roles (
    RoleID INT PRIMARY KEY AUTO_INCREMENT,
    RoleName VARCHAR(50) NOT NULL
);

-- 创建权限表
CREATE TABLE Permissions (
    PermissionID INT PRIMARY KEY AUTO_INCREMENT,
    PermissionName VARCHAR(50) NOT NULL
);

-- 创建角色权限关联表
CREATE TABLE RolePermissions (
    RoleID INT,
    PermissionID INT,
    PRIMARY KEY (RoleID, PermissionID)
);

-- 创建员工表
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(50) NOT NULL,
    Sex VARCHAR(50) NOT NULL,
    BirthDate DATE,
    DepartmentID INT,
    PositionID INT,
    Salary DECIMAL(10, 2),
    HireDate DATE,
    Status VARCHAR(20)
);

-- 创建部门表
CREATE TABLE Departments (
    DepartmentID INT PRIMARY KEY AUTO_INCREMENT,
    DepartmentName VARCHAR(100) NOT NULL
);

-- 创建职位表
CREATE TABLE Positions (
    PositionID INT PRIMARY KEY AUTO_INCREMENT,
    PositionName VARCHAR(100) NOT NULL
);

-- 创建员工家庭情况表
CREATE TABLE EmployeeFamily (
    EmployeeID INT,
    FamilyMemberName VARCHAR(100),
    Relationship VARCHAR(50),
    BirthDate DATE,
    PRIMARY KEY (EmployeeID, FamilyMemberName)
);

-- 创建培训与进修表
CREATE TABLE EmployeeTraining (
    TrainingID INT PRIMARY KEY AUTO_INCREMENT,
    EmployeeID INT,
    TrainingName VARCHAR(100),
    StartDate DATE,
    EndDate DATE
);

-- 创建考核结果表
CREATE TABLE EmployeeEvaluation (
    EvaluationID INT PRIMARY KEY AUTO_INCREMENT,
    EmployeeID INT,
    Year INT,
    Result VARCHAR(100)
);

5.Java代码思路及结构

此处只放部分代码截图

 

6.效果运行实例  

 

附带完整源码,数据库文件,需要后台私信   


原文地址:https://blog.csdn.net/weixin_64922330/article/details/140352560

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!