• 2.92 MB
  • 2022-05-17 13:39:55 发布

职工考勤管理系统的设计与实现.doc

  • 23页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
课程设计职工考勤管理系统姓名:班级:学号:学院: 职工考勤管理系统的设计与实现一、系统介绍:管理员可通过登录名与密码进入考勤系统,可以通过职工编号来进行对各别员工的查询,进行考勤,也可以查看全体员工的考勤情况,还可以进行添加,删除等操作。二、系统设计:2.1根据系统功能,可以画出如下流程图:添加操作,删除操作查询操作用户验证管理员登陆针对职工管理系统的流程图,现具体描述其功能:1、管理员登陆:系统对其合法性进行检查2、职工个人考勤:通过职工编号查询其信息3、全体职工考勤:查看全体职工信息4、添加操作:添加职工的各种基本信息5、删除操作:根据职工编号删除某个职工的全部信息2.2数据库的逻辑设计根据系统的功能可以设计有关的概念模型,该系统涉及一张职工考勤信息表,可以画出如下E-R图: 2.2.1:管理员实体E-R图:管理员管理员名称密码2.2.2:职工实体E-R图:职工职工编号职工姓名所在部门性别缺勤次数请假次数出差次数 2.2.3:数据库设计:1.启动SQLServer20052.建立数据库打开企业管理器,新建数据库Student3.创建表kaoqing,kaoqing表的字段的属性为:Kaoqing表如下所示:三、系统的实现:3.1数据库的连接:1.创建ODBC数据源:选择“控制面板”——“管理工具”——“ODBC数据源”,在双击ODBC数据源后,选择“用户DSN”,添加新的数据源,单击“配置”,选择SQLServer,数据源名称为mymoon,设置用户名为sa,密码为,选择数据库Student。2.建立JDBC-ODBC桥接器: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);建立桥接器时可能发生异常,为捕获这个异常,所以建立桥接器的标准为:Try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDrivder”);}Catch(ClassNotFoundExceptione){}3.与ODBC数据源指定的数据库建立连接:使用java.sql包中的Connection类声明一个对象,然后使用类DriverManager调用它的一个静态方法getConnection创建这个连接对象,con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","");捕获异常为try{con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","");}catch(SQLExceptione){}3.2系统实现:1用户登录当用户登陆时,首先出现的是一个登陆页面,只有输入正确的管理员姓名与密码时,才能进入考勤系统。关键代码如下:登陆页面

欢迎进入职工考勤管理系统!//转页到check.jsp页面   管理员:密码:

