课 程 设 计 书
学院 计算机学院 专业 计算机科学与技术 班级 计科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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务