1、数据库课程设计职工工资管理数据库原理课 程 设 计 报 告 题目: 职工工资管理 成绩: 1设计题目 职工工资管理2 系统概述企业的工资管理是公司管理的一个重要内容,随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既设计到企业劳动认识的管理,同时也是企业财务管理的重要组成部分,工资管理需要和人事管理相联系,同时连接工时考核和医疗保险等等,来生产那个企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资。3系统功能模块设计(1)员工信息和履历模块员工基本信息模块具有员工信息输入、员工增删和员工信息查询三个功能。员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在职务
2、、和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工信息查询可以通过员工号或员工姓名对员工信息进行查询。(2)工资结构设置模块根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资和工龄工资三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。(3)工资汇总模块用在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打印预览户。4数据库概念结构设计员工实体E-R图: 工资实体E-R图:部门实体E-R图:职务实体E-R图:考勤实体E-R图:总E-R图
3、1 1 n n 1 n 1 1 1 15数据库逻辑结构设计员工表(员工号,姓名,性别,年龄,部门号,职务号)工资表(员工号,基本工资,福利补贴,奖励工资,失业保险,住房公积金,应得工资,实发工资)部门表(部门号,部门名)职务表(职务号,职务名)考勤表(记录编号,员工号,出勤情况,日期)员工表:用于记录员工数据,此表创建的字段名是 :员工号、部门号、职业号、姓名、性别、年龄,其中员工号设为主键属性名数据类型字段长度是否为空是否主外键员工号(yg)char11NO主键姓名char2NO性别char7NO年龄char8NO部门号char2NO职务号char2NO工资表:此表创建的字段名是:员工号、基
4、本工资、福利补贴、奖励工资、失业保险、住房工积金、应得工资、实发工资,其中员工号设为主键属性名类型长度是否允许为空是否主外键员工号char11NO主键基本工资char7NO福利补贴float7NO奖励工资float7NO失业保险float7NO住房公积金float7NO应得工资float7NO实发工资float7NO部门表(bb): 用于区分员工的类别,此表创建的字段名是:经理室,财务科,技术科属性名类型长度是否允许为空是否主外键部门号(bm)char10NO主键部门名(bh)char7NO考勤表:属性名数据类型字段长度是否为空是否主外键记录编号char11NO主键员工号char8NO出勤情况
5、char8NO日期char8NO部门号char2NO职务号char2NO职业表(zb): 用于区分员工的职业,此表的字段名是:管理人员,财务人员,技术人员属性名类型长度是否允许为空是否主外键职务号(zy)char8NO主键职务名(zh)char10NO6数据库物理设计建立索引:CREATE UNIQUE INDEX zb ON zh(zy)CREATE UNIQUE INDEX bb ON bh(bm)数据项:员工号含义说明:唯一的标识每个员工类型:字符型长度:6取值范围:000000-999999取值含义:1-2位标识部门号3-4位标识职业号,5-6位标识员工号数据项:姓名含义说明:标识每个
6、员工的姓名类型:字符型长度:8取值含义:顺序标识每一个员工的姓名数据项:性别含义说明:唯一的标识每一个员工的性别类型;逻辑型长度:1取值范围:0或者1取值含义:唯一的标识每一个员工的性别数据项:年龄含义说明:标识每一个员工的年龄类型:整型长度:2取值范围:18-100取值含义:顺序的标识每一个员工的年龄员工是该系统中的一个核心数据结构,它可以描述如下:数据结构:员工含义说明:是员工薪资管理系统中的主体数据结构,定义了一个员工的有关信息组成:员工号,姓名,性别,年龄数据项:基本工资含义说明:标识每一个员工的基本工资类型:浮点型长度:7取值范围:0000.00-3000.00取值含义:顺序的标识每
7、一个员工的基本工资数据项:福利补贴含义说明:标识每一个员工的福利补贴类型:浮点型长度:7取值范围:0000.00-3000.00取值含义:顺序的标识每一个员工的福利补贴数据项:奖励工资含义说明:标识每一个员工的奖励工资类型:浮点型长度:7取值范围:0000.00-3000.00取值含义:顺序的标识每一个员工的奖励工资数据项:失业保险含义说明:标识每一个员工的失业保险类型:浮点型长度:7取值范围:0000.00-3000.00取值含义:顺序的标识每一个员工的失业保险数据项:应得工资含义说明:标识每一个员工的应得工资类型:浮点型长度:7取值范围:0000.00-3000.00取值含义:顺序的标识每
8、一个员工的应得工资数据项:实得工资 含义说明:标识每一个员工的实得工资 类型:浮点型 长度:7 取值范围:0000.00-3000.00 取值含义:顺序的标识每一个员工的实得工资7程序运行环境和开发环境操作系统:windows 7后台数据库:SQL Server 2008开发工具:JAVA等由于java编程与win7系统的SQL Server 2008比较兼容,所以我用的win7系统,这更便于我们编程与调试8数据库的实施与运行通过员工信息登入工资管理系统界面,如图:图8-1具体代码如下:public void createDialog () dialog = new JDialog (Sala
9、ry.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 (密 码:); JTextF
10、ield jte1 = new JTextField (, 15); 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
11、 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.ad
12、d (jte1); jpan3.add (jlab3); jpan3.add (jte2); jpan4.add (jbut1); jpan4.add (jbut2); /监听按钮事件 jbut1.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) dialog.dispose (); ); jbut2.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) Sys
13、tem.exit (0); ); /监听对话框事件 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); 工资管理系统界面,整个系统的核心程序,如图:图8-2具体代码如下:publi
14、c 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) super (title); this.filename = filename; public void launchFrame () this.crea
15、teDialog (); this.createMenu (); this.setSize (FRAME_WIDTH, FRAME_HEIGHT); this.setLocation (400, 260); this.setResizable (false); this.setLayout (null); this.setVisible (true); img = new ImageIcon(filename); JLabel imgLabel = new JLabel(img);。 this.getLayeredPane().add(imgLabel, new Integer(Integer
16、.MIN_VALUE); imgLabel.setBounds(0 ,0 ,img.getIconWidth(), img.getIconHeight(); Container cp = this.getContentPane(); cp.setLayout (new BorderLayout(); (JPanel)cp).setOpaque (false); this.addWindowListener (new WindowAdapter () public void windowClosing (WindowEvent e) System.exit (0); );员工工资管理系统员工删除
17、界面,便于删除员工数据,如图:图8-3员工工资管理系统添加界面,便于管理员工成员,如图: 图8-49遇到的问题及主要收获本次数据库系统设计我选的是员工薪资管理系统,是我第一次设计数据库的系统,这对我来说是一个很严峻的考验,同时也激发了我的热情,使我能够完全投入到本次系统的设计中来。因为这不仅要求我能熟练掌握数据库的理论知识和实践知识,还对我的软件设计能力有较高得要求。 本系统实现的功能有查询、插入、修改、删除等,这就要求我能够熟练掌握和使用数据库的操作和使用,另外,数据得完整性和安全性也是本次设计得一个重点和难点,如果不能做好,那么这个系统也就相应的失去它的优势。在本次设计过程中,我也遇到了一些问题,毕竟我是首次设计这种系统,经验不足,还有很多设计的方法和技巧没有掌握,但是我通过查询资料和请教别人,终于把遇到得问题解决了。本次设计使我获益匪浅,不仅使我对数据库的知识更加熟练,掌握得更加牢固,为今后的进一步学习打下了坚实的基础,还让我学会了更多的设计方法和技巧,使我的设计能力有了进一步提高。小组成员及分工:题目本组成员课题负责部分员工工资管理李林冲系统功能模块设计李会瀛数据库概念结构设计李明祖数据库逻辑结构设计李超越数据库物理设计