




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海应用技术学院 课程设计专用纸课程名称 数据库原理及应用 设计题目 企业职工工资管理系统 姓 名 专业班级 学号 指导教师 日期 成绩 一、设计目的及要求通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解;设计的最终结果为学生设计和完成具有较完善功能和一定规模的数据库应用系统(后台)、以及部分前台功能,并提交设计报告。二、课程设计内容说明 1.课程设计内容(1) 概述:项目背景:随着企业对人才需求的加大,对员工工资资源管理意思的提高,传统的员工工资管理已经不能满足各个对人员工资管理的需求,企业迫切需要新的管理方法与技术来管理员工工资的相关信息。本系统在极大的简化 的情况下,想要体现企业员工工资管理系统的基本雏形,体现java技术与传统C/S模式、多窗口方式下数据库应用系统的开发方法。本系统的设计与实现能充分体现java的编程技术,特别是java操作数据库数据的技术、能够很清晰的将相关信息呈现在相应的位置。用户能够清晰的进行查询信息。编写目的:通过编写企业职工工资管理系统软件,可以加深对数据库的运用方法的认识。加强数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库莅临和书苦苦开发工具进行数据库管理操作的方法。熟练软件定义:开发环境:NetBeans IDE7.2.1和SQL server 2005和JDK1.7.0和JAVA和windows 7 旗舰版(2)需求分析:1.系统需求分析 企业要员工工资管理系统来实现对员工工资信息及相关信息的管理,该简化的员工工资管理系统具有以下的功能: .系统的用户管理:包括用户的添加、删除。 .员工的信息管理:包括员工的基本信息的查询、添加、删除、修改。 .员工的工资管理:包括工资信息的查询、添加、删除、修改。 .员工的部门管理:包括部门信息的查询、添加、删除、修改。 2.功能需求分析 企业职工工资管理系统管理员登陆用户登陆查询添加删除修改查询员工信息部门信息工资信息员工信息部门信息工资信息员工信息部门信息工资信息员工信息部门信息工资信息员工信息部门信息工资信息3)概念结构设计:E-R图:部门信息部门号部门名称部门总人数主管人员名工 资实际工资税收附加工资基本工资部门号员工号员 工员工号员工名员工性别职称名工作部门出生日期电话号码文化程度(4)逻辑结构设计: 1.关系模式员工(员工号,员工名,性别,职称名,出生日期,电话号码,所属部门,文化程度)部门(部门号,部门名,主管名,部门总人数)工资(员工号,部门号,基本工资,附加工资,税收,实际工资)2.表的逻辑结构。员工信息、部门信息、工资信息分别如员工信息表1-1、部门信息表1-2、工资信息表1-3:员工信息表1-1字 段 名数 据 类 型是 否 为 主 键描 述Sno文本(varchar)是员工号Sname文本(varchar)否员工名Sex文本(varchar)否性别Tname文本(varchar)否职称名Data字符串型(char)否出生日期Tle文本(varchar)否电话号码Department文本(varchar)否工作部门degree文本(varchar)否文化程度部门信息表1-2字 段 名数 据 类 型是 否 为 主 键描 述Dno文本(varchar)是部门号Dname文本(varchar)否部门名Admin文本(varchar)否主管名Total整型(int)否部门总人数工资信息表1-3字 段 名数 据 类 型是 否 为 主 键描 述Sno文本(varchar)是员工号Dno文本(varchar)否部门号Salary浮点型(float) 否基本工资Bouns浮点型(float) 否 附加工资Tax浮点型(float) 否 税 收Totalsalary浮点型(float) 否实际工资(5)物理结构设计: 1.本系统数据库表的物理设计通过创建表的SQL命令及数据库关系图来呈现。 1). 创建员工信息表 create table s ( sno varchar(20) NOT NULL,sname varchar(20) not null,sex char(20) not null check(sex in(男,女),tname varchar(20) not null,data char(20) not null,tle varchar(20) not null,department varchar(20) not null,degree char(20) not null check(degree in(文盲,小学,初中,高中,大学,研究生,博士),primary key (sno)2).创建员工部门表 create table d(dno varchar(20) primary key,dname varchar(20) not null,admin varchar(20) not null, total char(20) not null,)3).创建员工工资表 create table g( sno varchar(20) NOT NULL,dno varchar(20) not null,salary varchar(20) not null,bonus varchar(20) not null,tax varchar(20) not null,totalsalary varchar(20) not null,primary key(sno),constraint g_s foreign key (sno) references s(sno),constraint g_d foreign key (dno) references d(dno)2.数据库的关系图 数据库的关系图如图1-4:(6)结束语: 通过本课程设计能将一学期所学习的内容进行运用。我运用了自学的JAVA语言进行编写前台。通过查阅资料和同学的帮组形成了现在的小型功能的企业职工工资管理系统软件。该软件还需要进一步进行修改和完善,需要增加用户密码登陆、员工其他信息、还需要继续增加其他功能进行扩充系统的功能。(7)参考文献:1数据库原理及应用 钱雪忠主编 北京邮电大学出版社 2010,6, 第三版 2. java数据库技术详解 李刚等编著 北京:化学工业出版社 2010.7 第一版 3.java项目开发案例精粹 曲培新等编著 北京:电子工业出版社 2010.6 第一版4.java入门经典 美Rgers Cadenhead 人民邮电出版社 2012.3 第6版8).试图的创建与使用 创建视图a并显示相关信息create view aas select s.sno,s.sname,s.department,g.totalsalaryfrom s,gwhere s.sno=g.sno9)创建触发器 创建插入触发器create trigger aa on dfor insert asdeclare total intselect total=total from insertedif total100beginraiserror(不能删除该部门!,16,1)rollback transactionend10)储存过程 建立储存过程CREATE PROCEDURE aaaas select sno,snamefrom swhere sno=001 通过建立储存过程可以减少下一次进行同样的功能时输入较为复杂的sql语句。 2系统功能实现语句1).数据库连接模块 package playback;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import javax.swing.JOptionPane;public class DBconnect public Connection conn = null;public DBconnect()try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);String url = jdbc:sqlserver:/localhost:1433;DatabaseName=heyibing1;String uerName=admin;String password=123;conn = DriverManager.getConnection(url,uerName,password); catch (ClassNotFoundException e) e.printStackTrace();catch(SQLException e)e.printStackTrace();JOptionPane.showMessageDialog(null, 数据库连接失败!);public void closeDB()if(conn!=null)try conn.close(); catch (SQLException e) e.printStackTrace();JOptionPane.showMessageDialog(null, 数据库关闭失败!); void commit() throw new UnsupportedOperationException(Not yet implemented); 2).部门功能模块界面的实现系统登录主界面的类模块 package playback;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.*;import sun.security.util.Password;public class Playback extends JFrame JPanel row1=new JPanel(); JPanel row2=new JPanel(); JPanel row3=new JPanel(); JPanel row4=new JPanel(); JPanel row6=new JPanel(); JPanel row7=new JPanel(); JPanel row5=new JPanel(); JPanel row8=new JPanel(); JPanel row9=new JPanel(); JLabel m0=new JLabel(管理员账号:admin 管理员密码:admin,JLabel.CENTER); JLabel m1=new JLabel(欢迎使用企业职工工资管理系统,JLabel.CENTER); JRadioButton m2=new JRadioButton(管理员,false); JRadioButton m3=new JRadioButton(用 户,false); ButtonGroup n1=new ButtonGroup(); JLabel m4=new JLabel(用户登录账号:,JLabel.RIGHT); JTextField m5=new JTextField(10); JLabel m6=new JLabel(用户登录密码:,JLabel.RIGHT); JTextField m7=new JTextField(10); JButton m8=new JButton(登录); JButton m9=new JButton(重置); JButton m10=new JButton(退出); String sql=; String sql2=; public Playback() setTitle(企业职工工资管理系统); setLookAndFell(); setSize(600,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); BorderLayout flo0=new BorderLayout(); setLayout(flo0); FlowLayout flo1=new FlowLayout(); row1.setLayout(flo1); row1.add(m1); m1.setFont(new Font( ,20,30);/设置字体颜色和大小 m1.setForeground(Color.RED); add(row1,BorderLayout.NORTH); /中间部份 GridLayout flo5=new GridLayout(5,1); row2.setLayout(flo5); row2.add(row8);row8.add(m0); row2.add(row3);n1.add(m2);row3.add(m2);n1.add(m3);row3.add(m3); row2.add(row5);row5.add(m4);row5.add(m5); row2.add(row7);row7.add(m6);row7.add(m7); add(row2,BorderLayout.CENTER); FlowLayout flo9=new FlowLayout(); row9.setLayout(flo9); row9.add(m8); row9.add(m9); row9.add(m10); add(row9,BorderLayout.SOUTH); setVisible(true); m8.addActionListener(new Enter(); m9.addActionListener(new Enter(); m10.addActionListener(new Enter(); private void setLookAndFell()try UIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel);catch(Exception exc) /监听器class Enter implements ActionListener private Object Password; public void actionPerformed(ActionEvent e) if(e.getSource()=m8&m2.isSelected()=true)/管理员 String n1=m5.getText();/获取用户密码 String p0=m7.getText();/获取用户密码 if(n1!=null&(n1.equals(admin)&(p0!=null&(p0.equals(admin) /判断用户名和密码是否匹配 Playback1 a=new Playback1(); a.setTitle(管理员选择功能); a.setSize(800,600); a.setVisible(true); Playback.this.setVisible(false); else JOptionPane.showMessageDialog(null, 登录失败,不存在该管理员,请重新登录!); else if(e.getSource()=m8&m3.isSelected()=true)/用户 Playback7 a=new Playback7(); a.setTitle(管理员选择功能); a.setSize(800,600); a.setVisible(true); Playback.this.setVisible(false); /* DBconnect dbconn=new DBconnect(); /获取用户密码 String name1=m5.getText();/获取用户密码 String password1=m7.getText();/获取用户密码 sql2=select* from s where sno=+name1+and data=+password1+; try Statement stm=dbconn.conn.createStatement(); ResultSet rs=stm.executeQuery(sql2); if(rs.next() String x3=rs.getString(1); String x4=rs.getString(5); if(name1!=null&(name1.equals(x3)&(password1!=null&(password1.equals(x4) /判断用户名和密码是否匹配 Playback7 a=new Playback7(); a.setTitle(管理员选择功能); a.setSize(600,400); a.setVisible(true); Playback.this.setVisible(false); catch(Exception e2)*/ else if(e.getSource()=m9)/重置 m5.setText(); m7.setText(); m5.requestFocus();/获取光标位置 else if(e.getSource()=m10)/退出 Playback.this.setVisible(false); else JOptionPane.showMessageDialog(null, 登录失败,请重新登录!);/跳出小窗口 运行界面如图2-1所示。 图2-1 系统登录主界面管理员选择功能模块package playback;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Playback1 extends JFrame JPanel row1=new JPanel(); JPanel row2=new JPanel(); JPanel row3=new JPanel(); JPanel row4=new JPanel(); JPanel row5=new JPanel(); JPanel row6=new JPanel(); JPanel row7=new JPanel(); JPanel row8=new JPanel(); ButtonGroup option=new ButtonGroup( ); JCheckBox m1=new JCheckBox(查询员工信息,false); JCheckBox m2=new JCheckBox(添加员工信息,false); JCheckBox m3=new JCheckBox(删除员工信息,false); JCheckBox m10=new JCheckBox(修改员工信息,false); JCheckBox m11=new JCheckBox(添加部门信息,false); JCheckBox m12=new JCheckBox(添加工资信息,false); JButton m4=new JButton(确定); JButton m5=new JButton(返回); public Playback1() setTitle(管理员权限); setLookAndFell(); setSize(800,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); BorderLayout flo0=new BorderLayout(); setLayout(flo0); GridLayout flo1=new GridLayout(6,1); row1.setLayout(flo1); row1.add(row3); option.add(m1);row3.add(m1); row1.add(row4); option.add(m2);row4.add(m2); row1.add(row5); option.add(m11);row5.add(m11); row1.add(row6); option.add(m12);row6.add(m12); row1.add(row7); option.add(m3);row7.add(m3); row1.add(row8); option.add(m10);row8.add(m10); add(row1,BorderLayout.CENTER); FlowLayout flo2=new FlowLayout(FlowLayout.CENTER,20,10); row2.setLayout(flo2); row2.add(m4); row2.add(m5); add(row2,BorderLayout.SOUTH); setVisible(true); m4.addActionListener(new Enter(); m5.addActionListener(new Enter(); private void setLookAndFell()try UIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel);catch(Exception exc) /class Enter implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=m4&m1.isSelected()=true) Playback2 a=new Playback2(); a.setTitle(查询信息); a.setVisible(true); Playback1.this.setVisible(false); else if(e.getSource()=m4&m2.isSelected()=true) Playback3 a=new Playback3(); a.setTitle(添加信息); a.setVisible(true); Playback1.this.setVisible(false); else if(e.getSource()=m4&m3.isSelected()=true) Playback5 a=new Playback5(); /a.setTitle(删除信息); a.setSize(800,600); a.setVisible(true); Playback1.this.setVisible(false); elseif(e.getSource()=m5) Playback a=new Playback(); a.setSize(800,600); a.setVisible(true); Playback1.this.setVisible(false); else if(e.getSource()=m4&m11.isSelected()=true) Playback4 a=new Playback4(); a.setTitle(添加部门信息); a.setVisible(true); Playback1.this.setVisible(false); else if(e.getSource()=m4&m12.isSelected()=true) playback10 a=new playback10(); a.setTitle(添加信息); a.setVisible(true); Playback1.this.setVisible(false); else Playback8 a=new Playback8(); a.setSize(800,600); a.setVisible(true); Playback1.this.setVisible(false); 运行界面如图2-2所示。 图2-2 管理员界面查询员工信息界面package playback;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Playback2 extends JFrame JPanel row1=new JPanel(); JPanel row2=new JPanel(); JPanel row3=new JPanel();JPanel row4=new JPanel(); JPanel row5=new JPanel(); JPanel row6=new JPanel();JPanel row7=new JPanel(); JPanel row8=new JPanel(); JPanel row9=new JPanel(); JPanel row10=new JPanel(); JPanel row11=new JPanel(); JPanel row12=new JPanel(); JLabel m0 =new JLabel(员 工 号:,JLabel.RIGHT); JTextField m1=new JTextField(10); JLabel m2 =new JLabel(员 工 名:,JLabel.RIGHT); JTextField m3=new JTextField(10); JLabel m4 =new JLabel(性 别:,JLabel.RIGHT); JTextField m5=new JTextField(10); JLabel m6 =new JLabel(职 称 名:,JLabel.RIGHT); JTextField m7=new JTextField(10); JLabel m8 =new JLabel(出生日期:,JLabel.RIGHT); JTextField m9=new JTextField(10); JLabel m10=new JLabel(工作部门:,JLabel.RIGHT); JTextField m11=new JTextField(10); JLabel m12=new JLabel(文化程度:,JLabel.RIGHT); JTextField m13=new JTextField(10); JLabel m14=new JLabel(基本工资:,JLabel.RIGHT); JTextField m15=new JTextField(10); JLabel m16=new JLabel(附加工资:,JLabel.RIGHT); JTextField m17=new JTextField(10); JLabel m18=new JLabel(实际工资:,JLabel.RIGHT); JTextField m19=new JTextField(10); JLabel m22=new JLabel(输入查询的员工号:); JTextField m23=new JTextField(10); JButton m24=new JButton(确定); JButton m25=new JButton(重置); JButton m20=new JButton(返回); String sql1=; String sql2=; public Playback2() setTitle(企业职工工资管理系统); setLookAndFell(); setSize(800,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); BorderLayout flo0=new BorderLayout(); setLayout(flo0); FlowLayout flo2=new FlowLayout(); row1.setLayout(flo2); row1.add(m22); row1.add(m23); row1.add(m24); row1.add(m25); row1.add(m20); add(row1,BorderLayout.NORTH); GridLayout flo1=new GridLayout(13,1); row2.setLayout(flo1); row2.add(row3);row3.add(m0);row3.add(m1); row2.add(row4);row4.add(m2);row4.add(m3); row2.add(row5);row5.add(m4);row5.add(m5); row2.add(row6);row6.add(m6);row6.add(m7); row2.add(row7);row7.add(m8);row7.add(m9); row2.add(row8);row8.add(m10);row8.add(m11); row2.add(row9);row9.add(m12);row9.add(m13); row2.add(row10);row10.add(m14);row10.add(m15); row2.add(row11);row11.add(m16);row11.add(m17); row2.add(row12);row12.add(m18);row12.add(m19); this.add(row2,BorderLayout.CENTER); setVisible(true); m24.addActionListener(new Enter(); m25.addActionListener(new Enter(); m20.addActionListener(new Enter();private void setLookAndFel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水溶液中的离子反应与平衡(讲义)-2023年高考化学二轮复习(新高考专用)
- CN120208785A 一种碳酸二乙酯热泵精馏装置及工艺
- 老年人保健知识培训小结课件
- 生物的变异和进化-2025年高考生物专项复习原卷版
- 人教版八年级英语下册专练:短文填空20篇(含答案)
- CN120198213A 基于穿透监管的自适应风险评估调整方法及系统
- 人教版八年级英语下册 Unit 1-Unit 10 期末复习之作文书面表达范文
- 配送员礼仪基础知识培训课件
- 2025版水电费远程抄表与用户服务合同
- 2025年企业研发项目抵押借款合同
- 2025年天津市中考语文试卷深度评析及2026年备考策略
- 2025年继电保护实操考试题带答案
- (2025)国库知识竞赛题库及答案
- (2025年标准)产假提前上班协议书
- 医院价格委员会管理制度及实施
- 2025年重庆市面向社会公开选拔社区专职工作者后备库人选考试(综合知识)历年参考题库含答案详解(5套)
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
- 2025年广东省中考语文试卷(含答案解析)
- 2025年质量月知识竞赛题库含答案(初赛)
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 山东淄博小升初数学真题试卷
评论
0/150
提交评论