职工考勤管理系统的设计与实现.docx
- 文档编号:11876852
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:15
- 大小:51.11KB
职工考勤管理系统的设计与实现.docx
《职工考勤管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《职工考勤管理系统的设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。
职工考勤管理系统的设计与实现
课
程
设
计
职工考勤管理系统
姓名:
班级:
学号:
学院:
职工考勤管理系统的设计与实现
一、系统介绍:
管理员可通过登录名与密码进入考勤系统,可以通过职工编号来进行对各别员工的查询,进行考勤,也可以查看全体员工的考勤情况,还可以进行添加,删除等操作。
二、系统设计:
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。
启动SQLServer2005
2.建立数据库
打开企业管理器,新建数据库Student
3。
创建表kaoqing,kaoqing表的字段的属性为:
Kaoqing表如下所示:
三、系统的实现:
3。
1数据库的连接:
1。
创建ODBC数据源:
选择“控制面板”-—“管理工具”——“ODBC数据源”,在双击ODBC数据源后,选择“用户DSN”,添加新的数据源,单击“配置”,选择SQLServer,数据源名称为mymoon,设置用户名为sa,密码为163123,选择数据库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”,”163123");捕获异常为
try{con=DriverManager。
getConnection("jdbc:
odbc:
mymoon",”sa”,”163123”);}catch(SQLExceptione){}
3。
2系统实现:
1用户登录
当用户登陆时,首先出现的是一个登陆页面,只有输入正确的管理员姓名与密码时,才能进入考勤系统.关键代码如下:
〈head>
〈title〉登陆页面〈/title〉
〈metahttp-equiv="Content—Type"content=”text/html;charset=UTF—8"〉
〈/head〉
〈center> 〈h1〉 欢迎进入职工考勤管理系统! 〈formaction="check。 jsp”method="post”>//转页到check.jsp 页面    管理员: 〈inputtype=”text”name="name"> 密码: 〈inputtype="text"name=”number”〉 〈/center〉 〈/body〉 如下图3.2.1所示: 2。 用户检查 对输入的管理员姓名与密码进行检查,如若正确,则转到考勤页面,若不正确,则返回到登陆页面,再次输入姓名与密码,直至正确。 代码如下: 〈%@pagecontentType=”text/html”pageEncoding=”UTF-8"%〉
〈/head〉
<%
Stringname=request.getParameter(”name”);
Stringpassword=request。
getParameter(”number”);
if(name.equals(”shenyan”)||password。
equals(”08260021”))
{//检查管理员姓名与密码是否正确
%>
〈jsp:
forwardpage="sucess。
jsp”/〉//正确,跳转到考勤页面
〈%
}
else
{
%〉
〈jsp:
forwardpage=”form.html"/>//不正确,返回到登陆页面
〈%
}
%〉
〈/body〉
〈/html>
如下图3.2。
2所示:
3。
按职工编号考勤:
输入职工编号,可以通过调用bean来取得数据库中信息,并显示出来。
关键代码如下:
〈%@pagecontentType=”text/html”pageEncoding="UTF—8”%>
〈%@pageimport=”tom.jiafei。
ConditionQuery”%〉
〈jsp:
useBeanid="database”class="tom。
jiafei。
ConditionQuery”scope=”request”/〉
setPropertyname=”database”property=”number"param="number"/〉 根据职工编〈jsp: getPropertyname="database"property=”number”/> 查询到的考勤记录 getPropertyname=”database"property=”queryResultByNumber”/> jsp”> 〈inputtype="submit"value="返回上一页面”> 〈inputtype="submit"value="返回登录页面"〉 〈/form> 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",”163123”);//连接数据库 sql=con。 createStatement(); rs=sql。 executeQuery(condition); str。 append("〈tableborder=1〉"); str。 append("〈thwidth=100〉"+"职工编号”); str.append(” str。 append(”〈thwidth=100〉”+”所在部门"); str.append("〈thwidth=100>”+"性别”); str。 append(”〈thwidth=100>"+"缺勤次数"); str。 append("〈thwidth=100>"+”请假次数"); str。 append(”〈thwidth=100〉”+"出差次数”); while(rs。 next()){ str.append(" str.append(” getString (1)+” str。 append(" getString (2)+"〈/td>”); str。 append(”〈td〉”+rs.getString(3)+" str.append(” str。 append(" getString(5)+" str。 append("〈td〉"+rs。 getString(6)+”〈/td〉”); str。 append(" getString(7)+”〈/td〉"); str。 append(” } str.append("〈tableborder=1〉”); 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","163123"); sql=con。 createStatement(); rs=sql。 executeQuery(”SELECT*FROMkaoqing”); out.print(”〈tableborder=2>”); out。 print(” while(rs.next()){ out.print(”〈tr>”); out.print(" getString (1)+" ");”+rs。 ");"); "); ");
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"%>
〈jsp:
useBeanid=”look”class="tom.jiafei。
QueryBean”scope=”request”/〉
useBeanid="add"class="tom。 jiafei.addBean"scope="request”/〉 〈jsp: setPropertyname=”look"property=”ODBCDataSource”value=”mymoon"/〉 〈jsp: setPropertyname="look"property=”tableName"value=”kaoqing”/> setPropertyname=”look”property=”user"value="sa”/> 〈jsp: setPropertyname=”look"property="secret"value="163123"/〉 〈formaction=”add。 jsp"method="post”〉 〈jsp: setPropertyname=”add"property="*"/> 〈jsp: getPropertyname=”add"property="addMessage"/> 数据库当前的数据记录是: 〈jsp: getPropertyname="look"property=”queryResult"/> 〈/form〉 Addbean的关键代码: publicStringgetAddMessage(){ Stringstr=””; Connectioncon; Statementsql; try{ con=DriverManager。 getConnection(”jdbc: odbc: mymoon","sa",”163123"); 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”%> 〈jsp: useBeanid=”look"class="tom.jiafei。 QueryBean"scope=”request"/〉 〈jsp: useBeanid="del”class=”tom。 jiafei。 delBean”scope="request"/〉 setPropertyname=”look"property="ODBCDataSource”value=”mymoon”/〉 setPropertyname=”look"property=”tableName”value="kaoqing”/〉 setPropertyname="look"property="user”value=”sa"/> setPropertyname="look”property="secret”value="163123”/〉 〈inputtype="text"name="number"size="6"> 〈br> setPropertyname="del"property="*"/〉 〈br>您的更新操作结果: getPropertyname=”del"property=”delMessage"/〉 〈p〉数据库当前的数据记录是: getPropertyname=”look”property="queryResult"/> Deletebean的关键代码如下: publicStringgetDelMessage(){ Stringstr=""; Connectioncon; Statementsql; StringdelCondition="deletefromkaoqingwhere职工编号='”+number+”'”; try{ con=DriverManager。 getConnection(”jdbc: odbc: mymoon”,”sa",”163123”); 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类,写了控制乱码的语句才 使添加功能正常运行了。 在这次课程设计中,虽然系统完成了,但还是有不足的地方。 在 写程序时,有些地方应该用到的语句不懂,所以只能用自己会的来编 写,从而放弃了最适宜的语句,使得整个程序有了些瑕疵。 这让我明 白了一门课程还是要完全掌握吃透了才行啊。 总的来说,这次职工考勤管理系统的设计与实现完成了。
输入职工编号:
输入要删除的员工号:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 考勤 管理 系统 设计 实现