您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库课程设计报告(戴智青)
1湖南科技大学计算机科学与工程学院数据库课程设计报告题目:人事管理系统学号:1005010211姓名:戴智青指导老师:唐兵完成时间:2013.1.22一、系统需求分析:1、系统功能分析:本系统主要有以下几项功能要求新员工资料的输入.分配员工号,并且设置初始的用户密码人事变更详细记录,包括岗位和部门的调整员工信息的查询和修改,包括员工个人信息和密码2、系统功能模块设计:1.管理者模块:对员工信息的各项操作:增加、修改、删除、查询;2.员工模块:查询个人信息、查询工作信息、修改个人密码3、数据流程图:人事管理系统的数据流程图如下图所示,所有数据由人事科管理人员输入人事科招聘新员工分配员工号员工信息数据岗位调整员工辞退人事变更记录个人信息查询个人信息查询结果人事管理系统新员工档案输入人事变更员工档案查询修改3二、数据库设计:三、1、数据库需求分析:根据数据流程图,可以列出以下数据项和数据结构:员工信息:员工号、密码、权限、姓名、性别、生日、专业、通讯地址、电话、email、备注。人事变动:记录号、员工、变动所需外部数据支持部门设置:部门编号、名称···2、数据库逻辑设计:根据系统的E-R图,需要设计6个数据表来存放员工的信息department_ifo部门信息表Personnel人事变更表人事变更记录PKFK1记录编号员工变动详细描述员工号FK1员工密码权限姓名性别生日职位学历专业联系电话Email所属部门当前状态员工PK部门PK部门编号FK1部门名称简介部门主管4edu_level教育程度代码表Person_ifo员工信息表job_code职务代码表personnel_change_code职务变更代码表3、数据库的建立:此次课程设计所用数据库是MYSQL,编程语言是Java表格的建立:如员工信息表的创建CREATETABLE`person_ifo`(`p_no`char(10)NOTNULL,`p_pwd`char(20)NOTNULLdefault'123456',`authority`bit(1)NOTNULLdefaultb'1',`p_name`char(5)defaultNULL,`p_sex`char(1)defaultNULL,`p_brith`datedefaultNULL,`dt_id`smallint(6)NOTNULL,`j_id`smallint(6)NOTNULL,`edu_id`smallint(6)NOTNULL,`skill`char(10)defaultNULL,`address`char(10)defaultNULL,5`telp`char(15)defaultNULL,`email`char(30)defaultNULL,`remark`char(30)defaultNULL,PRIMARYKEY(`p_no`),KEY`dt_id`(`dt_id`),KEY`j_id`(`j_id`),KEY`edu_id`(`edu_id`),CONSTRAINT`person_ifo_ibfk_1`FOREIGNKEY(`dt_id`)REFERENCES`department_ifo`(`dt_id`),CONSTRAINT`person_ifo_ibfk_2`FOREIGNKEY(`j_id`)REFERENCES`job_code`(`j_id`),CONSTRAINT`person_ifo_ibfk_3`FOREIGNKEY(`edu_id`)REFERENCES`edu_level`(`edu_id`))ENGINE=InnoDBDEFAULTCHARSET=gbk;其他的表格都是使用同样的语言格式创建。三、各模块的设计与实现:功能代码说明1、增加新员工publicvoidbtn_add_actionPerformed(ActionEvente){Connectionconn=db.getconn();PreparedStatementpstm=null;Stringsql=insertintoperson_ifovalues(?,?,?,?,?,?,?,?,?,?,?,?,?,?);Datebrith=null;try{if(txt_pid.getText().equalsIgnoreCase()){JOptionPane.showMessageDialog(this,员工号不能为空!,错误,JOptionPane.ERROR_MESSAGE);return;}if(txt_brithY.getText().equalsIgnoreCase()){txt_brithY.setText(1);}if(txt_brithM.getText().equalsIgnoreCase()){txt_brithM.setText(1);}if(txt_brithD.getText().equalsIgnoreCase()){txt_brithD.setText(1);}conn.setAutoCommit(false);pstm=conn.prepareStatement(sql);pstm.setString(1,txt_pid.getText());6pstm.setString(2,123456);pstm.setByte(3,(byte)cmPower.getSelectedIndex());pstm.setString(4,txt_name.getText());if(rabF.isSelected()){pstm.setString(5,rabF.getText());}else{pstm.setString(5,rabM.getText());}brith=newDate(Integer.parseInt(txt_brithY.getText())-1900,Integer.parseInt(txt_brithM.getText())-1,Integer.parseInt(txt_brithD.getText()));pstm.setDate(6,newjava.sql.Date(brith.getTime()));pstm.setShort(7,(short)cmDepart.getSelectedIndex());pstm.setShort(8,(short)cmJob.getSelectedIndex());pstm.setShort(9,(short)cmEdu.getSelectedIndex());pstm.setString(10,txt_skill.getText());pstm.setString(11,txt_adress.getText());pstm.setString(12,txt_telp.getText());pstm.setString(13,txt_email.getText());pstm.setShort(14,(short)cmRemark.getSelectedIndex());intlen=pstm.executeUpdate();if(len0){conn.commit();JOptionPane.showMessageDialog(this,添加数据成功!,提示,JOptionPane.INFORMATION_MESSAGE);}else{JOptionPane.showMessageDialog(this,添加数据失败!,提示,JOptionPane.ERROR_MESSAGE);conn.rollback();}}catch(SQLExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();try{JOptionPane.showMessageDialog(this,输入格式错误,请检查数据是否合法!,ERROR,JOptionPane.ERROR_MESSAGE);conn.rollback();}catch(SQLExceptione2){//TODOAuto-generatedcatchblocke2.printStackTrace();}}finally{db.free(pstm,conn);}72、修改员工信息publicvoidbtn_alter_actionPerformed(ActionEvente){Connectionconn=db.getconn();PreparedStatementpstm=null;Stringp_no=rowDate.get(0);Stringsql=updateperson_ifoset+p_no=?,p_pwd=?,authority=?,p_name=?,+p_sex=?,p_brith=?,dt_id=?,j_id=?,edu_id=?,skill=?,address=?,telp=?,email=?,pc_id=?wherep_no=?;Datebrith=null;try{if(txt_pid.getText().equalsIgnoreCase()){JOptionPane.showMessageDialog(this,员工号不能为空!,错误,JOptionPane.ERROR_MESSAGE);return;}if(txt_brithY.getText().equalsIgnoreCase()){txt_brithY.setText(1);}if(txt_brithM.getText().equalsIgnoreCase()){txt_brithM.setText(1);}if(txt_brithD.getText().equalsIgnoreCase()){txt_brithD.setText(1);}conn.setAutoCommit(false);pstm=conn.prepareStatement(sql);pstm.setString(1,txt_pid.getText());pstm.setString(2,rowDate.get(1));pstm.setByte(3,(byte)cmPower.getSelectedIndex());pstm.setString(4,txt_name.getText());if(rabF.isSelected()){pstm.setString(5,rabF.getText());}else{pstm.setString(5,rabM.getText());}brith=newDate(Integer.parseInt(txt_brithY.getText())-1900,Integer.parseInt(txt_brithM.getText())-1,Integer.parseInt(txt_brithD.getText()));pstm.setDate(6,newjava.sql.Date(brith.getTime()));pstm.setShort(7,(short)cmDepart.getSelectedIndex());pstm.setShort(8,(short)cmJob.getSelectedIndex());pstm.setShort(9,(short)cmEdu.getSelectedIndex());pstm.setString(10,txt_skill.getText());8pstm.setString(11,txt_adress.getText());pstm.setString(12,txt_telp.getText());pstm.setString(13,txt_email.getText());pstm.setShort(14,(short)cmRemark.getSelectedIndex());pstm.setString(15,p_no);intlen=pstm.executeUpda
本文标题:数据库课程设计报告(戴智青)
链接地址:https://www.777doc.com/doc-4327894 .html