员工薪资管理系统课程设计_第1页
员工薪资管理系统课程设计_第2页
员工薪资管理系统课程设计_第3页
员工薪资管理系统课程设计_第4页
员工薪资管理系统课程设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

员工薪资管理系统课程设计学院:班级:学号:姓名:余黎晨李雪敏敬翰林颜学宏指导教师:李竹林目录一:绪论1.1设计目的1.2设计内容1.3开发背景1.4开发环境1.5组内成员及分工二:需求分析2.1题目分析2.2功能分析2.3数据流图2.4数据字典2.5系统功能三:系统分析与设计3.1概念结构设计3.2逻辑结构设计3.3物理结构设计四:数据库实施及运行4.1建基本表4.3功能实现4.4完整代码五:设计心得及体会一:绪论1.1设计目的员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。1.2设计内容题目6:员工薪资管理背景资料某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。该单位下设4个科室,即经理室、财务科、技术科和销售科。工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金额为工资减去扣除。设计要求:进行需求分析,编写数据字典。设计E-R图。实现按照科室录入个人的基本资料、工资和扣除金额的数据。计算个人的实际发放工资。按科室、职业分类统计人数和工资金额。实现分类查询。能够删除辞职人员的数据。开发工具不限。1.3开发背景当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,影响企业发展。为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。该员工薪资管理系统主要用于中小型企业员工的工资发放管理,此系统的建立和使用有利于员工更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率,大大减少纸质管理对工作带来的失误。1.4开发环境开发平台:SQLServer2005开发工具:Eclipse JDBC开发语言:SQL语言 JAVA语言1.5组内成员及分工李雪敏:系统框架撰写报告颜学宏:代码编写数据库的连接与运行余黎晨:概念结构设计代码调试敬翰林:逻辑结构设计 需求分析二:需求分析2.1题目分析该题目要求设计一个员工薪资系统,实现员工信息的有序化,规范化,并能进行员工信息录入,查询,修改,删除等操作,能实现分类查询,2.2功能分析该员工薪资系统能够实现的功能如下:员工信息的管理,包括姓名,性别,年龄,职业,员工号,部门编号基本信息的录入,查询,删除,修改等操作部门信息的管理,包括部门编号和部门名称,查询每个部门的业绩和员工薪资情况薪资信息的管理,包括员工号,部门编号,基本工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资等信息,统计出员工的基本工资,福利补贴,奖励工资,扣除失业保险,住房公积金后所得的工2.3数据流图员工 注册 员工基本信息员工查询员工薪资信员工工资息形成记录部门薪资信息管理查询经理部门工资记录统计分析财务统计人员2.4数据字典数据字典在数据库设计中占有很重要的地位, 数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果。 根据数据流图对员工薪资管理数据库数据字典的设计如下所示:2.41数据结构名:员工含义说明:员工信息组成:姓名,性别,年龄,职业,员工号数据项名数据类型长度可否为空含义说明员工号char10no员工编号员工姓名char10no姓名员工年龄char10no年龄部门名称char10no所属部门员工职业char10no担任职务2.42数据结构名:部门含义说明:部门信息组成:部门编号,部门名称数据项名 数据类型 长度 可否为空 含义说明部门编号 char 4 no部门名称 char 10 no2.43数据结构名:工资含义说明:员工薪资信息

