1、数据库课程设计 工资管理系统中北大学课 程 设 计 说 明 书学生姓名:陈 松学 号:0606054112学 院:电子与计算机科学技术学院专 业:软件工程题 目:工资管理系统-职工考勤管理系统指导教师: 韩燮 职称: 教授 2008 年 6 月 27 日1 系统设计1.1 目标设计在工资管理中,需要从公司管理方式以及实际情况中提取相关信息,以反映工资管理情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。避免重复劳动,规范工资管理行为,从而提高了管理效率和水平。让人们的效率大大提高.不难想象,正是资讯的迅速发展使得人们从过去繁复的手
2、工劳作中得以解脱,从而使这种服务在现在才可能迅速普及。同时,编写一套完整的工资管理系统的任务就显得尤为重要。开发设计思想本系统开发设计思想: 对公司软硬件调查,从实际环境出发,以便充分利用公司现在资源,提高系统开发水平和应用效果。 了解公司的需要及相关方面的规定,根据需要做出符合要求的软件,并达到操作过程中的直观、方便、实用、安全等要求。 将系统按模块分工到人,提高效率,且模块化设计便于系统功能的各种组合和修改及日后的维护 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、等操作。1.3 开发和运行环境选择开发工具:SQL2000, java语言。运行环境: Windows
3、 XP,Windows 2000或VISTA操作系统。1.4 系统功能分析本系统主要用于员工基本信息的管理,对员工以及其他信息的添加、修改、删除、查询等基本操作。对于数据库的保护有数据备份和数据恢复的功能。针对这些要求,设计本月工资信息管理系统。该系统主要包括职工信息、职工考勤信息、职工津贴信息。 1) 职工信息管理系统 功能为:财务部门相关人员录入、修改、删除、查询员工个人信息;员工本人能通过用户名和密码查询自己的信息以及修改自己的密码;2) 职工工资管理系统 功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工
4、资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总;3) 职工津贴管理系统 功能为:财务部门相关人员录入、修改、删除、查询职工津贴信息;职工本人能查询自己的津贴;4) 职工考勤管理系统 功能为:后勤管理人员录入、修改、删除、查询职工考勤信息;职工本人能查询自己的考勤情况。采用模块化设计思想,可以大大提高设计的效率,并且可以最大限度地减少不必要的错误。其系统结构框图如图所示: 图1.1 系统功能模块图2. 数据库设计2.1 数据库需求分析根据工资管理要求及用户需求调查分析,得到以下数据流图图2.1第一层数据流图图2.2职工信息的载入图2.3工资的信息载入图2.4考勤的信息载入图2.5津
5、贴的信息载入 图2.6信息查询及管理的流程图2.2 数据库概念设计有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图2-2所示 1 n m n 1 n m n 1 n图2.7 实体之间关系E-R图2.3 数据库逻辑设计将以上E-R转换成如下关系模式员工(职工号,姓名,工龄,部门岗位,电话号码,密码)工资(职工号,个人所得税,基本工资,医疗保险,缺勤扣除)考勤(职工号,缺勤天数,缺勤类别,时间)津贴(职工号,年终奖金,加班奖金,其他奖金)其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。工资信
6、息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表一:员工信息表:列名数据类型可否取空备注说明no Char ( 8 )NOT NULL职工号(主键)nameChar(10)NOT NULL职工姓名gwChar(20)NOT NULL部门岗位glSmallintNOT NULL工龄hmChar(11)NULL电话号码miSmallintNOT NULL登录密码表二:工资表:列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)JbmoneyNOT NULL基本工资ylmoneyNULL医疗保险SwmoneyNULL个人所得税
7、kcmoneyNULL缺勤扣除JtmoneyNULL津贴yzmoneyNOT NULL 月总工资表三:员工考勤信息表列名数据类型可否取空备注说明noChar ( 8 )NOT NULL职工号(主键)tsInt(4)NULL缺勤天数lbChar(30)NULL缺勤类别SjChar(10)NULL缺勤时间表四:津贴信息表列名数据类型可否为空备注说明noChar ( 8 )NOT NULL职工号(主键)JiabanmoneyNULL月加班奖金nzmoneyNULL年终奖金qtmoneyNULL其他奖金 3功能模块详细设计3.1主界面及工资基本信息界面的设计图2.8 欢迎画面图2.9登录界面图3.0
8、系统主界面图3.1 考勤信息录入,修改,删除,查询界面3.2功能描述 1主界面 通过菜单将各个模块连接起来 2.工资基本信息模块 工资基本信息的添加、修改和删除等基本操作3.3主要源代码import java.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 zzlc implements
9、 ActionListener JFrame frame=new JFrame(欢迎进入ZZLC工资管理系统); JLabel label=new JLabel(制作人:陈松 张淑静 张虎 黎成,JLabel.CENTER); 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.getCont
10、entPane(); JPanel pcontentPane1=new JPanel(); pcontentPane.add(label); pcontentPane.setLayout(new FlowLayout(); pcontentPane.add(button1); pcontentPane.add(button2); pcontentPane.add(new Label( ); pcontentPane.add(a1); pcontentPane.setBackground(Color.pink); pcontentPane.setVisible(true); button1.ad
11、dActionListener(this); button2.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setBounds(200,100,550,600); frame.setVisible(true); public static void main(String args) zzlc dome=new zzlc(); dome.Create(); public void actionPerformed(ActionEvent e) i
12、f(button1.equals(e.getSource() DL dl=new DL(); dl.create(); if(button2.equals(e.getSource()/退出 System.exit(0); class DL implements ActionListener JFrame frame=new JFrame(职工/管理员登陆); JLabel label1=new JLabel(用户名); JLabel label2=new JLabel(密码); JButton logonButton1=new JButton(管理员登录); JButton logonButt
13、on2=new JButton(职工登录); JButton cancelButton=new JButton(退出); JTextField t1=new JTextField(0); JTextField t2=new JTextField(0); ImageIcon im=new ImageIcon(2.jpg); JLabel a2=new JLabel(im); JTextField username=new JTextField(9); JPasswordField password=new JPasswordField(9); void create() JPanel p=(JP
14、anel)frame.getContentPane(); JPanel p1=new JPanel(); p.setLayout(new FlowLayout(); p.add(label1); p.setSize(5,5); p.setLocation(4,8); p.add(username); 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(
15、80,120); p.add(logonButton1); p.add(new JLabel( ); p.add(logonButton2); p.add(new JLabel( ); p.add(cancelButton); p.add(new JLabel( ); p.add(a2); p.add(t1); p.add(t2); p.setBackground(Color.red); p.setVisible(true); logonButton1.addActionListener(this); logonButton2.addActionListener(this); cancelBu
16、tton.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setBounds(200,100,750,550); frame.setVisible(true); public void actionPerformed(ActionEvent e) if(logonButton1.equals(e.getSource()&(username.getText().equals(123)=true)&(password.getText().equals
17、(123)=true) GZGLZJM gz=new GZGLZJM(); gz.create(); elseJOptionPane.showMessageDialog(null,对不起,你输入的密码错误!); ; if(logonButton2.equals(e.getSource()&(username.getText().equals(t1.getText()=true)&(password.getText().equals(t2.getText()=true) XK xk=new XK(); xk.create(); Connection con; Statement sql; Res
18、ultSet 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, , ); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); sql.ex
19、ecuteQuery(SELECT Gno,mm FROM Y WHERE Gno=+t1.getText() +AND mm=+t2.getText(); catch (SQLException e1) System.out.println(e1); if(cancelButton.equals(e.getSource() System.exit(0); class GZGLZJM extends JFrame implements ActionListener JFrame f=new JFrame(工资管理系统); JButton b1=new JButton(津贴管理); JButto
20、n b2=new JButton(总查询); JButton b3=new JButton(工资管理); JButton b4=new JButton(后勤管理); JButton b6=new JButton(员工个人信息管理); JButton b5=new JButton(返回); ImageIcon im=new ImageIcon(3.jpg); JLabel a3=new JLabel(im); void create() JPanel p=(JPanel)f.getContentPane(); JPanel p1=new JPanel(); p.setLayout(new Flo
21、wLayout(); p.add(b1); 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.setBackground(Color.red); p.setVisible(true); b1.addActionListener(this); b2.addActionListener(this); b3.
22、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(b5.equals(e.getSource()/返回 DL d=new DL(); f.dispose(); if(b1.equals(e.getSource()/津贴管理 JTGL jt=
23、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.getSource()/工资管理 GZGL gz=new GZGL(); gz.create(); class KQGL implem
24、ents 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); JTextField tf2=new JTextField(4); JTextField tf3=new JTextField(4); JTe
25、xtField tf4=new JTextField(4); JTextField tf5=new JTextField(6); JButton b6=new JButton(查询单人考勤); String cloum=职工号,缺勤天数,缺勤类别,缺勤时间; Object row=new Object504; JTable table=new JTable(row,cloum); JScrollPane scrollpane=new JScrollPane(table); JSplitPane splitpane=new JSplitPane(JSplitPane.VERTICAL_SPLIT
26、); void create() JPanel p=(JPanel)f.getContentPane(); p.setLayout(new FlowLayout(); /p.add(scrollpane); p.add(splitpane); JPanel p1=new JPanel(); p1.add(b1); p1.add(b2); p1.add(b3); p1.add(b4); p1.add(b6); p1.add(b5); JPanel p2=new JPanel(); p2.setBackground(Color.red); p2.add(scrollpane); JPanel p3
27、=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( 在此处输入职工号点击查询删除); p.add(tf5); splitpane.add(p1,splitpan
28、e.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(this); f.setBounds(200,100,500,600); f.setResizable(true);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1