联系方式: 微信:biyebang QQ: 629001810
标题:JSP高校考勤管理系统源代码+论文
经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。
系统页面采用框架来设计,不同的用户有不同的功能菜单,但都有统一的风格,这给页面的使用和维护都带来了很大的便利,特别是在代码重用方面起了很大作用。本系统各用户的页面设计如图4-1所示:
1.Banner区——可以在此展示系统标识、页面归属等信息。
2.功能菜单区——提供系统可供操作的功能列表。
4.页面主体区——显示页面格式化数据页面主体区显示的内容,将依据页面在系统中的作用而定。
5.Bottom区——可设计为显示系统所有权等信息。
根据系统功能的要求,高校学生考勤管理系统各个模块之间的层次结构如图4-2所示:
本高校学生考勤管理系统分成三大功能模块来实现,本人主要负责:请假系统、考勤系统两大功能模块,涉及前五大类用户:学生、班主任、任课老师、院系领导、学校领导。后台管理功能模块,即系统管理员的功能由同组的同学来实现。
总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。其任务就是把解法具体化,也就是回答下面这个关键的问题:“应该怎样具体地实现这个系统呢?”,通过详细设计应该得出对目标系统的精确描述,给出各个模块的详细过程性描述。从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
用户登陆时操作页面如图6-1所示:
部分代码:
chuser.jsp
……
<%
request.setCharacterEncoding("GBK");
username=request.getParameter("username");
password=request.getParameter("password");
Type=(String)request.getParameter("type");
char userType=Type.charAt(0);
if(username==null || password==null || username.equals("") ||password.equals("")){
out.println("<center>");
out.println("<h1>用户名或密码输入非法!请返回重新输入!</h1><br><br>");
out.println("<a href=javascript:history.back()>返回</a>");
out.println("</center>");
return;
}
switch(userType){
case '1' : {sql="select * from stu_user where stu_id='"+username;
sql+="' and stu_password='"+password+"'";
rs=conn.executeQuery(sql);
if(rs.next()){
session.setAttribute("userType",Type);
session.setAttribute("userName",username);
session.setMaxInactiveInterval(60*60*24);
response.sendRedirect("/kaoqin/student/student.jsp");
}else{
out.println("<center>");
out.println("<h1>用户名或密码不正确</h1><br><br>");
out.println("<a href=javascript:history.back()>返回</a>");
out.println("</center>");
}
conn.close();
break;
}
…………
%>
各页面身份验证代码:如check_stu.jsp
<%
if(session.getAttribute("userType")!=null && !session.getAttribute("userType").equals("")){
String userType=(String)session.getAttribute("userType");
if(!userType.equals("1"))
response.sendRedirect("/kaoqin/public/error_user.jsp");
}else{
response.sendRedirect("/kaoqin/public/error_log.jsp");
}
%>
只要在所有的学生用户页面中加入上面的代码后,用户必须先登陆后才能打开网页,且不能绕过身份验证。同样的页面对应各用户还有check_class_teacher.jsp等
根据系统详细设计,学生用户操作页面如图6-2所示:
请假功能的实现的程序流程图如图6-3所示:
说明:T 表示班主任对请假审批结果。默认值:0
C 表示院系领导对请假审批结果。默认值:0
N 表示学生请假天数。默认值:0
T、C的值为:0、等待审批。 1、同意请假。2、不同意请假。
功能实现部分代码:
package qingjia;
public class QJ_Record{
public int day_number=0;
public int class_teacher_status=0;
public int college_leader_status=0;
public QJ_Record(int T,int C,int N){
this.class_teacher_status=T;
this.college_leader_status=C;
this.day_number=N;
}
}
package qingjia;
public class QingJia{
public int judge(QJ_Record record){ //对请假记录进行判断,返回值为1:请假成功;
int T=record.class_teacher_status; //返回值为0:等审批的请假。返回值为-1:失败的请假
int C=record.college_leader_status;
int N=record.day_number;
int result=0;
if(T==0&&C==0)
result=0;
if(T==2&&C==0)
result=-1;
if(T==1&&C==0)
if(N>=1&&N<4)
result=1;
if(T==1&&N>=4)
if(C==0)
result=0;
else if(C==1)
result=1;
else
result=-1;
return result;
}
}
版权所有© 帮我毕业网 并保留所有权利