数据库课程设计——工资管理系统_第1页
数据库课程设计——工资管理系统_第2页
数据库课程设计——工资管理系统_第3页
数据库课程设计——工资管理系统_第4页
数据库课程设计——工资管理系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、得分:课程设计报告工资管理系统-职工考勤管理系统姓名LS班级学号QQ:1054180233课程名称一数据库原理及应用指导教师2011年12月15日 TOC o 1-5 h z 工资管理系统需求分析11.1功能需求11.1.1 功能戈|分1 HYPERLINK l bookmark22 o Current Document 功能描述1 HYPERLINK l bookmark31 o Current Document 1.2性能需求1 HYPERLINK l bookmark34 o Current Document 1.3数据流图2 HYPERLINK l bookmark37 o Curre

2、nt Document 1.4数据字典5 HYPERLINK l bookmark40 o Current Document 数据流的描述5 HYPERLINK l bookmark43 o Current Document 处理逻辑的描述6 HYPERLINK l bookmark46 o Current Document 数据存储的描述6总体设计72.1数据库概念设计7 HYPERLINK l bookmark53 o Current Document 2.2功能模块8系统详细设计93.1数据库逻辑设计93.2各模块功能10 HYPERLINK l bookmark60 o Current

3、 Document 职工信息管理系统10 HYPERLINK l bookmark63 o Current Document 职工工资管理系统10 HYPERLINK l bookmark66 o Current Document 职工津贴管理系统10 HYPERLINK l bookmark69 o Current Document 职工考勤管理系统1011系统实现114.1界面截图 TOC o 1-5 h z 主界面及工资基本信息界面11登录界面12 HYPERLINK l bookmark77 o Current Document 4.1.3 系统主界面13考勤信息录入,修改,删除,查询

4、界面14 HYPERLINK l bookmark80 o Current Document 4.2设计代码151、需求分析1.1功能需求功能划分、员工考勤情况表;及时反映员工的出勤,以及缺勤扣款情 况、员工津贴表,反映员工的加班时间,加班类别、加班天数、津贴情况等;、员工基本信息表,反映员工的基本信息,反映员工的工种、等级,基本工资等信息;、员工月工资表,计算月工资,生成打印清单。、银行表,用于员工工资的发放。、后勤部门表;反映员工的水电扣款信息等功能描述、员工每个工种基本工资的设定、加班津贴管理,根据加班时间和类型给予不同的加班津贴;、按照不同工种的基本工资情况、员工的考勤情况产生员工 的

5、每月的月工资;、员工年终奖金的生成,员工的年终奖金计算公式=(员工 本年度的工资总和+津贴的总和)/12;、企业工资报表。能够查询单个员工的工资情况、每个部门的 工资情况、按月的工资统计,并能够打印;、系统维护功能;1.2性能需求此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后 3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进 行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性上, 当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询 检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统 的运行环境,多

6、不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互 通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多 系统之间的互连互通,系统有巨大的强健性。1.3数据流图根据工资管理要求及用户需求调查分析,得到以下数据流图进入基本界图1.1第一层数据流图图1.2职工信息的载入图1.3工资的信息载入图1.5津贴的信息载入图1.6信息查询及管理的流程图1.4数据字典工资管理系统各实体及联系的数据字典数据流的描述数据流的编号:D001数据流的名称:员工基本信息简述:与员工有关的基本信息数据流来源:员工基本信息表数

7、据流去向:员工,部门数据流组成:员工编号+姓名+性别+年龄+部门+进入公司时间+住址数据流的编号:D002数据流的名称:工资结构信息简述:查询工资时所包含的相关信息数据流来源:工资信息表数据流去向:员工数据流组成:员工编号+加班加班+出差工资+迟到早退+矿工工资+应发工资+实发工资数据流的编号:D003数据流的名称:职务部门信息简述:查询员工职务部门信息数据流来源:职务部门信息表数据流去向:员工数据流组成:员工编号+职务+部门数据流的编号:D004数据流的名称:员工变动信息简述:查询员工变动情况数据流来源:员工变动信息表数据流去向:员工数据流组成:员工编号+原职务+原部门+现职务+现部门处理逻