如下图3.2.1所示: 2.用户检查对输入的管理员姓名与密码进行检查,如若正确,则转到考勤页面,若不正确,则返回到登陆页面,再次输入姓名与密码,直至正确。代码如下:<%@pagecontentType="text/html"pageEncoding="UTF-8"%>JSPPage<% Stringname=request.getParameter("name");Stringpassword=request.getParameter("number");if(name.equals("shenyan")||password.equals("")){//检查管理员姓名与密码是否正确%>//正确,跳转到考勤页面<%}else{%>//不正确,返回到登陆页面<%}%>如下图3.2.2所示: 3.按职工编号考勤:输入职工编号,可以通过调用bean来取得数据库中信息,并显示出来。关键代码如下:<%@pagecontentType="text/html"pageEncoding="UTF-8"%><%@pageimport="tom.jiafei.ConditionQuery"%>根据职工编查询到的考勤记录
ConditonQuery.java的部分代码如下:packagetom.jiafei;importjava.sql.*;publicclassConditionQuery{Stringnumber;//职工编号StringBufferqueryResultByNumber;publicConditionQuery(){queryResultByNumber=newStringBuffer();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立一个JDBC-ODBC桥接器}catch(ClassNotFoundExceptione){}//捕获建立桥接器时的异常 }//privateStringBufferf(Stringcondition){StringBufferstr=newStringBuffer();Connectioncon;Statementsql;ResultSetrs;try{con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","");//连接数据库sql=con.createStatement();rs=sql.executeQuery(condition);str.append("");str.append(""+"职工编号");str.append(""+"职工姓名");str.append(""+"所在部门");str.append(""+"性别");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(""+rs.getString(7)+"");str.append("");}str.append("");con.close();}catch(SQLExceptione){str.append(e);}returnstr;}其结果如下图3.2.3所示: 4.查看全体职工考勤记录关键代码如下:<%@pagecontentType="text/html"pageEncoding="UTF-8"%><%@pageimport="java.sql.*"%><%Connectioncon;Statementsql;ResultSetrs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){out.print(e);}//捕获建立桥接器时的异常try{con=DriverManager.getConnection("jdbc:odbc:mymoon","sa",""); sql=con.createStatement();rs=sql.executeQuery("SELECT*FROMkaoqing");out.print("");out.print(""+"职工编号");while(rs.next()){out.print("");out.print(""+rs.getString(1)+"");out.print("");}out.print("");con.close();}catch(SQLExceptione1){out.print(e1);}%>其查询结果如下图3.2.4所示: 5.添加职工信息操作此操作用到了addbean和querybean,其中querybean帮助其查询kaoqing表中的记录;而addbean是add.jsp调用它把信息添加到kaoqingbiao中,关键代码如下:add.jsp的部分代码:<%@pageimport="tom.jiafei.QueryBean"%><%@pageimport="tom.jiafei.addBean"%>
输入职工编号:
您的操作结果:

数据库当前的数据记录是:Addbean的关键代码:publicStringgetAddMessage(){Stringstr="";Connectioncon;Statementsql;try{con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","");StringinsertCondition="insertintokaoqing(职工编号,职工姓名,所在部门,性别,缺勤次数,请假次数,出差次数)"+"values(""+number+"",""+name+"",""+department+"",""+sex+"",""+queq+"",""+qingj+"",""+chuc+"")";sql=con.createStatement(); if(number!=null){intm=sql.executeUpdate(insertCondition);if(m!=0){str="对表中添加"+m+"条记录成功";}else{str="添加失败";}}else{str="必须要有员工号";}con.close();}catch(SQLExceptione){str="输入的员工号不允许有重复"+e;}returnstr;}}添加结果如3.3.5所示: 6.删除职工信息与添加操作基本相同,关键代码如下:Delete.jsp部分代码:<%@pageimport="tom.jiafei.QueryBean"%><%@pageimport="tom.jiafei.delBean"%>
输入要删除的员工号:


您的更新操作结果:

数据库当前的数据记录是:Deletebean的关键代码如下:publicStringgetDelMessage(){Stringstr="";Connectioncon;Statementsql;StringdelCondition="deletefromkaoqingwhere职工编号=""+number+""";try{con=DriverManager.getConnection("jdbc:odbc:mymoon","sa","");sql=con.createStatement();if(number!=null){intm=sql.executeUpdate(delCondition);if(m!=0){str="对表中删除"+m+"条记录成功";}else{str="删除失败";} }else{str="必须指定要删除的员工号";}con.close();}catch(SQLExceptione){str="员工号不存在";}returnstr;}}操作结果如3.2.6所示: 四.总结:这个系统是职工考勤管理系统,要求对职工进行出勤,缺勤等的考查,另外还带有添加,删除等操作,所以一开始设计这个系统感到没有头绪,不得要领,并且没有足够的知识来运用,于是查找了很多的书籍,希望能有所帮助。随着课程的进行,对JSP的了解也日益增加,能够把系统的部分功能渐渐的写出来了。在此过程中也出现了一些困难,比如连接数据库,一开始的时候不会连接,后来参考了书籍,按照书上的方法才连接成功,使得JSP程序与数据源取得了连系;还有就是在写添加操作这个功能时,也遇到了一点麻烦,总是出现乱码,后来在包里又新建了一个java类,写了控制乱码的语句才使添加功能正常运行了。在这次课程设计中,虽然系统完成了,但还是有不足的地方。在写程序时,有些地方应该用到的语句不懂,所以只能用自己会的来编写,从而放弃了最适宜的语句,使得整个程序有了些瑕疵。这让我明 白了一门课程还是要完全掌握吃透了才行啊。总的来说,这次职工考勤管理系统的设计与实现完成了。