当前位置:文档之家› 数据库技术课程设计(员工管理系统)

数据库技术课程设计(员工管理系统)

数据库技术课程设计报告课题:员工管理系统姓名:学号:*********班级:信管151****:**时间:2017.12.261.需求分析 (3)1.1系统需求分析 (3)1.2可行性分析 (3)2.数据库的概念设计 (4)3.数据库的逻辑设计 (5)4.数据库的物理设计 (5)4.1数据字典 (5)4.2数据库的建立与初始化 (7)5 应用程序设计 (9)5.1系统功能分析 (9)5.2系统功能模块设计 (9)6.设计结果及代码 (11)6.1登录模块 (11)6.2员工登录后的查询模块 (12)6.3.管理员管理员工信息模块 (13)6.4管理员管理员工工资模块 (14)6.5管理员管理员工奖惩模块 (15)6.6更改密码模块 (15)6.7退出模块 (16)7.课设的体会与收获 (17)1.需求分析1.1系统需求分析在人才过剩的今天,企业对于有用人才的需求逐步加大,企业内部的人事变动和部门规划也开始加速,传统的人事档案已经不能满足各个企业的人员流动速度,迫使人们起用新的管理方法来管理员工的相关信息。

科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。

信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。

因此,员工管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢地进入各个行业和领域,将传统的员工管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。

功能需求详细说明:—增加—管理员可以增加员工的基本信息—编辑—用户可以对员工信息进行删除用户可以对员工的姓名、编号等员工基本信息进行修改用户可以对员工的工资和奖惩等信息进行修改—查询—员工可以根据登录系统查询自己的个人信息以及自己的工资信息和奖惩记录1.2可行性分析本次课程设计题目:“员工信息管理系统”,主要目的是编制一个登陆系统,连接数据库系统,用以实现管理员对员工个人信息的管理以及员工登录系统对自己的信息的查询,同时对整个系统的分析、设计过程给出一个完整的论证。

由于本系统管理的对象简单,且每个数据内容之间都具有关联性,涉及过程并不是很复杂。

因此,比较适合于采用数据库管理。

在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上和图书馆资料,特别是参考其它程序的功能,因此完全可以实现。

员工姓名编号性别部门编号职称编号部门部门名称职称职称名奖惩工资登记发放时间时间记录编号奖惩内容奖惩原因奖惩类型工资单号工资数根据系统功能设计的要求以及功能模块的划分,对员工信息管理系统可以列出以下数据项及数据结构:员工个人基本信息:包括员工编号、姓名、性别、部门、职称。

部门信息:包括部门编号、部门名称职称信息:包括职称编号、职称名称奖惩信息:包括奖惩编号、员工编号、奖惩类型奖惩内容、时间、奖惩原因工资信息:工资单号、员工编号、工资、时间用户信息:包括登陆用户的帐号及密码和登录者的类型4.数据库的物理设计4.1数据字典4.2数据库的建立与初始化5 应用程序设计5.1系统功能分析员工信息管理系统基于管理员与员工验证登录的方式实现管理员对员工信息、工资、奖惩记录的管理以及员工自己登录查询基本信息。

其功能结构如图(图1.7):图1.7:系统功能结构图5.2系统功能模块设计员工信息管理系统主要包含用户登录、新增、编辑、查询功能模块。

1、用户登陆员工管理系统管理员登录 员工登录查询个人信息 工资信息 奖惩信息新增新增员工信息 新增工资信息 新增奖惩信息 编辑员工信息 编辑 工资信息 编辑 奖惩信息 编辑 查询员工信息查询 工资信息 查询 奖惩信息 查询员工信息管理系统采用用户名及密码验证方式,进入员工信息管理系统前,用户必须在登录窗口输入用户名及密码,只有验证通过的用户方可进入员工信息管理系统操作主页面。