8、辑的描述处理逻辑编号:P001处理逻辑名称:工资统计简述:对工资进行统计、计算输入的数据流:基本工资信息处理描述:根据职工的职位及其他相应情况计算出工资输出的数据流:工资信息处理逻辑编号:P002处理逻辑名称:员工信息处理简述:对员工信息进行处理输入的数据流:员工信息处理描述:根据员工的基本信息进行各种操作输出的数据流:员工信息处理逻辑编号:p003处理逻辑名称:变动处理简述:对员工的变动情况进行处理输入的数据流:员工变动信息处理描述:可进行添加、修改和删除等操作输出的数据流:员工变动信息数据存储的描述数据存储编号:F001数据存储名称:员工基本信息表简述:员工的基本信息数据存储组成:员工编号

9、+姓名+性别+年龄+部门+进入公司时间+住址关键字:员工编号相关联的处理:P002数据存储编号:F002数据存储名称:基本工资表简述:员工的工资信息数据存储组成:员工编号+加班加班+出差工资+迟到早退+矿工工资关键字:员工编号相关联的处理:P001数据存储编号:F003数据存储名称:变动信息表简述:员工的变动信息数据存储组成:员工编号+原职务+原部门+现职务+现部门关键字:员工编号相关联的处理:P002,P0032.总体设计2.1数据库概念设计有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图图2.1实体之间关系E-R图2.2功能模块3 .系统详细设计3.1数据库逻辑设计将以

10、上E-R转换成如下关系模式员工(职工号,姓名,工龄,部门岗位,电话号码,密码)工资(虹号,个人所得税,基本工资,医疗保险,缺勤扣除)考勤(职工号,缺勤天数,缺勤类别,时间)津贴(职工号,年终奖金,加班奖金,其他奖金)其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实 体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表一:员工信息表:列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)nameChar(10)NOT NULL职工姓名g

11、wChar(20)NOT NULL部门岗位glSmallintNOT NULL工龄hmChar(11)NULL电话号码miSmallintNOT NULL登录密码备设计表HTGGL,位置是Mfi_LSw中项M (local)上列名1数据类型长度允许空char8rL:=jriechar10gwchar20glmmaliint2hlTichar115miEnTdllinta表二:工资表:列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)JbmoneyNOT NULL基本工资yimoneyNULL医疗保险SwmoneyNULL个人所得税kcmoneyNULL缺勤扣除J

12、tmoneyNULL津贴yzmoneyNOT NULL月总工资蠢 设计表HGZGLW ,位置是MDB_LS中、K (local)上列名数据类型长度允许空问ch:=Lf8Jbmoney871money8VSwmoney8Vkcm uney8VJtmoney8VV*money8表三:员工考勤信息表列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)tsInt(4)NULL缺勤天数lbChar(30)NULL缺勤类别SjChar(10)NULL缺勤时间I Tn 设计表 MKQGL,位置是MDB_LS中?列名数据类型 长度允许空3S1char8tsint4/lbcharJ

13、 30VSjchar10讨表四:津贴信息表列名数据类型可否为空备注说明noChar ( 8 )NOT NULL职工号(主键)JiabanmoneyNULL月加班奖金nzmoneyNULL年终奖金qtmoneyNULL其他奖金氧设计表mJTGLw ,位置是=DB_L窘中、II叩昭广上列名数据类型长度允许空:h:=Lt_8J i at :=ltlmciney8nzmcmey8讨qtmcriey83.2各模块功能职工信息管理系统功能为:财务部门相关人员录入、修改、删除、查询员工个人信息;员工本 人能通过用户名和密码查询自己的信息以及修改自己的密码;职工工资管理系统功能为:根据工资生成公式,按照员工的

14、考勤情况及各种表现按月生成相应 的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信 息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;职工津贴管理系统功能为:财务部门相关人员录入、修改、删除、查询职工津贴信息;职工本 人能查询自己的津贴;职工考勤管理系统功能为:后勤管理人员录入、修改、删除、查询职工考勤信息;职工本人能 查询自己的考勤情况。采用模块化设计思想,可以大大提高设计的效率,并且可以最大限度地减少不必要的错误。4.系统实现4.1界面截图主界面及工资基本信息界面登录界面系统主界面考勤信息录入,修改,删除,查询界面4.2设计代码Java源程序:import ja

