员工薪资管理系统课程设计39页.docx
《员工薪资管理系统课程设计39页.docx》由会员分享,可在线阅读,更多相关《员工薪资管理系统课程设计39页.docx(57页珍藏版)》请在冰豆网上搜索。
员工薪资管理系统课程设计39页
员工薪资管理系统课程设计
学院:
班级:
学号:
姓名:
余黎晨李雪敏敬翰林颜学宏
指导教师:
李竹林
一:
绪论
1.1设计目的
1.2设计内容
1.3开发背景
1.4开发环境
1.5组内成员及分工
二:
需求分析
2.1题目分析
2.2功能分析
2.3数据流图
2.4数据字典
2.5系统功能
三:
系统分析与设计
3.1概念结构设计
3.2逻辑结构设计
3.3物理结构设计
四:
数据库实施及运行
4.1建基本表
4.3功能实现
4.4完整代码
五:
设计心得及体会
一:
绪论
1.1设计目的
员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。
系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。
1.2设计内容
题目6:
员工薪资管理
1)背景资料
a)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。
b)该单位下设4个科室,即经理室、财务科、技术科和销售科。
c)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。
d)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。
e)每月个人的最高工资不超过3000元。
工资按月发放,实际发放的工资金额为工资减去扣除。
2)设计要求:
a)进行需求分析,编写数据字典。
b)设计图。
c)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
d)计算个人的实际发放工资。
e)按科室、职业分类统计人数和工资金额。
f)实现分类查询。
g)能够删除辞职人员的数据。
h)开发工具不限。
1.3开发背景
当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,影响企业发展。
为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。
该员工薪资管理系统主要用于中小型企业员工的工资发放管理,此系统的建立和使用有利于员工更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率,大大减少纸质管理对工作带来的失误。
1.4开发环境
开发平台:
2005
开发工具:
开发语言:
语言语言
1.5组内成员及分工
李雪敏:
系统框架撰写报告
颜学宏:
代码编写数据库的连接与运行
余黎晨:
概念结构设计代码调试
敬翰林:
逻辑结构设计需求分析
二:
需求分析
2.1题目分析
该题目要求设计一个员工薪资系统,实现员工信息的有序化,规范化,并能进行员工信息录入,查询,修改,删除等操作,能实现分类查询,
2.2功能分析
该员工薪资系统能够实现的功能如下:
员工信息的管理,包括姓名,性别,年龄,职业,员工号,部门编号基本信息的录入,查询,删除,修改等操作
部门信息的管理,包括部门编号和部门名称,查询每个部门的业绩和员工薪资情况
薪资信息的管理,包括员工号,部门编号,基本工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资等信息,统计出员工的基本工资,福利补贴,奖励工资,扣除失业保险,住房公积金后所得的工
2.3数据流图
2.4数据字典
数据字典在数据库设计中占有很重要的地位,数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。
根据数据流图对员工薪资管理数据库数据字典的设计如下所示:
2.41数据结构名:
员工
含义说明:
员工信息
组成:
姓名,性别,年龄,职业,员工号
数据项名
数据类型
长度
可否为空
含义说明
员工号
10
员工编号
员工姓名
10
姓名
员工年龄
10
年龄
部门名称
10
所属部门
员工职业
10
担任职务
2.42数据结构名:
部门
含义说明:
部门信息
组成:
部门编号,部门名称
数据项名
数据类型
长度
可否为空
含义说明
部门编号
4
科室类别
部门名称
10
科室名称
2.43数据结构名:
工资
含义说明:
员工薪资信息
组成:
员工号,部门编号,基本工资,福利补贴,奖励工资,扣罚工资,失业保险,住房公积金,实发薪资
数据项名
数据类型
长度
可否为空
含义说明
员工号
8
员工编号
员工工资
4
所的工资
奖励工资
8
基本工资
员工薪资
8
福利和补贴工资
2.5系统功能
该员工薪资系统的功能如下:
三:
系统分析与设计
3.1概念结构设计
E—R图设计
员工实体——关系图
部门实体——关系图
工资实体——关系图
总的E—R图
3.2概念结构设计
图表示的概念模型是用户数据要求的形式化,它不为任何一个所支持,而逻辑结构设计的任务就是把概念模型结构转换成某个具体的所支持的数据模型,员工薪资管理图转换为关系模式为:
员工(姓名,性别,年龄,职业,员工号,部门编号)
部门(部门编号,部门名称)
薪资(员工号,员工工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资)
四:
数据库实施与运行
4.1建基本表
员工信息表
部门信息表
工资信息表
4.3功能实现
4.31系统界面展示:
4.32员工信息查询功能
按工号查询:
按姓名查询:
4.33员工工资查询功能:
4.34修改员工工资功能:
4.35添加员工功能:
4.36修改员工信息功能:
4.37删除员工信息功能:
4.4完整代码展示
4.41源程序代码
类用于数据库的连接
导入包
.*;
创建数据库连接类
{
静态方法提高数据库的连接效率
()
{
加载驱动
("");
以系统默认用户身份,连接数据库
("","","753");
}
}
4.42主框架代码:
系统主框架类
导入系统的包
.*;
.*;
.*;
创建主框架类
{
创建内容面板
;
创建菜单栏组件的对象
1()菜单条
0("退出系统")菜单
0("退出")子菜单
1("员工管理");
1("添加员工");
2("修改员工");
3("删除员工");
2("工资管理");
4("添加工资");
5("修改工资");
8("工资查询");
3("员工查询");
6("按工号查询");
7("按姓名查询");
9("互动");
创建标签,用于显示信息
1("欢迎使用员工薪资管理系统");
创建构造方法
()
{
{
关闭框架窗口时的默认事件方法
();
调用初始化方法
();
}
(){
();
}
}
界面初始化方法
()
{
创建内容面板
=()();
设置内容面板的布局为空
();
主框架的大小
((400,360));
主框架的标题
("员工薪资管理系统");
添加事件监听器
0();
1();
2();
3();
4();
5();
6();
7();
8();
9();
添加菜单条到主框架
(1);
添加菜单到菜单条
1(0);
1
(1);
1
(2);
1(3);
添加菜单项到菜单
0(0);
1
(1);
1
(2);
1(3);
2(4);
2(5);
2(8);
3(6);
3(7);
添加标签到主框架内容面板
(1);
设置标签组件的大小和字体
1(("黑体",20));
1((65,70,275,55));
}
菜单项事件对应的处理方法
()
{
点击“系统”菜单下的“退出”菜单项
(()0)
{
(0);
}
点击“员工管理”菜单下的“添加员工”菜单项
(()1)
{
创建“添加员工”面板对象
();
移除主框架上原有的内容
(());
加载“添加职工”面板的对象到主框架
();
令界面可见
();
}
点击“员工管理”菜单下的“修改员工”菜单项
(()2)
{
创建“修改员工”面板对象
();
(());
加载“修改员工”面板的对象到主框架
();
();
}
点击“员工管理”菜单下的“删除员工”菜单项
(()3)
{
创建“删除员工”面板对象
();
(());
加载“删除员工”面板的对象到主框架
();
();
}
点击“工资管理”菜单下的“添加工资”菜单项
(()4)
{
创建工资添加的面板对象
();
(());
加载工资添加面板的对象到主框架
();
();
}
点击“工资管理”菜单下的“修改工资”菜单项
(()5)
{
创建工资修改的面板对象
();
(());
加载工资修改面板的对象到主框架
();
();
}
点击“工资管理”菜单下的“工资查询”菜单项
(()8)
{
创建工资修改的面板对象
();
(());
加载工资修改面板的对象到主框架
();
();
}
点击“员工查询”菜单下的“按工号查询”菜单项
(()6)
{
创建“按工号查询”面板对象
();
移除主框架上原有的内容
(());
();
();
}
}
}
4.43主函数代码:
系统的主程序类
导入包
.*;
.*;
创建主系统类
{
([])
{
创建主界面,调用()构造函数和方法
();
获取屏幕尺寸
()();
获取主界面的窗体尺寸
();
令主界面窗体居中
(>)
;
(>)
;
(()/2,()/2);
令主界面显示
();
}
}
4.44员工信息查询代码
按工号查询代码
导入系统的类包
.*;
"按员工号查询"面板类
.*;
.*;
.*;
创建“按员工号查询”类
{
声明连接数据库对象
;
声明语句对象
;
创建组件对象:
标签、文本行、单选
1("请输入员工号:
");
1();
1("查找");
1();
构造方法
()
{
{
调用初始化方法
();
}
(){
();
}
}
面板初始化方法
()
{
连接数据库
();
();
框架的布局
();
设置各组件的大小
1(("黑体",16));
1((46,4,222,32));
1((47,37,247,31));
1((47,86,247,30));
1((24,130,305,109));
添加按钮动作事件
1();
添加组件到面板
(1);
(1);
(1);
(1);
}
点击按钮事件
(e)
{
获取输入的员工号
1();
清空文本区原有的内容
1("");
{
利用对象执行语句,返回结果集对象
("*员工号='""'");
处理结果集
(())
{
1("员工号:
"("员工号")+"\n"+"员工姓名:
"("员工姓名")+"\n"+"员工性别:
"("员工性别")+"\n"+"员工年龄:
"("员工年龄")+"\n"+"部门名称:
"("部门名称")+"\n"+"员工职业:
"("员工职业")+"\n");
}
{
(,"没有这个员工号的员工!
");
}
}
(){
利用消息对话框提示查询失败
(,"员工查询失败!
");
}
}
}
按姓名查询
"按员工姓名查询"面板类
导入系统的类包
.*;
.*;
.*;
.*;
创建“按员工姓名查询”类
{
声明连接数据库对象
;
声明语句对象
;
创建组件对象:
标签、文本行、单选
1("请输入员工姓名:
");
1();
1("查找");
1();
构造方法
()
{
{
调用初始化方法
();
}
(){
();
}
}
面板初始化方法
()
{
连接数据库
();
();
框架的布局
();
设置各组件的大小
1(("黑体",16));
1((46,4,222,32));
1((47,37,247,31));
1((47,86,247,30));
1((24,130,305,109));
添加按钮动作事件
1();
添加组件到面板
(1);
(1);
(1);
(1);
}
点击按钮事件
(e)
{
获取输入的员工的姓名
1();
清空文本区原有的内容
1("");
{
利用对象执行语句,返回结果集对象
("*员工姓名='""'");
处理结果集
(())
{
1("员工号:
"("员工号")+"\n"+"员工姓名:
"("员工姓名")+"\n"+"员工性别:
"("员工性别")+"\n"+"员工年龄:
"("员工年龄")+"\n"+"部门名称:
"("部门名称")+"\n"+"员工职业:
"("员工职业")+"\n");
}
{
(,"没有这个员工号的员工!
");
}
}
(){
利用消息对话框提示查询失败
(,"员工查询失败!
");
}
}
}
4.45员工工资查询代码
"工资查询"面板类
导入系统的类包
.*;
.*;
.*;
.*;
创建“工资查询”类
{
声明连接数据库对象
;
声明语句对象
;
创建组件对象:
标签、文本行、单选
1("请输入要查询的员工号:
");
1();
1("工资查询");
1();
构造方法
()
{
{
调用初始化方法
();
}
(){
();
}
}
面板初始化方法
()
{
连接数据库
();
();
框架的布局
();
设置各组件的大小
1(("黑体",16));
1((46,4,222,32));
1((47,37,247,31));
1((47,86,247,30));
1((24,130,305,109));
添加按钮动作事件
1();
添加组件到面板
(1);
(1);
(1);
(1);
}
点击按钮事件
(e)
{
获取输入的员工号
1();
清空文本区原有的内容
1("");
{
利用对象执行语句,返回结果集对象
("*员工号='""'");
处理结果集
(())
{
1("员工号:
"("员工号")+"\n"+"员工工资:
"("员工工资")+"\n");
}
{
(,"该员工号的员工没有工资记录!
");
}
}
(){
利用消息对话框提示查询失败
(,"工资查询失败!
");
}
}
}
4.46修改工资代码
“修改工资”面板类
导入系统的类包
.*;
.*;
.*;
.*;
创建“修改工资”面板类
{
声明连接数据库对象
;
声明语句对象
;
创建组件对象:
标签、文本行、单选
1("请输入员工号:
");
1();
1("查找该员工");
2("员工号:
");
2();
3("员工工资:
");
3();
2("修改工资");
构造方法
()
{
{
调用初始化方法
();
}
(){
();
}
}
面板初始化方法
()
{
连接数据库
();
();
框架的布局
();
设置各组件的大小
1(("楷体",14));
1((40,25,140,30));
1((185,25,120,30));
1((110,65,120,30));
2(("楷体",14));
2((90,125,80,30));
2((170,125,80,30));
3(("楷体",14));
3((90,160,80,30));
3((170,160,80,30));
2((120,200,100,30));
添加按钮动作事件
1();
2();
添加组件到面板
(1);
(1);
(1);
(2);
(2);
2();
(3);
(3);
(2);
}
点击按钮事件
()
{
点击“查找该员工”按钮
(()1)
{
获取输入的员工号
1();
{
利用对象执行语句,返回结果集对象
("*员工号='""'");
处理结果集
(())
{
2(("员工号"));
3(("员工工资"));
}
{
(,"没有这个员工号的员工!
");
}
}
(){
利用消息对话框提示查询失败
(,"工资修改失败!
");
}
}
点击“修改工资”按钮
(()2)
{
获取用户更改的工资
{
利用对象执行语句,进行修改操作
("员工工资='"3()+"'员工号='"2()+"'");
利用消息对话框提示工资修改成功
(,"工资修改成功!
");
}
(){
利用消息对话框提示异常的信息
(,"工资修改失败!
");
();
}
}
}
}
4.47员工添加代码
添加员工面板类
导入系统的类包
.*;
.*;
.*;
.*;
创建“添加员工“面板类
{
声明连接数据库对象
;
声明语句对象
;
创建组件对象:
标签、文本行、单选
1("员工号");
2("员工姓名");
3("员工性别");
4("员工年龄");
5("部门名称");
6("员工职业");
1();
2();
3();
4();
5();
1("男");
2("女");
1();
1("添加员工");
构造方法
()
{
{
调用初始化方法
();
}
(){
();
}
}
界面初始化方法
()
{
连接数据库
();
();
框架的布局
();
设置各组件的大小
1((21,17,64,24));
2((21,51,53,22));
3((21,86,61,27));
4((21,122,59,25));
5((21,168,54,24));
6((21,205,54,24));
1((102,10,200,30));
2((102,49,200,30));
3((102,117,80,33));
4((102,163,200,29));
5((102,200,200,29));
1((102,83,65,30));
2((190,85,85,30));
1((130,240,150,32));
设置单选按钮被选中
1();
添加按钮动作事件
1();
添加组件到面板
(1);
(1);
(2);
(2);
(3);
1
(1);
1
(2);
(1);
(2);
(4);
(3);
(5);
(4);
(6);
(5);
(1);
}
点击按钮事件
(e)
{
获取用户输入的信息
1();
2();
"";
(1())
"男";
(2())
"女";
3();
4();
5();
{
设置日期格式
("");
利用对象执行语句,进行插入操作
("('""','""','""','""','""','""')");
利用消息对话框提示员工添加成功
(,