2022年2022年工资管理系统 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年工资管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年工资管理系统 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库课程设计 -工资管理系统1 工资管理系统一、实验设计目的掌握数据库的基本操作,并能运用JAVA开发简单的数据库管理系统。二、实验设计要求熟悉 java 开发环境;掌握数据库的基本操作; 熟悉 java 环境中数据库开发的基本方法和编程特点,掌握JAVA通过 ODBC 连接数据库的语法,能通过JAVA程序对数据库进行增加、 删除、修改等基本操作, 能对数据库进行各种条件的查询; 完成对系统的编程和调试; 可以采用自己所熟悉的数据库来进行系统的开发,如 SQLSERVER 2000、ACCESS、MYSQL 等数据库,要求在报告中给出详细的数据库设计文档。三、实验设计内容通过对实验设计课题的
2、分析, 设计出了具体的一个简单管理系统员工工资管理。系统的设计包含了数据库的设计、系统界面的设计和对系统数据库操作的设计。在开发工具上,使用的是NetBeans6.9。在数 据库 运用的 是 ACCESS 数据库 。 在与 数据 库 的连 接 中, 运用 的 是ODBC-JDBC 的桥连来实现数据库的连接操作。数据库中建立了“考勤”表,“职工”表、 “数据库用户”表、“职务”表和“工资”表。其中“考勤”表记录了员工在一个月工作的情况, 其中 check-attend表记录了员工在一个月工作的情况,包括上班几天和缺勤几天; 在“职工”表中记录的是员工的基本信息,包括了姓名、性别、职工号、部门和职
3、务等信息;在“数据库用户”表中,登记了管理员的帐号和密码;“职务”表记录了企业员工的类型和在这个类型的工种下的基本工资; “工资”表则记录的是一个员工在一个月里的具体工资的情况,包括了基本工资、奖金和扣除工资。在界面的实现和对数据库的操作中,实现了管理员登陆。 登陆后, 进入到操名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统2 作界面,实现了对员工数据库的基本信息的修改,增加一个员工的信息, 对
4、员工工作情况的登记,一个月份全部员工工资的查询以及全员的基本信息的查看。E-R 图如下:四、系统的详细设计1、登陆界面的详细设计在登陆上,管理员登陆后,有最大的权限。界面的布局如下图:部门管理职工职称姓 名 性别等 . 工号工资各种工资类别,比 如 该 加 的 和该扣的职称(它作为员工的属性,但是本身也是一个实体)职称名基本工资名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统3 图 4-1 其中以
5、管理员身份登陆的具体实现的主要代码如下:首先是建立了一个 Land的类,并让此类继承了 JFrame。在本类中的主要方法如下介绍。Land (String s)此方法实现了对界面的大体布局,具体代码如下:LandFrame(String s) super(s); setLayout(null); setBounds(100, 100, 500, 400); jLabel1 = new JLabel(用户名 :); jLabel2 = new JLabel(密码:); jbtn = new JButton(登陆); jbtn.addActionListener(new ActionListene
6、r() public void actionPerformed(ActionEvent e) test_manage(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统4 ); jbtn1 = new JButton(退出); jbtn1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent
7、 e) dispose(); ); jtf1 = new JTextField(10); jpwf = new JPasswordField(10); jpwf.setEchoChar(*); jLabel1.setBounds(155, 150, 50, 30); jLabel2.setBounds(155, 190, 50, 30); jtf1.setBounds(210, 150, 100, 25); jpwf.setBounds(210, 190, 100, 25); jbtn.setBounds(120, 250, 80, 40); jbtn1.setBounds(290, 250,
8、 80, 40); Container con = getContentPane(); con.add(jLabel1); con.add(jtf1); con.add(jLabel2); con.add(jpwf); con.add(jbtn); con.add(jbtn1); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getRootPane().setDefaultButton(jbtn); setVisible(true); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
9、 - - 名师精心整理 - - - - - - - 第 4 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统5 Test-manage() 实现的是对管理员输入帐号的判断,主要代码如下叙述:public void test_manage() String str1, str2; str1 = jtf1.getText(); str2 = new String(jpwf.getPassword(); Connection conn = null; Conn con = new Conn(); conn = con.GetConnectionData(); tr
10、y PreparedStatement psmt = conn .prepareStatement(select 密 码from 数据 库 用 户where 用户名 = + str1 + ); ResultSet res = psmt.executeQuery(); if (!res.next() JOptionPane.showMessageDialog(this, 查无此人 , 错误, JOptionPane.ERROR_MESSAGE); else String pwd = res.getString(1); System.out.println(pwd); if (!(pwd.equa
11、ls(str2) JOptionPane.showMessageDialog(this, 密码 错误 , 错误, JOptionPane.ERROR_MESSAGE); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统6 else loader1(); dispose(); psmt.close(); conn.close(); catch (Exception e) e.printStackTr
12、ace(); 2、操作界面的详细设计操作界面则是管理员登陆成功后,才能看到的界面。 在操作界面上的布局如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统7 图 4-31) 、在这个类中,没有多少的功能代码,其中只包含了query() 、count() 、lookover()三个方法。a、 query() 方法是实现了对员工整体工资在某月情况的查看,具体实现如下:public void que
13、ry() final JFrame jf = new JFrame(); JButton jbtn = new JButton(关闭); jbtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) jf.dispose(); ); jf.setBounds(100, 100, 700, 500); jf.setLayout(new BoxLayout(jf.getContentPane(), 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
14、- - - - - - 名师精心整理 - - - - - - - 第 7 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统8 BoxLayout.Y_AXIS); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Container con = jf.getContentPane(); String str; str = String.valueOf(jCbsurchmonth.getSelectedItem(); Object name1 = 职工号 , 奖金 , 扣除工资 , 基本工资( 元),
15、实发工资 ( 元), 月份 ; Object b; Conn conn = new Conn(); try Connection con1 = conn.GetConnectionData(); Statement sql = con1 .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = sql .executeQuery(select 职工号 , 奖金, 扣除工资 , 基本工资, 实发工资 , 月份 + from 工资 where 月份 like + str
16、 + ); rs.last(); int num = rs.getRow(); b = new Objectnum6; int b_num = 0; rs.beforeFirst(); while (rs.next() String s_num = rs.getString(1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统9 String bonus = rs.getString(2);
17、String deduct = rs.getString(3); String s_basicsalary = rs.getString(4); String fact_salary = rs.getString(5); String month = rs.getString(6); bb_num0 = s_num; bb_num1 = (Object) bonus; bb_num2 = deduct; bb_num3 = s_basicsalary; bb_num4 = fact_salary; bb_num5 = month; b_num+; JTable table = new JTab
18、le(b, name1); con.add(new JScrollPane(table); con.add(jbtn); jf.setVisible(true); catch (Exception e) e.printStackTrace(); 得到的效果如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统10 图 4-4b、count() 方法则是对员工本月工作情况的结算,从界面上得到上班几
19、天和缺勤几天来计算出本月的具体工作。实现代码如下:public void count() String str1, str2, str3, str4; str1 = jTextFieldid.getText(); str2 = String.valueOf(jComboBoxmonth.getSelectedItem(); str3 = jTfworkday.getText(); str4 = jTfabsentday.getText(); Conn conn = new Conn(); try Connection con = conn.GetConnectionData(); Prepar
20、edStatement psmt = con 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统11 .prepareStatement(insert into 考勤values(?,?,?,?); psmt.setString(1, str1); psmt.setString(2, str3); psmt.setString(3, str4); psmt.setString(4, str2);
21、psmt.executeUpdate(); psmt = con .prepareStatement(select 职 务from 职工where 职工号 =?); psmt.setString(1, str1); ResultSet rs = psmt.executeQuery(); rs.next(); String post1 = rs.getString(1); psmt = con .prepareStatement(select 基 本 工 资from 职 务where 职务 like + post1 + ); ResultSet rs1 = psmt.executeQuery()
22、; rs1.next(); float bonus1 = Float.parseFloat(str3) * 20; float deduct1 = Float.parseFloat(str4) * 50; float basic_salary1 = rs1.getFloat(1); float fact_salary1 = basic_salary1 + bonus1 - deduct1; psmt = con .prepareStatement(insert into 工资values(?,?,?,?,?,?); psmt.setString(1, str1); 名师资料总结 - - -精品
23、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 26 页 - - - - - - - - - 数据库课程设计 -工资管理系统12 psmt.setFloat(2, bonus1); psmt.setFloat(3, deduct1); psmt.setFloat(4, basic_salary1); psmt.setFloat(5, fact_salary1); psmt.setString(6, str2); JOptionPane.showMessageDialog(this, 成功输入 ,
24、提示, JOptionPane.INFORMATION_MESSAGE); psmt.executeUpdate(); psmt.close(); con.close(); catch (Exception e) JOptionPane.showMessageDialog(this, 请输入正确的职工号, 错误, JOptionPane.INFORMATION_MESSAGE); c、lookover()方法既是查看全部员工信息情况,用 JTable 来显示所要查看的结果。此方法的具体实现如下:public void lookover() final JFrame jf = new JFram
25、e(); jf.setLayout(new BoxLayout(jf.getContentPane(), BoxLayout.Y_AXIS); JButton jbtn = new JButton(关闭); jbtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) jf.dispose(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 26 页 - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年工资管理系统 2022 工资管理 系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内