2、新增功能模块包含3个功能模块:员工个人信息的添加、员工工资信息的添加、员工奖惩记录的添加3、编辑功能模块包含3个功能模块:员工个人信息的更改和删除、工资信息的更改,奖惩记录的更改4、查询功能模块包含3个功能模块:员工个人信息查询、工资信息的查询、奖惩记录的查询系统操作流程图(图1.8):图1.8:Y登录密码框判断密码员工信息管理系统 其他管理结束开始N保存操作结果6.设计结果及代码6.1登录模块1.登录界面(login.jsp)的主要代码1.1.登录者类型的选择用到下拉框,显示值为中文,实际值为代表该意思的0、1<tr><td>登陆者类型</td><td><select style="width: 150px" name="userclass"><option value="0">管理员</option><option value="1">员工</option></select></td></tr>2.登录判断(loginaction.java)的主要代码2.1.登录时输入的值的接收以及对接收值的判断String username = request.getParameter("username");String password = request.getParameter("password");String userclass = request.getParameter("userclass");String sql = "select * from p_user where username=?and password=? and userclass=?";pre = con.prepareStatement(sql);pre.setString(1, username);pre.setString(2, password);pre.setString(3, userclass);result = pre.executeQuery();if (result.next()){isValid = true;}2.2.员工和管理员的登录成功跳转不同以及存储登录名(用来员工登录查看信息)if(isValid){System.out.println("登录成功!");//存储用户登陆名request.getSession().setAttribute("username", username);request.getSession().setAttribute("password", password);request.getSession().setAttribute("userclass", userclass);if(userclass.equals("0")){response.sendRedirect("LoginSuccess.jsp");}else{response.sendRedirect("LoginSuccesse.jsp");}6.2员工登录后的查询模块1.登录成功后界面(LoginSuccesse.jsp)的主要代码1.1图片的显示以及接受传递过来的员工编号<tr><img src="下载.jpg"width="200"/><!-- 这里的图片是直接放在webContent的目录下 --></tr><tr><td colspan="2">欢迎你</td><td>员工${username}</td></tr>2.几个查询页面的主要代码2.1查询信息时运用登录的员工编号来作为查询的限定条件SELECT * FROM 工资表 ,员工信息表 where 工资表.员工编号=员工信息表.员工编号 and 员工信息表.员工编号=${username}SELECT * FROM 员工信息表 where 员工编号=${username}1.添加员工信息的主要代码1.1添加员工信息界面(Addemployee.jsp)中下拉框(利用数据库中华的数据)<tr><td>部门名称</td><sql:setDataSourcedriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"user="sa"password="123456"url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=staff"/> <sql:query sql="SELECT * FROM 部门表 "var="b"/><td><select style="width:150px" name="BM"><option value="">请选择</option><c:forEach var="row"items="${b.rows}"><option value="${row.部门名称}">${row.部门名称}</option></c:forEach></select></td></tr>1.2添加的判断(AddEmployee.java)中添加员工信息不仅要在员工信息表中添加信息还要在p_user表中添加登录名为员工编号,密码初始值为员工编号,登录类型为1的记录String userclass="1";stmt.executeUpdate("INSERT INTO 员工信息表 VALUES ('" + ID + "','" + NAME + "','" + SEX + "','" + BM + "','" + ZC + "')");stmt.executeUpdate("INSERT INTO p_user VALUES ('" + ID + "','"+ ID + "','" + userclass + "')");1.给员工发工资的主要代码1.1发工资时的逻辑判断(AddPay.java)中的一个月只能发一次工资(1)接受time并获取年月String TIME = newString(request.getParameter("time").getBytes("ISO-8859-1"), "UTF-8");System.out.println(TIME.length());String year=TIME.substring(0,4);String yue=TIME.substring(5,7);boolean a=false;(2)利用获取的年月模糊查询String sqlSelect1 = "select * from 工资表 where 员工编号='"+ID+"' "+ "and 时间 like '"+year+"_"+yue+"%'";ResultSet rs1 = stmt.executeQuery(sqlSelect1);if(rs1.next()){a=true;}(3)利用查询结果来反馈else if(a){out.print("<script>alert('该员工本月已经发工资了');window.location.href='AddPay1.jsp?ID="+ID+"'</script>");System.out.println("该员工本月已经发工资了");}1.给员工添加奖惩的主要代码1.1添加时的页面(AddReward.jsp)中奖惩的选择<label><input name="jc"type="radio"value="奖"checked/>奖</label><label><input name="jc"type="radio"value="惩"/>惩</label>注释:此处checked为默认选择6.6更改密码模块1.修改界面(ChangePassword.jsp)的主要代码1.1用户名显示但不能更改的问题<tr><td>用户名</td><td><input type="text"name="name"value=${param.ID} readonly="true""/></td></tr><tr></tr>2.修改判断(ChangePassword.java)的主要代码2.1判断输入的原始密码是否正确String sqlSelect = "select * from p_userwhere username ='" + name + "'and password='"+p+"'and userclass='"+userclass+"' ";ResultSet rs = stmt.executeQuery(sqlSelect);if(!rs.next()){out.print("<script>alert('原始密码错误');}window.location.href='ChangePassword.jspID="+name+"'</script>");}6.7退出模块1.退出(LoginOut.jsp)的主要代码1.1释放session中保存的信息session.removeAttribute("username");session.removeAttribute("password");session.removeAttribute("userclass");1.2返回到登录页面response.sendRedirect("login.jsp");7.课设的体会与收获两个星期的时间非常快就过去了,我不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。

相关主题