1、课程设计职工考勤管理系统姓名: 班级:学号:学院: 职工考勤管理系统的设计与实现一、系统介绍:管理员可通过登录名与密码进入考勤系统,可以通过职工编号来进行对各别员工的查询,进行考勤,也可以查看全体员工的考勤情况,还可以进行添加,删除等操作。二、系统设计:2.1 根据系统功能,可以画出如下流程图:针对职工管理系统的流程图,现具体描述其功能:1、 管理员登陆:系统对其合法性进行检查2、 职工个人考勤:通过职工编号查询其信息3、 全体职工考勤:查看全体职工信息4、 添加操作:添加职工的各种基本信息5、 删除操作:根据职工编号删除某个职工的全部信息2.2 数据库的逻辑设计根据系统的功能可以设计有关的概
2、念模型,该系统涉及一张职工考勤信息表,可以画出如下 E-R 图:管理员登陆 用户验证 查询操作添加操作,删除操作2.2.1: 管理员实体 E-R 图:管理员管理员名称 密码2.2.2:职工实体 E-R 图:职工编号职工姓名所在部门性别缺勤次数请假次数出差次数职工2.2.3: 数据库设计:1.启动 SQL Server 20052.建立数据库打开企业管理器,新建数据库 Student3.创建表 kaoqing, kaoqing 表的字段的属性为:Kaoqing 表如下所示:三、系统的实现:3.1 数据库的连接:1.创建 ODBC 数据源:选择“控制面板”“管理工具”“ODBC 数据源” ,在双击
3、 ODBC 数据源后,选择“用户 DSN”,添加新的数据源,单击“配置” ,选择 SQL Server,数据源名称为mymoon,设置用户名为 sa,密码为 163123,选择数据库 Student。2.建立 JDBC-ODBC 桥接器:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);建立桥接器时可能发生异常,为捕获这个异常,所以建立桥接器的标准为:TryClass.forName(“sun.jdbc.odbc.JdbcOdbcDrivder”);Catch(ClassNotFoundException e)3.与 ODBC 数据源指定的数据库建立连
4、接:使用 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 用户登录当用户登陆时,首先出现的是一个登陆页面,只有输入正确的管理员姓
5、名与密码时,才能进入考勤系统。关键代码如下:登陆页面欢迎进入职工考勤管理系统!/转页到check.jsp页面管理员:密码:如下图 3.2.1 所示:2.用户检查对输入的管理员姓名与密码进行检查,如若正确,则转到考勤页面,若不正确,则返回到登陆页面,再次输入姓名与密码,直至正确。代码如下:JSP Page/正确,跳转到考勤页面/不正确,返回到登陆页面如下图 3.2.2 所示:3.按职工编号考勤:输入职工编号,可以通过调用 bean 来取得数据库中信息,并显示出来。关键代码如下:根据职工编查询到的考勤记录ConditonQuery.java 的部分代码如下:package tom.jiafei;i
6、mport java.sql.*;public class ConditionQuery String number;/职工编号StringBuffer queryResultByNumber;public ConditionQuery()queryResultByNumber=new StringBuffer();tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver“);/建立一个桥接器catch(ClassNotFoundException e)/捕获建立桥接器时的异常/private StringBuffer f(String condition)
7、StringBuffer str=new StringBuffer();Connection con;Statement sql;ResultSet rs;trycon=DriverManager.getConnection(“jdbc:odbc:mymoon“,“sa“,“163123“);/连接数据库sql=con.createStatement();rs=sql.executeQuery(condition);str.append(“);str.append(“+“职工编号“);str.append(“+“职工姓名“);str.append(“+“所在部门“);str.append(“+
8、“性别“);str.append(“+“缺勤次数“);str.append(“+“请假次数“);str.append(“+“出差次数“);while(rs.next()str.append(“);str.append(“+rs.getString(1)+“);str.append(“+rs.getString(2)+“);str.append(“+rs.getString(3)+“);str.append(“+rs.getString(4)+“);str.append(“+rs.getString(5)+“);str.append(“+rs.getString(6)+“);str.append
9、(“+rs.getString(7)+“);str.append(“);str.append(“);con.close();catch(SQLException e)str.append(e);return str;其结果如下图 3.2.3 所示:4.查看全体职工考勤记录关键代码如下:“);out.print(“ + “职工编号“);while (rs.next() out.print(“);out.print(“ + rs.getString(1) + “);out.print(“);out.print(“);con.close(); catch (SQLException e1) out.
10、print(e1);%其查询结果如下图 3.2.4 所示:5.添加职工信息操作此操作用到了 addbean 和 querybean,其中 querybean 帮助其查询kaoqing 表中的记录;而 addbean 是 add.jsp 调用它把信息添加到kaoqingbiao 中,关键代码如下:add.jsp 的部分代码:输入职工编号: 您的操作结果:数据库当前的数据记录是:Addbean 的关键代码:public String getAddMessage()String str = “;Connection con;Statement sql;try con = DriverManager.
11、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.execu
12、teUpdate(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 部分代码:输入要删除的员工号:您的更新操作结果:数据库当前的数据记录是: Deletebean 的关键代码如下:public String
13、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 !=
14、0) str = “对表中删除“ + m + “条记录成功“; else str = “删除失败“; else str = “必须指定要删除的员工号“; con.close(); catch (SQLException e) str = “员工号不存在“; return str;操作结果如 3.2.6 所示:四.总结:这个系统是职工考勤管理系统,要求对职工进行出勤,缺勤等的考查,另外还带有添加,删除等操作,所以一开始设计这个系统感到没有头绪,不得要领,并且没有足够的知识来运用,于是查找了很多的书籍,希望能有所帮助。随着课程的进行,对 JSP 的了解也日益增加,能够把系统的部分功能渐渐的写出来了。在此过程中也出现了一些困难,比如连接数据库,一开始的时候不会连接,后来参考了书籍,按照书上的方法才连接成功,使得 JSP 程序与数据源取得了连系;还有就是在写添加操作这个功能时,也遇到了一点麻烦,总是出现乱码,后来在包里又新建了一个 java 类,写了控制乱码的语句才使添加功能正常运行了。在这次课程设计中,虽然系统完成了,但还是有不足的地方。在写程序时,有些地方应该用到的语句不懂,所以只能用自己会的来编写,从而放弃了最适宜的语句,使得整个程序有了些瑕疵。这让我明白了一门课程还是要完全掌握吃透了才行啊。总的来说,这次职工考勤管理系统的设计与实现完成了。