15、va.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.sql.*;import java.lang.*;import java.util.*;import javax.swing.table.*;import java.math.*;class DB_LS implements ActionListener(JFrame frame=new JFrame( 欢迎进入LS工资管理系统);JLabellabel=newJLabel(09网络 2_54_ 李胜,JLabel.CENTER

16、);JButton button1二new JButton( 进入系统);JButton button2二new JButton( 退 出系统);ImageIcon im=new ImageIcon(1.jpg);JLabel a1=new JLabel(im);void Create()(JPanel pcontentPane=(JPanel)frame.getContentPane();JPanel pcontentPane1二new JPanel();pcontentPane.add(label);pcontentPane.setLayout(new FlowLayout();pcont

17、entPane.add(button1);pcontentPane.add(button2);pcontentPane.add(new Label();pcontentPane.add(a1);pcontentPane.setBackground(Color.green);pcontentPane.setVisible(true);button1.addActionListener(this);button2.addActionListener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();fra

18、me.setBounds(200,100,550,600);frame.setVisible(true);public static void main(String args)(DB_LS dome=new DB_LS();dome.Create();public void actionPerformed(ActionEvent e)(if(button1.equals(e.getSource()DL dl=new DL();dl.create();if(button2.equals(e.getSource()/ 退 出System.exit(0);class DL implements A

19、ctionListenerJFrame frame=new JFrame( 职工 / 管理员登陆);JLabel label1=new JLabel(用户名);JLabel label2=new JLabel(密码);JButton logonButton1二new JButton( 管理员登录);JButton logonButton2二new JButton( 职 工登录);JButton cancelButton二new JButton( 退出);JTextField t1=new JTextField(0);JTextField t2=new JTextField(0);ImageIc

20、on im=new ImageIcon(2.jpg);JLabel a2=new JLabel(im);JTextField username=new JTextField(9);JPasswordField password=new JPasswordField(9); void create()(JPanel p=(JPanel)frame.getContentPane();JPanel p1=new JPanel();p.setLayout(new FlowLayout();p.add(label1);p.setSize(5,5);p.setLocation(4,8);p.add(use

21、rname);p.setSize(100,200);p.setLocation(800,800);p.add(label2);p.setSize(50,20);p.setLocation(40,80);p.add(password);p.setSize(100,20);p.setLocation(80,120);p.add(logonButton1); TOC o 1-5 h z p.add(new JLabel();p.add(logonButton2);p.add(new JLabel();p.add(cancelButton);p.add(new JLabel();p.add(a2);p

22、.add(t1);p.add(t2);p.setBackground(Color.blue);p.setVisible(true);logonButton1.addActionListener(this);logonButton2.addActionListener(this);cancelButton.addActionList ener(this);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setBounds(200,100,750,550);frame.setVisible(true);

23、public void actionPerformed(ActionEvent e)(if(logonButton1.equals(e.getSource()&(username.getText().equals(123)=true)&(password.getText().equals(123)=二true)(GZGLZJM gz=new GZGLZJM();gz.create();elseJOptionPane.showMessageDialog(null,对 不 起 ,你输入的密码错误!);;if(logonButton2.equals(e.getSource()&(username.g

24、etText().equals(t1.getText()=true)&(password.getText().equals(t2.getText()=true)XK xk=new XK();xk.create();Connection con;Statement sql;ResultSet rs;Vector vector=new Vector();try (Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) (System.out.println( + e1);try (con = Dr

25、iverManager.getConnection(jdbc:odbc:123,,);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);sql.executeQuery(SELECT Gno,mm FROM Y WHERE Gno=+t1.getText() +AND mm=+t2.getText();catch (SQLException e1) (System.out.println(el);if(cancelButton.equals(e.getSource()Syste

26、m.exit(0);class GZGLZJM extends JFrame implements ActionListener(JFrame f=new JFrame( 工资管理系统);JButton b1=new JButton(JButton b2=new JButton(JButton b3=new JButton(JButton b4=new JButton(JButton b6=new JButton(JButton b5=new JButton(津贴管理);总查询);工资管理);后勤管理);员工个人信息管理);返回);Imageicon im=new ImageIcon(3.jp

27、g);JLabel a3=new JLabel(im); void create()(JPanel p=(JPanel)f.getContentPane();JPanel p1=new JPanel(); p.setLayout(new FlowLayout();p.add(bl);p.add(new JLabel();p.add(b6);p.add(new JLabel();p.add(b3);p.add(new JLabel();p.add(b4);p.add(new JLabel();p.add(b2);p.add(new JLabel();p.add(b5);p.add(a3);p.s

28、etBackground(Color.red);p.setVisible(true);bl.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);f.setBounds(200,100,800,600);f.setVisible(true);public void actionPerformed(ActionEvent e)(if(b

29、5.equals(e.getSource()/ 返 回DL d=new DL();f.dispose();if(b1.equals(e.getSource()/ 津贴管理JTGL jt=new JTGL();jt.create();if(b6.equals(e.getSource()/YGGL yg=new YGGL();yg.create();if(b2.equals(e.getSource()/XK xk=new XK();xk.create();if(b4.equals(e.getSource()/KQGL kq=new KQGL();kq.create();if(b3.equals(e

30、.getSource()/GZGL gz=new GZGL();gz.create();class KQGL implements ActionListener(员工个人信息管理查询后勤管理工资管理JFrame f=new JFrame(录入修改删除考勤信息);JButton b1=new JButton(JButton b2=new JButton(JButton b3=new JButton(JButton b4=new JButton(JButton b5=new JButton(录入);修改);删除);查询所有);返回);JTextField tf1二new JTextField(4)

31、;JTextField tf2=new JTextField(4);JTextField tf3=new JTextField(4);JTextField tf4=new JTextField(4);JTextField tf5二new JTextField(6);JButton b6=new JButton( 查询单人考勤);String口 cloum=职工号,缺勤天数,缺勤类别,缺勤时间 ;Object口 row=new 0bject504;JTable table=new JTable(row,cloum);JScrollPane scrollpane二new JScrollPane(t

32、able);JSplitPanesplitpane二newJSplitPane(JSplitPane.VERTICAL_SPLIT);void create()(JPanel p=(JPanel)f.getContentPane();p.setLayout(new FlowLayout();/p.add(scrollpane);p.add(splitpane);JPanel p1=new JPanel();pl.add(bl);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b6);p1.add(b5);JPanel p2=new JPanel();p2.set

33、Background(Color.red);p2.add(scrollpane);JPanel p3=new JPanel();p.setLayout(new FlowLayout();p.add(new JLabel();职工号);缺勤天数);缺勤类别);p.add(new JLabel( p.add(tf1);p.add(new JLabel(p.add(tf2);p.add(new JLabel( p.add(tf3);p.add(new JLabel();p.add(new JLabel( 缺勤时间);p.add(tf4);在此处输入职工号点击查询p.add(new JLabel( 删

34、除);p.add(tf5);splitpane.add(p1,splitpane.TOP);splitpane.add(p2,splitpane.BOTTOM);splitpane.setDividerLocation(50);p.setBackground(Color.CYAN);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(th

35、is);f.setBounds(200,100,500,600);f.setResizable(true);/ 可以调整界面大小 f.setVisible(true);public void actionPerformed(ActionEvent e)( if(b1.equals(e.getSource() / 添加 Connection con;Statement sql;ResultSet rs;try (Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) (System.out.pr

36、intln( + e1);try (conDriverManager.getConnection(jdbc:odbc:123,);sql = con.createStatement();String insertStr = INSERT INTO K VALUES +( + + tf1.getText() + + , + tf2.getText()+, + +tf3.getText()+ + ,+tf4.getText()+);sql.executeUpdate(insertStr);con.close(); catch (SQLException el) ( System.out.print

37、ln(el);if(b2.equals(e.getSource()/ 修改 Connection con; Statement sql; ResultSet rs;try (Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException el) ( System.out.println( + el); try (con=DriverManager.getConnection(jdbc:odbc:123, , );sql = con.createStatement();sql.executeUpdate(UPD

38、ATEKSETts=+tf2.getText()+WHERE Kno=+tf1.getText()+); sql.executeUpdate(UPDATEKSETlb=+tf3.getText()+WHERE Kno=+tf1.getText()+); sql.executeUpdate(UPDATEKSETsj=+tf4.getText()+WHERE Kno=+tf1.getText()+);con.close(); catch (SQLException e1) ( System.out.println(e1);if(b3.equals(e.getSource()/ 删除 Connect

39、ion con; Statement sql; ResultSet rs;try (Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) ( System.out.println( + e1); try (con=DriverManager.getConnection(jdbc:odbc:123,,);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Result Set.CONCUR_READ_ONLY);sql.execute

40、Update(DELETE FROM K WHERE Kno=+tf5.getText();con.close(); catch (SQLException e1) ( System.out.println(e1); if(b4.equals(e.getSource()/ 查询全部 Connection con; Statement sql; ResultSet rs; Vector vector=new Vector(); try (Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e1) ( System.out.println( + e1);try (con = DriverManager.getConnection(jdbc:odbc:123, sa,);sql=con.createStatement(ResultSet.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论