您好,欢迎来到微智科技网。
搜索
您的当前位置:首页数据库原理课程设计说明书(薪资管理系统)

数据库原理课程设计说明书(薪资管理系统)

来源:微智科技网
四 川 理 工 学 院

课 程 设 计 书

学院 计算机学院 专业 计算机科学与技术 班级 计科09级7班 题目 薪资管理系统 教师 何绍荣 学生 莫华东、邓修丽、曾秀容

目录

一、 开发背景和开发环境 .............................................. 3

1.1 开发背景 ............................................................... 3 1.2 开发环境 ................................................................ 4 1。3 组内成员 ............................................................. 5 1.4 任务分配情况 ........................................................ 5 二、 需求分析................................................................... 5

2.1员工薪资管理系统的题目分析: ......................... 5 2.2 信息要求 ................................................................ 6 2。3 处理要求 ............................................................. 6 2。4 安全性要求 ......................................................... 8 2。5 完整要求 ............................................................. 8 2。6 数据流图 ............................................................. 8 2.7 数据字典 ................................................................ 8 三、概念结构设计............................................................. 15

3。1 E-R图设计 ......................................................... 15 四、逻辑结构设计............................................................. 17

4。1 E—R图转关系模型: ......................................... 17

4.2 基本表的实现 ...................................................... 17 五、物理结构设计............................................................. 19 六、数据库实施................................................................. 19

6。1建表 .................................................................... 19 6。2执行sql语句 ...................................................... 19

6。2。1实现按照科室录入个人的基本资料、工资和扣除金额的数据: .................................... 19 6。2。2计算个人的实际发放工资: .............. 19 6.2.3按科室、职业分类统计人数和工资金额: ............................................................................. 20 6。2。4实现分类查询: .................................. 20 6。2。5能够删除辞职人员的数据: ................. 20 6。3 编码 ................................................................... 20 七、总结 ............................................................................. 25

一、 开发背景和开发环境

1.1 开发背景:

企业的工资管理是公司管理的一个重要内容,随着企业人员数量增加,企业的工资管理工作也变

得越来越复杂.工资管理既设计到企业劳动认识的管理,同时也是企业财务管理的重要组成部分,工资管理需要和人事管理相联系,同时连接工时考核和医疗保险等等,来生产那个企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎活计算疏漏,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统极大的提高了工作效率,节省了人力和财力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志。

1.2 开发环境:

1. 操作系统:windows xp 2。 数据库:sql server 2000 3。 开发语言:java 4. 开发工具:eclipse

1。3 组内成员:莫华东、邓修丽、曾秀容 1.4 任务分配情况:

莫华东负责:需求分析、编码

邓修丽负责:概念结构设计、数据库实施 曾秀容负责:逻辑结构设计、数据库实施

二、 需求分析

2.1员工薪资管理系统的题目分析:

 公司的员工各自职业不同,领取的工资也不相同,员工分为管理人员、账务人员、技术人员、销售人员

 下设几个部门,各部门人员领取的工资也不相同,有经理部、财务部、技术部、销售部  工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除

 每个员工的基本资料有姓名、性别、年龄、部

门、职业(如经理、主任、科长、工程师、办事员和工人等)

 每月个人的最高工资不超过3000元.工资每月按部门发放,实际发放的工资金额为工资总额减去失业保险金和住房公积金。如果违反劳动纪律,每次扣除基本工资的10%,若扣除金额每月累计超过基本工资,下月工资停发

2。2 信息要求:

 用户需要从数据库中查询基本信息其中包括员工号,姓名,性别,年龄,确定自己的基本信息是否正确

 用户需要从数据库中查询工资情况其中包括基本资,福利补贴,奖励工资,失业保险,住房工积金,知道自己每个月应得工资

 用户需要从数据库中查询部门其中包括部门号,部门名称,确定是否正确

 用户需要从数据库中查询职业其中包括职业号,职业名称,确定是否正确