科室类别科室名称组成:员工号,部门编号,基本工资,福利补贴,奖励工资,扣罚工资,失业保险,住房公积金,实发薪资数据项名数据类型长度可否为空含义说明员工号char8no员工编号员工工资char4no所的工资奖励工资money8no基本工资员工薪资money8yes福利和补贴工资2.5系统功能该员工薪资系统的功能如下:三:系统分析与设计3.1概念结构设计E—R图设计员工实体——关系图姓名 性别职业 员工年龄部门编号 员工号部门实体——关系图部门编号部门部门名称工资实体——关系图员工号 部门编号基本工资实发薪资工资福利补贴住房公积金失业保险 奖励工资总的E—R图3.2概念结构设计E-R图表示的概念模型是用户数据要求的形式化,它不为任何一个 DBMS所支持,而逻辑结构设计的任务就是把概念模型结构转换成某个具体的 DBMS所支持的数据模型,员工薪资管理 E-R图转换为关系模式为:员工(姓名,性别,年龄,职业,员工号,部门编号)部门(部门编号,部门名称)薪资(员工号,员工工资,福利补贴,奖励工资,失业保险,住房公积金,实发薪资)四:数据库实施与运行4.1建基本表员工信息表部门信息表工资信息表4.3功能实现4.31系统界面展示:4.32员工信息查询功能按工号查询:按姓名查询:4.33员工工资查询功能:4.34修改员工工资功能:4.35添加员工功能:4.36修改员工信息功能:4.37删除员工信息功能:4.4完整代码展示4.41源程序代码类DBConnect用于数据库的连接导入sql包importjava.sql.*;创建数据库连接类DBConnectpublicclassDBConnect{静态方法提高数据库的连接效率publicstaticConnectiongetConn()throwsException{加载JDBC驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//以系统默认用户身份,连接数据库 StudentManagerreturnDriverManager.getConnection("jdbc:odbc:Test","dmj","753");}}4.42主框架代码:系统主框架类导入系统的包importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;//创建主框架类 MainFramepublicclassMainFrameextendsJFrameimplementsActionListener{//创建内容面板JPanelcontentPane;//创建菜单栏组件的对象JMenuBarjMenuBar1=newJMenuBar();// 菜单条JMenujMenu0=newJMenu("退出系统");//菜单JMenuItemjMenuItem0=newJMenuItem(" 退出");//子菜单JMenujMenu1=newJMenu("员工管理");JMenuItemjMenuItem1=newJMenuItem(" 添加员工");JMenuItemjMenuItem2=newJMenuItem(" 修改员工");JMenuItemjMenuItem3=newJMenuItem(" 删除员工");JMenujMenu2=newJMenu("工资管理");JMenuItemjMenuItem4=newJMenuItem(" 添加工资");JMenuItemjMenuItem5=newJMenuItem(" 修改工资");JMenuItemjMenuItem8=newJMenuItem(" 工资查询");JMenujMenu3=newJMenu("员工查询");JMenuItemjMenuItem6=newJMenuItem(" 按工号查询");JMenuItemjMenuItem7=newJMenuItem(" 按姓名查询");JMenuItemjMenuItem9=newJMenuItem("

互动");//创建标签,用于显示信息JLabeljLabel1=newJLabel("欢迎使用员工薪资管理系统 ");创建构造方法publicMainFrame(){try{关闭框架窗口时的默认事件方法setDefaultCloseOperation(EXIT_ON_CLOSE);调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}界面初始化方法privatevoidjbInit()throwsException{创建内容面板contentPane=(JPanel)getContentPane();设置内容面板的布局为空contentPane.setLayout(null);主框架的大小setSize(newDimension(400,360));主框架的标题setTitle("员工薪资管理系统 ");添加事件监听器jMenuItem0.addActionListener(this);jMenuItem1.addActionListener(this);jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenuItem5.addActionListener(this);jMenuItem6.addActionListener(this);jMenuItem7.addActionListener(this);jMenuItem8.addActionListener(this);jMenuItem9.addActionListener(this);添加菜单条到主框架setJMenuBar(jMenuBar1);添加菜单到菜单条jMenuBar1.add(jMenu0);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenu3);添加菜单项到菜单jMenu0.add(jMenuItem0);jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenuItem3);jMenu2.add(jMenuItem4);jMenu2.add(jMenuItem5);jMenu2.add(jMenuItem8);jMenu3.add(jMenuItem6);jMenu3.add(jMenuItem7);添加标签到主框架内容面板contentPane.add(jLabel1);设置标签组件的大小和字体jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,20));jLabel1.setBounds(newRectangle(65,70,275,55));}菜单项事件对应的处理方法publicvoidactionPerformed(ActionEventactionEvent){点击“系统”菜单下的“退出”菜单项if(actionEvent.getSource()==jMenuItem0){System.exit(0);}点击“员工管理”菜单下的“添加员工”菜单项if(actionEvent.getSource()==jMenuItem1){创建“添加员工”面板对象AddEmployeeAddEmp=newAddEmployee();移除主框架上原有的内容this.remove(this.getContentPane());加载“添加职工”面板的对象到主框架this.setContentPane(AddEmp);令界面可见this.setVisible(true);}点击“员工管理”菜单下的“修改员工”菜单项if(actionEvent.getSource()==jMenuItem2){创建“修改员工”面板对象ModifyEmployeeModifyEmp=newModifyEmployee();this.remove(this.getContentPane());加载“修改员工”面板的对象到主框架this.setContentPane(ModifyEmp);this.setVisible(true);}点击“员工管理”菜单下的“删除员工”菜单项if(actionEvent.getSource()==jMenuItem3){创建“删除员工”面板对象DeleteEmployeeDeleteEmp=newDeleteEmployee();this.remove(this.getContentPane());加载“删除员工”面板的对象到主框架this.setContentPane(DeleteEmp);this.setVisible(true);}点击“工资管理”菜单下的“添加工资”菜单项if(actionEvent.getSource()==jMenuItem4){创建工资添加的面板对象AddSalaryAddSal=newAddSalary();this.remove(this.getContentPane());加载工资添加面板的对象到主框架this.setContentPane(AddSal);this.setVisible(true);}点击“工资管理”菜单下的“修改工资”菜单项if(actionEvent.getSource()==jMenuItem5){创建工资修改的面板对象ModifySalaryModifySal=newModifySalary();this.remove(this.getContentPane());加载工资修改面板的对象到主框架this.setContentPane(ModifySal);this.setVisible(true);}点击“工资管理”菜单下的“工资查询”菜单项if(actionEvent.getSource()==jMenuItem8){创建工资修改的面板对象SalaryInquireSalaryInq=newSalaryInquire();this.remove(this.getContentPane());加载工资修改面板的对象到主框架this.setContentPane(SalaryInq);this.setVisible(true);}点击“员工查询”菜单下的“按工号查询”菜单项if(actionEvent.getSource()==jMenuItem6){创建“按工号查询”面板对象InquireOnGHOnGH=newInquireOnGH();移除主框架上原有的内容this.remove(this.getContentPane());this.setContentPane(OnGH);this.setVisible(true);}}}4.43主函数Main代码:系统的主程序类Main导入包importjava.awt.*;importjavax.swing.*;创建主系统类classMain{publicstaticvoidmain(String[]args){创建主界面,调用MainFrame()构造函数和方法MainFrameframe=newMainFrame();获取屏幕尺寸DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();获取主界面的窗体尺寸DimensionframeSize=frame.getSize();令主界面窗体居中if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);令主界面显示frame.setVisible(true);}}4.44员工信息查询代码按工号查询代码导入系统的类包importjava.awt.*;im//"按员工号查询 "面板类InquireOnGHportjava.sql.*;importjavax.swing.*;importjava.awt.event.*;创建“按员工号查询”类publicclassInquireOnGHextendsJPanelimplementsActionListener{声明连接数据库对象Connectioncon;声明SQL语句对象Statementst;创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入员工号: ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("查找");JTextAreajTextArea1=newJTextArea();构造方法publicInquireOnGH(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}面板初始化方法privatevoidjbInit()throwsException{连接数据库con=DBConnect.getConn();st=con.createStatement();框架的布局this.setLayout(null);设置各组件的大小jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,16));jLabel1.setBounds(newRectangle(46,4,222,32));jTextField1.setBounds(newRectangle(47,37,247,31));jButton1.setBounds(newRectangle(47,86,247,30));jTextArea1.setBounds(newRectangle(24,130,305,109));添加按钮动作事件jButton1.addActionListener(this);添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);}点击按钮事件publicvoidactionPerformed(ActionEvente){获取输入的员工号StringEmployeeID=jTextField1.getText();清空文本区原有的内容jTextArea1.setText("");try{利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from Employee where 员工号='"+EmployeeID+"'");处理结果集if(rs.next()){jTextArea1.setText("员工号:"+rs.getString(" 员工号")+"\n"+" 员工姓名:"+rs.getString("员工姓名")+"\n"+"员工性别:"+rs.getString("员工性别")+"\n"+"员工年龄:"+rs.getString("员工年龄")+"\n"+"部门名称:"+rs.getString("部门名称")+"\n"+"员工职业:"+rs.getString("员工职业")+"\n");}else{JOptionPane.showMessageDialog(this,"没有这个员工号的员工 !");}}catch(Exceptionex){利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"员工查询失败 !");}}}按姓名查询//"按员工姓名查询 "面板类InquireOnName//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“按员工姓名查询”类publicclassInquireOnNameextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入员工姓名: ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("查找");JTextAreajTextArea1=newJTextArea();//构造方法publicInquireOnName(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//面板初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,16));jLabel1.setBounds(newRectangle(46,4,222,32));jTextField1.setBounds(newRectangle(47,37,247,31));jButton1.setBounds(newRectangle(47,86,247,30));jTextArea1.setBounds(newRectangle(24,130,305,109));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);}//点击按钮事件publicvoidactionPerformed(ActionEvente){//获取输入的员工的姓名StringEmployeeName=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");try{利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQuery("select*fromEmployeewhere员工姓名='"+EmployeeName+"'");处理结果集if(rs.next()){jTextArea1.setText("员工号:"+rs.getString(" 员工号")+"\n"+" 员工姓名:"+rs.getString("员工姓名")+"\n"+"员工性别:"+rs.getString("员工性别")+"\n"+"员工年龄:"+rs.getString("员工年龄")+"\n"+"部门名称:"+rs.getString("部门名称")+"\n"+"员工职业:"+rs.getString("员工职业")+"\n");}else{JOptionPane.showMessageDialog(this,"没有这个员工号的员工 !");}}catch(Exceptionex){利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"员工查询失败 !");}}}4.45员工工资查询代码//"工资查询"面板类SalaryInquire//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“工资查询”类publicclassSalaryInquireextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入要查询的员工号: ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("工资查询");JTextAreajTextArea1=newJTextArea();//构造方法publicSalaryInquire(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//面板初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,16));jLabel1.setBounds(newRectangle(46,4,222,32));jTextField1.setBounds(newRectangle(47,37,247,31));jButton1.setBounds(newRectangle(47,86,247,30));jTextArea1.setBounds(newRectangle(24,130,305,109));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);}//点击按钮事件publicvoidactionPerformed(ActionEvente){//获取输入的员工号StringEmployeeID=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");try{利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQuery("select*fromSalarywhere员工号='"+EmployeeID+"'");处理结果集if(rs.next()){jTextArea1.setText("员工号:"+rs.getString(" 员工号")+"\n"+" 员工工资:"+rs.getString("员工工资")+"\n");}else{JOptionPane.showMessageDialog(this,"该员工号的员工没有工资记录 !");}}catch(Exceptionex){利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"工资查询失败 !");}}}4.46修改工资代码//“修改工资”面板类 ModifySalary//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“修改工资”面板类publicclassModifySalaryextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入员工号: ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("查找该员工");JLabeljLabel2=newJLabel("员工号:");JTextFieldjTextField2=newJTextField();JLabeljLabel3=newJLabel("员工工资:");JTextFieldjTextField3=newJTextField();JButtonjButton2=newJButton("修改工资");//构造方法publicModifySalary(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//面板初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel1.setBounds(newRectangle(40,25,140,30));jTextField1.setBounds(newRectangle(185,25,120,30));jButton1.setBounds(newRectangle(110,65,120,30));jLabel2.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel2.setBounds(newRectangle(90,125,80,30));jTextField2.setBounds(newRectangle(170,125,80,30));jLabel3.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel3.setBounds(newRectangle(90,160,80,30));jTextField3.setBounds(newRectangle(170,160,80,30));jButton2.setBounds(newRectangle(120,200,100,30));//添加按钮动作事件jButton1.addActionListener(this);jButton2.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);this.add(jLabel2);this.add(jTextField2);jTextField2.setEditable(false);this.add(jLabel3);this.add(jTextField3);this.add(jButton2);}//点击按钮事件publicvoidactionPerformed(ActionEventactionevent){//点击“查找该员工”按钮if(actionevent.getSource()==jButton1){获取输入的员工号StringEmployeeID=jTextField1.getText();try{//利用st对象执行 SQL语句,返回结果集对象ResultSetrs=st.executeQuery("select*fromSalarywhere员工号='"+EmployeeID+"'");//处理结果集if(rs.next()){jTextField2.setText(rs.getString("员工号"));jTextField3.setText(rs.getString("员工工资"));}else{JOptionPane.showMessageDialog(this,"没有这个员工号的员工!");}}catch(Exceptionex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"工资修改失败 !");}}//点击“修改工资”按钮if(actionevent.getSource()==jButton2){获取用户更改的工资try{//利用st对象执行 SQL语句,进行修改操作st.executeUpdate("updateSalaryset员工工资 ='"+jTextField3.getText()+"'where员工号='"+jTextField2.getText()+"'");//利用消息对话框提示工资修改成功JOptionPane.showMessageDialog(this,"工资修改成功! ");}catch(Exceptionex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"工资修改失败! ");ex.printStackTrace();}}}}4.47员工添加代码//添加员工面板类 AddEmployee//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“添加员工“面板类publicclassAddEmployeeextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("员工号");JLabeljLabel2=newJLabel("员工姓名");JLabeljLabel3=newJLabel("员工性别");JLabeljLabel4=newJLabel("员工年龄");JLabeljLabel5=newJLabel("部门名称");JLabeljLabel6=newJLabel("员工职业");JTextFieldjTextField1=newJTextField();JTextFieldjTextField2=newJTextField();JTextFieldjTextField3=newJTextField();JTextFieldjTextField4=newJTextField();JTextFieldjTextField5=newJTextField();JRadioButtonjRadioButton1=newJRadioButton(" 男");JRadioButtonjRadioButton2=newJRadioButton(" 女");ButtonGroupbuttonGroup1=newButtonGroup();JButtonjButton1=newJButton("添加员工");//构造方法publicAddEmployee(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//界面初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(newRectangle(21,17,64,24));jLabel2.setBounds(newRectangle(21,51,53,22));jLabel3.setBounds(newRectangle(21,86,61,27));jLabel4.setBounds(newRectangle(21,122,59,25));jLabel5.setBounds(newRectangle(21,168,54,24));jLabel6.setBounds(newRectangle(21,205,54,24));jTextField1.setBounds(newRectangle(102,10,200,30));jTextField2.setBounds(newRectangle(102,49,200,30));jTextField3.setBounds(newRectangle(102,117,80,33));jTextField4.setBounds(newRectangle(102,163,200,29));jTextField5.setBounds(newRectangle(102,200,200,29));jRadioButton1.setBounds(newRectangle(102,83,65,30));jRadioButton2.setBounds(newRectangle(190,85,85,30));jButton1.setBounds(newRectangle(130,240,150,32));//设置单选按钮被选中jRadioButton1.setSelected(true);//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jLabel2);this.add(jTextField2);this.add(jLabel3);buttonGroup1.add(jRadioButton1);buttonGroup1.add(jRadioButton2);this.add(jRadioButton1);this.add(jRadioButton2);this.add(jLabel4);this.add(jTextField3);this.add(jLabel5);this.add(jTextField4);this.add(jLabel6);this.add(jTextField5);this.add(jButton1);}//点击按钮事件publicvoidactionPerformed(ActionEvente){//获取用户输入的信息StringEmployeeID=jTextField1.getText();StringEmployeeName=jTextField2.getText();StringEmployeeSex="";if(jRadioButton1.isSelected())EmployeeSex+="男";if(jRadioButton2.isSelected())EmployeeSex+="女";StringEmployeeAge=jTextField3.getText();StringEmployeeAddress=jTextField4.getText();StringEmployeePhone=jTextField5.getText();try{设置日期格式st.execute("setdateformatymd");利用st对象执行SQL语句,进行插入操作st.executeUpdate("insert into Employeevalues('"+EmployeeID+"','"+EmployeeName+"','"+EmployeeSex+"','"+EmployeeAge+"','"+EmployeeAddress+"','"+EmployeePhone+"')");利用消息对话框提示员工添加成功JOptionPane.showMessageDialog(this," 员工添加成功! ");清空文本行的内容jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");}catch(Exceptionex){利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"员工添加失败!");ex.printStackTrace();}}}4.48修改员工信息代码//“员工信息修改”面板类 ModifyEmployee//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“员工信息修改资”类publicclassModifyEmployeeextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入员工号: ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("查找该员工");JLabeljLabel2=newJLabel("员工号:");JTextFieldjTextField2=newJTextField();JLabeljLabel3=newJLabel("员工姓名:");JTextFieldjTextField3=newJTextField();JLabeljLabel4=newJLabel("员工性别:");JTextFieldjTextField4=newJTextField();JLabeljLabel5=newJLabel("员工年龄:");JTextFieldjTextField5=newJTextField();JLabeljLabel6=newJLabel("部门名称:");JTextFieldjTextField6=newJTextField();JLabeljLabel7=newJLabel("员工职业:");JTextFieldjTextField7=newJTextField();JButtonjButton2=newJButton("修改员工信息");//构造方法publicModifyEmployee(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//面板初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel1.setBounds(newRectangle(40,15,140,30));jTextField1.setBounds(newRectangle(185,15,120,30));jButton1.setBounds(newRectangle(110,55,150,30));jLabel2.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel2.setBounds(newRectangle(20,105,80,30));jTextField2.setBounds(newRectangle(100,105,80,30));jLabel3.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel3.setBounds(newRectangle(190,105,80,30));jTextField3.setBounds(newRectangle(270,105,80,30));jLabel4.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel4.setBounds(newRectangle(20,145,80,30));jTextField4.setBounds(newRectangle(100,145,80,30));jLabel5.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel5.setBounds(newRectangle(190,145,80,30));jTextField5.setBounds(newRectangle(270,145,80,30));jLabel6.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel6.setBounds(newRectangle(20,185,80,30));jTextField6.setBounds(newRectangle(100,185,80,30));jLabel7.setFont(newjava.awt.Font("楷体",Font.BOLD,14));jLabel7.setBounds(newRectangle(190,185,80,30));jTextField7.setBounds(newRectangle(270,185,80,30));jButton2.setBounds(newRectangle(120,240,150,30));//添加按钮动作事件jButton1.addActionListener(this);jButton2.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);this.add(jLabel2);this.add(jTextField2);jTextField2.setEditable(false);this.add(jLabel3);this.add(jTextField3);this.add(jLabel4);this.add(jTextField4);this.add(jLabel5);this.add(jTextField5);this.add(jLabel6);this.add(jTextField6);this.add(jLabel7);this.add(jTextField7);this.add(jButton2);}//点击按钮事件publicvoidactionPerformed(ActionEventactionevent){//点击“查找该员工”按钮if(actionevent.getSource()==jButton1){try{//利用st对象执行 SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from Employee where 员工号='"+jTextField1.getText()+"'");//处理结果集if(rs.next()){jTextField2.setText(rs.getString("员工号"));jTextField3.setText(rs.getString("员工姓名"));jTextField4.setText(rs.getString("员工性别"));jTextField5.setText(rs.getString("员工年龄"));jTextField6.setText(rs.getString("部门名称"));jTextField7.setText(rs.getString("员工职业"));}else{JOptionPane.showMessageDialog(this,"没有这个员工号的员工!");}}catch(Exceptionex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"员工信息修改失败 !");}}//点击“修改工资”按钮if(actionevent.getSource()==jButton2){//获取用户更改的工资try{//利用

