#职工考勤管理系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课
程
设
计
职工考勤管理系统
姓名:
班级:
学号:
学院:
职工考勤管理系统的设计和实现
一、系统介绍:
管理员可通过登录名和密码进入考勤系统,可以通过职工编号来进行对各别员工的查询,进行考勤,也可以查看全体员工的考勤情况,还可以进行添加,删除等操作。
二、系统设计:
2.1 根据系统功能,可以画出如下流程图: 针对职工管理系统的流程图,现具体描述其功能: 2、 职工个人考勤:通过职工编号查询其信息
管理员登陆 用户验证 查询操作
添加操作,删除操作
3、 全体职工考勤:查看全体职工信息
4、 添加操作:添加职工的各种基本信息
5、 删除操作:根据职工编号删除某个职工的全部信息
2.2 数据库的逻辑设计
根据系统的功能可以设计有关的概念模型,该系统涉
及一张职工考勤信息表,可以画出如下E-R 图:
2.2.1: 管理员实体E-R 图:
2.2.2:职工实体E-R 图: 管理员
管理员名称 密码
2.2.3: 数据库设计:
1.启动SQL Server 2005
2.建立数据库
打开企业管理器,新建数据库Student
3.创建表kaoqing, kaoqing 表的字段的属性为:
Kaoqing 表如下所示: 职工编号 职工姓名
所在部门
性别 缺勤次数 请假次数
出差次数 职工
三、系统的实现:
3.1数据库的连接:
1.创建ODBC数据源:选择“控制面板”——“管理工具”——“ODBC数据源”,在双击ODBC数据源后,选择“用户DSN”,添加新的数据源,单击“配置”,选择SQL Server,数据源名称为mymoon,设置用户名为sa,密码为163123,选择数据库Student。
2.建立JDBC-ODBC 桥接器:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);建立桥接器时可能发生异常,为捕获这个异常,所以建立桥接器的标准为: Try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDrivder”);}
Catch(ClassNotFoundException e){}
3.和ODBC数据源指定的数据库建立连接:使用java.sql包中的Connection类声明一个对象,然后使用类DriverManager调用它的一个静态方法getConnection创建这个连接对象,con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","163123");捕获异常为
try{ con=DriverManager.getConnection("jdbc:odbc:mymoon","sa ","163123");} catch(SQL Exception e){}
3.2系统实现:
1 用户登录
当用户登陆时,首先出现的是一个登陆页面,只有输入正确的管理员姓名和密码时,才能进入考勤系统。
关键代码如下:
<html>
<head>
<title>登陆页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body background="ip.JPG">
<center>
<h1>
欢迎进入职工考勤管理系统!
<form action="check.jsp" method="post">//转页到check.jsp
页面
管理员:
<input type="text" name="name">
密码:
<input type="text" name="number">
<input type="submit"value="提交">
</form>
</center>
</body>
</html>
如下图3.2.1所示:
2.用户检查
对输入的管理员姓名和密码进行检查,如若正确,则转到考勤页面,若不正确,则返回到登陆页面,再次输入姓名和密码,直至正确。
代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String name=request.getParameter("name") ;
String password=request.getParameter("number");
if(name.equals("shenyan") || password.equals("08260021")) { //检查管理员姓名和密码是否正确%>
<jsp:forward page="sucess.jsp"/> //正确,跳转到考勤页面
<%
}
else
{
%>
<jsp:forward page="form.html"/> //不正确,返回到登陆页面<%
}
%>
</body>
</html>
如下图3.2.2所示:
3.按职工编号考勤:
输入职工编号,可以通过调用bean来取得数据库中信息,并显示出来。
关键代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="tom.jiafei.ConditionQuery"%>
<jsp:useBean id="database" class="tom.jiafei.ConditionQuery"scope="request"/>
<jsp:setProperty name="database" property="number"param="number"/> 根据职工编<jsp:getProperty name="database" property="number"/>
查询到的考勤记录
<BR><jsp:getProperty name="database"
property="queryResultByNumber"/>
<form method="get"action="sucess.jsp">
<input type="submit"value="返回上一页面">
</form>
<form method="get"action="form.html">
<input type="submit"value="返回登录页面">
</form>
ConditonQuery.java的部分代码如下:
package tom.jiafei;
import java.sql.*;
public class ConditionQuery {
String number;//职工编号
StringBuffer queryResultByNumber;
public ConditionQuery(){
queryResultByNumber=new StringBuffer();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立一个JDBC-ODBC桥接器
}catch(ClassNotFoundException e){}//捕获建立桥接器时的异常
}
//
private StringBuffer f(String condition){
StringBuffer str=new StringBuffer();
Connection con;
Statement sql;
ResultSet rs;
try{
con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","163123") ;//连接数据库
sql=con.createStatement();
rs=sql.executeQuery(condition);
str.append("<table border=1>");
str.append("<th width=100>"+"职工编号");
str.append("<th width=100>"+"职工姓名");
str.append("<th width=100>"+"所在部门");
str.append("<th width=100>"+"性别");
str.append("<th width=100>"+"缺勤次数");
str.append("<th width=100>"+"请假次数");
str.append("<th width=100>"+"出差次数");
while(rs.next()){
str.append("<tr>");
str.append("<td>"+rs.getString(1)+"</td>");
str.append("<td>"+rs.getString(2)+"</td>");
str.append("<td>"+rs.getString(3)+"</td>");
str.append("<td>"+rs.getString(4)+"</td>");
str.append("<td>"+rs.getString(5)+"</td>");
str.append("<td>"+rs.getString(6)+"</td>");
str.append("<td>"+rs.getString(7)+"</td>");
str.append("</tr>");
}
str.append("<table border=1>");
con.close();
}catch(SQLException e){str.append(e);}
return str;
}
其结果如下图3.2.3所示:
4.查看全体职工考勤记录
关键代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%
Connection con;
Statement sql;
ResultSet rs;
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {out.print(e);
}//捕获建立桥接器时的异常
try { con = DriverManager.getConnection("jdbc:odbc:mymoon", "sa", "163123");
sql = con.createStatement();
rs = sql.executeQuery("SELECT * FROM kaoqing");
out.print("<table border=2>");
out.print("<th width=100>" + "职工编号");
while (rs.next()) {
out.print("<tr>");
out.print("<td>" + rs.getString(1) + "</td>");
out.print("</tr>");
}
out.print("</table border=2>");
con.close();
} catch (SQLException e1) {
out.print(e1);}
%>
其查询结果如下图3.2.4所示:
5.添加职工信息操作
此操作用到了addbean和querybean,其中querybean帮助其查询kaoqing表中的记录;而addbean是add.jsp调用它把信息添加到kaoqingbiao中,关键代码如下:
add.jsp的部分代码:
<%@page import="tom.jiafei.QueryBean"%>
<%@page import="tom.jiafei.addBean"%>
<jsp:useBean id="look" class="tom.jiafei.QueryBean" scope="request"/> <jsp:useBean id="add" class="tom.jiafei.addBean" scope="request"/>
<jsp:setProperty name="look" property="ODBCDataSource" value="mymoon"/>
<jsp:setProperty name="look" property="tableName" value="kaoqing"/>
<jsp:setProperty name="look" property="user" value="sa"/>
<jsp:setProperty name="look" property="secret" value="163123"/>
<form action="add.jsp" method="post">
<br>输入职工编号:<input type="text" name="number" size="6">
<jsp:setProperty name="add" property="*"/>
<br>您的操作结果:
<jsp:getProperty name="add" property="addMessage"/>
<p>数据库当前的数据记录是:
<jsp:getProperty name="look" property="queryResult"/>
</form>
Addbean的关键代码:
public String getAddMessage(){
String str = "";
Connection con;
Statement sql;
try {
con = DriverManager.getConnection("jdbc:odbc:mymoon", "sa", "163123");
String insertCondition = "insert into kaoqing(职工编号,职工姓名,所在部门,性别,缺勤次数,请假次数,出差次数)" + "values('" + number + "','" + name + "','" + department+ "','" + sex + "','" + queq+ "','" + qingj + "','"+chuc+"')";
sql = con.createStatement();
if (number!=null) {
int m = sql.executeUpdate(insertCondition);
if (m != 0) {
str = "对表中添加" + m + "条记录成功";
} else {
str = "添加失败";
}
} else {
str = "必须要有员工号";
}
con.close();
} catch (SQLException e) {
str = "输入的员工号不允许有重复" + e;
}
return str;
}
}
添加结果如3.3.5所示:
6.删除职工信息
和添加操作基本相同,关键代码如下:
Delete.jsp 部分代码:
<%@page import="tom.jiafei.QueryBean" %>
<%@page import="tom.jiafei.delBean"%>
<jsp:useBean id="look" class="tom.jiafei.QueryBean" scope="request"/> <jsp:useBean id="del" class="tom.jiafei.delBean" scope="request"/>
<jsp:setProperty name="look" property="ODBCDataSource" value="mymoon"/>
<jsp:setProperty name="look" property="tableName" value="kaoqing"/> <jsp:setProperty name="look" property="user" value="sa"/>
<jsp:setProperty name="look" property="secret" value="163123"/>
<br>输入要删除的员工号:<input type="text" name="number" size="6">
<br><input type="submit" name="b" value="提交删除">
<jsp:setProperty name="del" property="*"/>
<br>
<br>您的更新操作结果:
<jsp:getProperty name="del" property="delMessage"/>
<p>数据库当前的数据记录是:
<jsp:getProperty name="look" property="queryResult"/>
Deletebean的关键代码如下:
public String getDelMessage() {
String str = "";
Connection con;
Statement sql;
String delCondition = "delete from kaoqing where 职工编号='" + number + "'";
try {
con = DriverManager.getConnection("jdbc:odbc:mymoon",
"sa", "163123");
sql = con.createStatement();
if (number != null) {
int m = sql.executeUpdate(delCondition);
if (m != 0) {
str = "对表中删除" + m + "条记录成功";
} else {
str = "删除失败";
}
} else {
str = "必须指定要删除的员工号";} con.close();
} catch (SQLException e) { str = "员工号不存在";} return str;
}
}
操作结果如3.2.6所示:
四.总结:
这个系统是职工考勤管理系统,要求对职工进行出勤,缺勤等的考查,另外还带有添加,删除等操作,所以一开始设计这个系统
感到没有头绪,不得要领,并且没有足够的知识来运用,于是查找了很多的书籍,希望能有所帮助。
随着课程的进行,对JSP的了解也日益增加,能够把系统的部分功能渐渐的写出来了。
在此过程中也出现了一些困难,比如连接数据库,一开始的时候不会连接,后来参考了书籍,按照书上的方法才连接成功,使得JSP程序和数据源取得了连系;还有就是在写添加操作这个功能时,也遇到了一点麻烦,总是出现乱码,后来在包里又新建了一个java类,写了控制乱码的语句才使添加功能正常运行了。
在这次课程设计中,虽然系统完成了,但还是有不足的地方。
在写程序时,有些地方应该用到的语句不懂,所以只能用自己会的来编写,从而放弃了最适宜的语句,使得整个程序有了些瑕疵。
这让我明白了一门课程还是要完全掌握吃透了才行啊。
总的来说,这次职工考勤管理系统的设计和实现完成了。