2。3 处理要求:

 员工信息的输入,包括员工的:员工号、部门号、职业号、姓名、性别、年龄

 员工信息的查询,包括员工的:员工号、姓名、性别、年龄、职业、应得工资和实发工资  员工信息的修改,包括员工的:员工号、姓名、性别、年龄、职业

 新增员工信息的插入,包括员工的:员工号、部门号、职业号、姓名、性别、年龄  离职员工信息的删除,包括员工的:员工号、部门号、职业号、姓名、性别、年龄  记录已经领取和未领取工资的员工的信息,包括员工的:员工号、部门号、职业号、姓名、性别、年龄、职业名、应得工资、实发工资  处理违反纪律而扣工资的员工的信息,员工信息的输入,包括员工的:员工号、部门号、职业号、姓名、性别、年龄、职业、应得工资和实发工资

 处理因表现良好而加工资的员工的信息,员工信息的输入,包括员工的:员工号、姓名、性

别、年龄、职业、应得工资和实发工资

2.4 安全性要求:

本系统的管理员是会计部的操作人员,一般的职工只有登陆查看自己信息的权利,但是不管是管理员,还是一般工作人员,都要用自己的登录名和密码才能进行操作,这样保证了该系统得安全性。

2。5 完整要求:

在在该系统中,数据的完整性也是非常重要的,只有保持勒完整性,才能充分发挥该系统的作用。本系统是通过采用事物来实现完整性控制的。

2.6 数据流图:

2。7 数据字典:

数据项:员工号

含义说明:唯一的标识每个员工 类型:字符型 长度:6

取值范围:000000-999999

取值含义:1-2位标识部门号3-4位标识职业号,5-6

位标识员工号 数据项:姓名

含义说明:标识每个员工的姓名 类型:字符型 长度:8

取值含义:顺序标识每一个员工的姓名

数据项:性别

含义说明:唯一的标识每一个员工的性别 类型;逻辑型 长度:1

取值范围:0或者1

取值含义:唯一的标识每一个员工的性别

数据项:年龄

含义说明:标识每一个员工的年龄 类型:整型 长度:2

取值范围:18—100

取值含义:顺序的标识每一个员工的年龄 “员工”是该系统中的一个核心数据结构,它可以描述如下: 数据结构:员工

含义说明:是员工薪资管理系统中的主体数据结构,定义了一个员工的有关信息 组成:员工号,姓名,性别,年龄

数据项:基本工资

含义说明:标识每一个员工的基本工资 类型:浮点型 长度:7

取值范围:0000。00-3000。00

取值含义:顺序的标识每一个员工的基本工资

数据项:福利补贴

含义说明:标识每一个员工的福利补贴 类型:浮点型 长度:7

取值范围:0000.00—3000。00

取值含义:顺序的标识每一个员工的福利补贴

数据项:奖励工资

含义说明:标识每一个员工的奖励工资 类型:浮点型 长度:7

取值范围:0000.00—3000.00

取值含义:顺序的标识每一个员工的奖励工资

数据项:失业保险

含义说明:标识每一个员工的失业保险 类型:浮点型 长度:7

取值范围:0000.00—3000.00

取值含义:顺序的标识每一个员工的失业保险

数据项:住房工积金

含义说明:标识每一个员工的住房工积金

类型:浮点型 长度:7

取值范围:0000。00—3000.00

取值含义:顺序的标识每一个员工的住房工积金

数据项:应得工资

含义说明:标识每一个员工的应得工资 类型:浮点型 长度:7

取值范围:0000。00—3000.00

取值含义:顺序的标识每一个员工的应得工资

数据项:实得工资

含义说明:标识每一个员工的实得工资 类型:浮点型 长度:7

取值范围:0000。00—3000。00

取值含义:顺序的标识每一个员工的实得工资

“工资”是该统中的一个核心数据结构,它可以描述如下:

数据结构:工资

含义说明:是员工薪资管理系统中的核心数据结构,定义了一个员工的有关工资

组成:基本工资、福利补贴、奖励工资、失业保险、住房工积金

数据项:职业号

含义说明:唯一的每一个员工的职业号 类型:字符型 长度:3

取值范围:000-999

取值含义:顺序的唯一标识每一个员工的职业号

数据项:职业名

含义说明:唯一的每一个员工的职业名 类型:字符型 长度:12

取值范围:000-999

取值含义:顺序的唯一标识每一个员工的职业名

数据结构:职业

含义说明:定义了一个员工的职业 组成:职业号、职业名

数据项:部门号

含义说明:唯一的每一个员工的部门号 类型:字符型 长度:2 取值范围:00-11

取值含义:顺序的唯一标识每一个员工的部门

数据项:部门名

含义说明:唯一的每一个员工的部门名 类型:字符型 长度:10