st对象执行

SQL

语句,进行插入操作st.executeUpdate("update Employee set='"+jTextField3.getText()+"'where 员工号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set='"+jTextField4.getText()+"'where 员工号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set='"+jTextField5.getText()+"'where 员工号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set='"+jTextField6.getText()+"'where 员工号='"+jTextField2.getText()+"'");st.executeUpdate("update Employee set

员工员工员工部门员工

姓 名性 别年 龄名 称职 业='"+jTextField7.getText()+"'where

员工号='"+jTextField2.getText()+"'");//利用消息对话框提示员工信息修改成功JOptionPane.showMessageDialog(this,"员工信息修改成功!

");}catch(Exceptionex){//利用消息对话框提示异常的信息JOptionPane.showMessageDialog(this,"员工信息修改失败! ");ex.printStackTrace();}}}}4.49删除员工代码//删除员工“面板类 DeleteEmployee//导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;//创建“删除员工”类publicclassDeleteEmployeeextendsJPanelimplementsActionListener{//声明连接数据库对象Connectioncon;//声明SQL语句对象Statementst;//创建组件对象JLabeljLabel1=newJLabel("请输入待删除的员工号 ");JTextFieldjTextField1=newJTextField();JButtonjButton1=newJButton("删除");//构造方法publicDeleteEmployee(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//界面初始化方法privatevoidjbInit()throwsException{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,14));jLabel1.setBounds(newRectangle(70,20,200,30));jTextField1.setBounds(newRectangle(70,80,207,41));jButton1.setBounds(newRectangle(70,175,205,36));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件publicvoidactionPerformed(ActionEvente){//获取用户输入的员工号StringEmployeeID=jTextField1.getText();//要求用户确认删除if(JOptionPane.showConfirmDialog(this," 确 认 要 删 除 吗 ?")==JOptionPane.YES_OPTION){try{//利用st对象执行 SQL删除操作st.executeUpdate("delete from Employee where 员 工 号='"+EmployeeID+"'");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this," 员工删除操作,执行成功 !");//清空输入学号的文本行jTextField1.setText("");}catch(Exceptionex){利用消息对话框提示不能删除JOptionPane.showMessageDialog(this,"员工删除操作,执行失败!");}}}}4.50帮助互动代码:“帮助”面板类EmployeeHelp导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;创建“帮助”面板类publicclassEmployeeHelpextendsJPanel{创建组件对象:标签JLabeljLabel1=newJLabel("若有问题请联系 :");JLabeljLabel4=newJLabel("敬翰林");JLabeljLabel2=newJLabel("QQ:81652794");JLabeljLabel3=newJLabel("邮箱:81652794@");构造方法publicEmployeeHelp(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}初始化privatevoidjbInit()throwsException{框架的布局this.setLayout(null);设置各组件的大小jLabel1.setFont(newjava.awt.Font("楷体",Font.BOLD,20));jLabel1.setBounds(newRectangle(50,50,300,30));jLabel4.setFont(newjava.awt.Font("楷体",Font.BOLD,20));jLabel4.setBounds(newRectangle(50,90,150,30));jLabel2.setFont(newjava.awt.Font("楷体",Font.BOLD,20));jLabel2.setBounds(newRectangle(50,140,300,30));jLabel3.setFont(newjava.awt.Font("楷体",Font.BOLD,20));jLabel3.setBounds(newRectangle(50,180,300,30));添加组件到面板this.add(jLabel1);this.add(jLabel2);this.add(jLabel3);this.add(jLabel4);}}4.51员工薪资清单查询代码://"薪资清单查询 "面板类 XinInquire导入系统的类包importjava.awt.*;importjava.sql.*;importjavax.swing.*;importjava.awt.event.*;创建“薪资清单查询”类publicclassXinInquireextendsJPanelimplementsActionListener{声明连接数据库对象Connectioncon;声明SQL语句对象Statementst;创建组件对象:标签、文本行、单选JLabeljLabel1=newJLabel("请输入要查询的员工号: ");JTextFieldjTextField1=newJTextField();JButtonjButton4=newJButton("薪资清单查询");JTextAreajTextArea1=newJTextArea();构造方法public XinInquire(){try{调用初始化方法jbInit();}catch(Exceptionexception){exception.printStackTrace();}}面板初始化方法privatevoidjbInit()throwsException{连接数据库con=DBConnect.getConn();st=con.createStatement();框架的布局this.setLayout(null);设置各组件的大小jLabel1.setFont(newjava.awt.Font("黑体",Font.BOLD,16));jLabel1.setBounds(newRectangle(46,4,222,32));jTextField1.setBounds(newRectangle(47,37,247,31));jButton4.setBounds(newRectangle(47,86,247,30));jTextArea1.setBounds(newRectangle(24,130,305,109));添加按钮动作事件jButton4.addActionListener(this);添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton4);}点击按钮事件publicvoidactionPerformed(ActionEvente){获取输入的员工号StringEmployeeID=jTextField1.getText();清空文本区原有的内容jTextArea1.setText("");try{利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQuery("select*fromSalaryInquirewhere员工号='"+EmployeeID+"'");处理结果集if(rs.next()){jTextArea1.setText("员工工资:"+rs.getString("员工工资")+"\n"+"奖励工资:"+rs.getString("奖励工资")+"\n"+"福利补贴:"+rs.getString("福利补贴")+"\n"+"住房公积金 :"+rs.getString("住房公积金")+"\n"+"失业保险:"+rs.getString("失业保险")+"\n"+"员工薪资:"+rs.getString("员工薪资")+"\n");}else{JOptionPane.showMessageDialog(this,"该员工号的员工没有薪资清单记录!");}}catch(Exceptionex){利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"薪资查询失败 !");}}}五:设计心得及体会通过设计这个员工薪资系统,我们收获了很多。这是第一次课程设计。感觉还是很困难的。刚开始,建表,画E—R图都感觉没问题,可是到了JAVA连接数据库这里,就遇到了困难,开始老是连接不上。调试了JDBC连接的代码,终于能连接上了,并且还可以出现系统界面。但就是不能实现各种功能,于是我们就在代码上花了很长的时间,因为对JAVA的掌握不够好,以至于在这里遇到问题。这个系统到现在还存在着很多问题,如不符合安全性要求,没有设置登录权限,不符合安全性要求等。设计这个员工薪资系统,不仅让我们对企业的内部管理有了初步的了解和认识,也让我

温馨提示

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

评论

0/150

提交评论