取值范围:0000000000 -1111111111

取值含义:顺序的唯一标识每一个员工的部门名 数据结构:部门

含义说明:定义了一个员工的所属部门 组成:部门号、部门名

三、概念结构设计

3。1 E—R图设计

员工实体E—R图:

员工员工号姓名性别年龄

工资实体E-R图:

工资基本工资福利补贴奖励工资失业保险住房工积金

部门实体E—R图:

部门部门号部门名

职业实体E—R图:

职业职业号职业名

总的E-R图:

职工号职业职工名n职工号职工名属于21员工号姓名性别年龄员工1属于1n部门n拥有11职业1应得工资拥有2实发工资1工资基本工资福利补贴奖励工资失业保险住房工积金

四、逻辑结构设计

4.1 E-R图转关系模型:

员工(员工号、部门号、职业号、姓名、姓别、年龄)

工资(员工号、基本工资、福利补贴、奖励工资、失业保险、住房工积金、应得工资、实发工资)

职业(职业号、职业名) 部门(部门号、部门名)

4.2 基本表的实现:

员工表(staff):

属性名 员工号(Snum) 部门号(Dnum) 职业号(Pnum) 姓名(Sname) 性别(Ssex) 年龄(Sage)

数据类型 char Char Char Char Char Char 字段长度 11 2 7 8 2 2 是否为空 NOT NULL NULL NULL NULL NULL NULL 是否为主/外键 主键 外键 外键 工资表(salary): 属性名 员工号(Snum) 基本工资(Bsalary) 福利补贴类型 char float float 长度 11 7 7 是否允许为空 NOT NULL NULL NULL 是否为主/外键 外键 (Wsubsidy) 奖励工资(Asalary) 失业保险(Lsafe) 住房工积金(Hsalary) 应得工资(Dsalary) 实发工资(Ssalary)

职业表(profession):

属性名 职业号(Pnum) 职业名(Pname)

部门表(department):

数据类型 Char Char 长度 7 2 是否为空 NULL NULL 是否为主/外键 主键 float float float float float 7 7 7 7 7 NULL NULL NULL NULL NULL 属性名 部门号(Dnum) 部门名(Dname) 数据类型 Char Char 长度 2 10 是否为空 NULL NULL 是否为主/外键 主键 五、物理结构设计 六、数据库实施 6.1建表:

1。staff表

create table staff(Snum char(11) unique not null, Dnumchar(2),

Pnum char(7), Sname char(8) , Ssex char(2), Sage char(2));

2.salary表

create table salary(Snum char(11) unique not null, Bsalary float

(7), Wsubsidy float(7), Asalary float(7), Lsafe float(7), Hsalary float(7), Dsalary float(7), Ssalary float(7));

3.Profession表 4。Department表

create table profession(Pnum char(7) unique not null,Pname char(2));

create table department(Dnum char(2) unique not null, Dname char(10));

6。2执行sql语句

6。2。1实现按照科室录入个人的基本资料、工资和扣除金额的数据:

6。2.2计算个人的实际发放工资:

select staff。Snum 员工号, Sname 员工名,

Bsalary+Wsubidy+Asalary—Lsafe—HSalary 实发工资 from staff, Salary where staff。Snum=salary.Snum;

6.2。3按科室、职业分类统计人数和工资金额: 按照科室:

select count(*) as 人数, sum(Bsalary+Wsubsity+Asalary—Lsafe—Hsalary) as 工资 from staff, salary where staff.Snum=salary。Snum group by Dnum;

按照职业:

select count(*) as 人数, sum(Bsalary+Wsubsity+Asalary—Lsafe-Hsalary) as 工资 from staff, salary where staff.Pnum=salary。Pnum group by Pnum;

6。2.4实现分类查询:

6.2。5能够删除辞职人员的数据:

delete from staff where Snum='’; delete from salary where Snum=’’;

6.3 编码:

1。登录对话框:

代码:

public void createDialog () {

dialog = new JDialog (Salary。this, ”用户登录框”, true);////Font fn = new Font (”宋体\", 1, 13);

dialog。setSize (new Dimension (300, 200));//设置对话的大dialog.setLayout (new GridLayout (4, 1));//设置对话框的布局 dialog。setLocation (400, 260); JLabel jlab1 = new JLabel (\"请登录”); JLabel jlab2 = new JLabel (”用户名:\"); JLabel jlab3 = new JLabel (”密 码:\"); JTextField jte1 = new JTextField (\"\);

JPasswordField jte2 = new JPasswordField (\"”, 15); JButton jbut1 = new JButton (”确定”); jbut1。setFont (fn); jbut1.setFocusPainted(false);

JButton jbut2 = new JButton (\"取消\"); jbut2.setFont (fn);

jbut2。setFocusPainted(false); JPanel jpan1 = new JPanel (); JPanel

jpan2

=

new

JPanel

new

FlowLayout

创建对话框

(FlowLayout.LEFT));

JPanel jpan3 = new JPanel (new FlowLayout (FlowLayout。LEFT)); JPanel jpan4 = new JPanel (); jlab1.setFont (fn); jlab2。setFont (fn); jlab3。setFont (fn); jte1.setFont (fn); jte2。setFont (fn); jte2.setEchoChar (’*'); jpan1.add (jlab1); jpan2。add (jlab2); jpan2.add (jte1);

}

jpan3.add (jlab3); jpan3。add (jte2); jpan4。add (jbut1); jpan4。add (jbut2); //监听按钮事件

jbut1.addActionListener (new ActionListener () { });

jbut2.addActionListener (new ActionListener () {

public void actionPerformed (ActionEvent e) { }

System.exit (0);

public void actionPerformed (ActionEvent e) { }

dialog.dispose ();

});

//监听对话框事件

addWindowListener (new WindowAdapter () { });

public void windowClosing (WindowEvent e) { }

System。exit (0);

dialog。add (jpan1); dialog。add (jpan2); dialog.add (jpan3); dialog.add (jpan4); dialog。setResizable(false); dialog.setVisible (true);

2。 主窗口:

this.setLocation (400, 260);//设置窗口的位置 this。setResizable (false);//设置窗口不允许改变大小 this。setLayout (null);//取消窗口的内在布局 this.setVisible (true);

代码:

public static final int FRAME_WIDTH = 500;//定义窗口的宽度 public static final int FRAME_HEIGHT = 350;//定义窗口的高度 private Font fn = new Font (”宋体”, 1, 13); private JDialog dialog; ImageIcon img; String filename;

public Salary (String title, String filename) { }

public void launchFrame () {

this.createDialog (); this。createMenu ();

this。setSize (FRAME_WIDTH, FRAME_HEIGHT);//设置窗口的宽度和高super (title);

this.filename = filename;

img = new ImageIcon(filename);//这是背景图片

JLabel imgLabel = new JLabel(img);//将背景图放在标签里。 this.getLayeredPane()。add(imgLabel,

new Integer(Integer。

MIN_VALUE));//注意这里是关键,将背景标签添加到窗口的LayeredPane面板里

imgLabel.setBounds(0 ,0 ,img。getIconWidth(), img。Container cp = this。getContentPane(); cp。setLayout (new BorderLayout());

((JPanel)cp)。setOpaque (false); //注意这里,将内容面板设为透明.这

getIconHeight());//设置背景标签的位置

样LayeredPane面板中的背景才能显示出来。 //窗口关闭事件

}

this。addWindowListener (new WindowAdapter () {

public void windowClosing (WindowEvent e) { }

System。exit (0);

});

添加员工:

代码:略 删除员工:

代码:略 其它:略

七、总结

本次数据库系统设计我选的是员工薪资管理系统,是我第一次设计数据库的系统,这对我来说是一个很严峻的考验,同时也激发了我的热情,使我能够完全投入到本次系统的设计中来。因为这不仅要求我能熟练掌握数据库的理论知识和实践知识,还对我的软件设计能力有较高得要求。

本系统实现的功能有查询、插入、修改、删除等,

这就要求我能够熟练掌握和使用数据库的操作和使用,另外,数据得完整性和安全性也是本次设计得一个重点和难点,如果不能做好,那么这个系统也就相应的失去它的优势.

在本次设计过程中,我也遇到了一些问题,毕竟我是首次设计这种系统,经验不足,还有很多设计的方法和技巧没有掌握,但是我通过查询资料和请教别人,终于把遇到得问题解决了。本次设计使我获益匪浅,不仅使我对数据库的知识更加熟练,掌握得更加牢固,为今后的进一步学习打下了坚实的基础,还让我学会了更多的设计方法和技巧,使我的设计能力有了进一步提高。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务