请假系统文档.docx
- 文档编号:15568702
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:16
- 大小:530.58KB
请假系统文档.docx
《请假系统文档.docx》由会员分享,可在线阅读,更多相关《请假系统文档.docx(16页珍藏版)》请在冰点文库上搜索。
请假系统文档
《开源框架技术》
案例报告书
题目
在线请假系统
学生姓名
学号
指导教师
系部
专业班级
时间
1.需求分析
现在Internet上随处可见网上商城、网上等网站,让消费者足不出户就可购买到想到的商品,不仅方便了消费者,也让拥有电子商务网站的企业能及时向广大客户推销产品、构建企业形象、赢得利润。
电子商务系统与传统的面对面的营销方式相比,具有不可比拟的优势,如销售成本与物流大大降低、信息传输及时等。
为适应电子商务发展的要求,决定建设一个网上书店系统,实现在网上销售书藉。
1.1系统用户
使用在线请假系统的用户主要有两种:
一种是学生,可以通过系统请假、修改未审批的请假单、查看已审批的请假单并打印请假单信息、查看请假记录;另一种是老师,可以通过请假系统审批学生请假、查看所有学生的请假记录。
1.2系统功能需求
用户即学生或老师登录在线请假系统之后,可以进行相应的操作。
学生可以通过系统请假、修改未审批的请假单、查看已审批的请假单并打印请假单信息、查看请假记录。
老师可以通过请假系统审批学生请假、查看所有学生的请假记录。
2.概要设计
2.1用户登录
用户登录时,系统会对用户的身份进行验证,以用户名和密码以及权限值为标准验证,当用户名和密码都匹配且权限值为0时,登录到老师登录主界面,当用户名和密码都匹配且权限值为1时,登录到学生登录主界面,
2.2学生操作管理
当学生登录成功之后,将可以请假。
首先,学生按照给出的格式填写好申请。
然后系统会根据审批流程递交给老师惊醒审批,申请被存入数据库中,默认状态为“未审批”。
此外,学生还可以在老师未审批之前对请假单进行修改。
老师审批完请假但之后,学生可以查看请假单,并且打印请假单。
2.3老师操作管理
对应着学生请假请求,老师应该完成对学生请假的审批,审批结果可以使同意或不同意。
在审批时,是通过修改请假单的状态,由“未审批”修改为“同意”或“不同意”来完成的。
此外,作为管理学生的人员,老师还可以查看学生的请假记录。
3.界面展示与知识点解析
登录页面:
登录页面通过用户名、密码、权限的匹配来控制,当权限power值为1时,为老师登录;为1时,为学生登录。
当用户输入用户名密码之后,会从数据库里匹配,寻找用户名和密码一致的用户,之后再通过该用户的power值来判断用户的身份。
部分核心代码:
Action
UserDaouserdao=newUserDao(con);
Useruser=userdao.selectByUserNamePassWord(username,password);if(user.getUsername().equals(username)&&user.getPassword().equals(password)&&user.getPower().equals("1")){
return"studentsuccess";
}elseif(user.getUsername().equals(username)&&user.getPassword().equals(password)&&user.getPower().equals("0")){
return"teachersuccess";
}else{
return"fail";}
Dao:
publicUserselectByUserNamePassWord(Stringusername,Stringpassword)throwsException{
Connectioncon=DBConn.getConnection();
Stringsql="select*fromuserinfowhereusername=?
andpassword=?
";
pstmt=con.prepareStatement(sql);
pstmt.setString(1,username);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
Useruser=newUser();
if(rs.next()){
user.setUsername(rs.getString("username").trim());
user.setPassword(rs.getString("password").trim());
user.setClassmate(rs.getString("classmate").trim());
user.setPower(rs.getString("power").trim());
}
DBConn.closeAll(pstmt,rs);
returnuser;
}
学生登录主页面:
左侧为选择栏,右侧填写请假单,其中姓名为只读的,即:
学生请假时,姓名不用自己填写,避免了填错姓名,造成为别人请假的情况,请假日期,用的是javascript。
部分代码如下:
请假时间:
--定义开始时间以及其表示-->
--参数maxlength:
输入框中允许输入字符的最大数。
-->
从
--定义结束时间以及其表示-->
到
点击左侧全部请假单信息,右侧会显示该学生的全部请假信息,请假单信息可以是审批通过的、审批为通过的和未审批的。
部分代码如下:
Action
publicStringmylist()throwsException{
Connectioncon=DBConn.getConnection();
MyListDaomylistDao=newMyListDao(con);
list=(List
HttpServletRequestrequest=ServletActionContext.getRequest();
request.setAttribute("list",list);
return"success";
}
Dao
publicList
Stringsql="select*fromcontentwhereusername='"+username+"'";
List
try{
pstmt=con.prepareStatement(sql);
rs=pstmt.executeQuery();
list=newArrayList
while(rs.next()){
Askask=newAsk();
ask.setId(rs.getInt("id"));
ask.setUsername(rs.getString("username"));
ask.setClassmate(rs.getString("classmate"));
ask.setStartdate(rs.getString("startdate"));
ask.setEnddate(rs.getString("enddate"));
ask.setReason(rs.getString("reason"));
ask.setState(rs.getString("state"));
list.add(ask);
}
}catch(Exceptione){
e.printStackTrace();
}returnlist;
}
Jsp页面
iteratorvalue="#request.list"id="ask"> propertyvalue="username"/> propertyvalue="startdate"/> propertyvalue="enddate"/> propertyvalue="reason"/> propertyvalue="state"/>
iterator>
点击左侧待审批请假单,右侧会显示该学生的未被审批的请假信息,学生可以在老师未审批之前删除请假单。
删除请假单之前,会弹出确认框,点击确定时该记录会被删除,取消时,不会删除。
点击左侧已审批请假单,右侧会显示该学生的被审批的请假信息,学生可以通过查看detail来查看请假单信息,并打印。
部分代码如下:
propertyvalue="id"/>"> 打印请假单页面: 关键代码如下: iteratorvalue="#request.list"id="ask">请假单
姓名:
propertyvalue="username"/>"readonly="readonly"/>
请假时间:
从 propertyvalue="startdate"/>"size="20"maxlength="10"readonly="readonly"> 到 propertyvalue="startdate"/>"size="20"maxlength="10"readonly="readonly"> 请假理由: propertyvalue="reason"/> 老师意见: propertyvalue="state"/>"readonly="readonly"/> iterator> 老师登录成功主页面: 左侧为选择项: 分别有全部请假单、未审批请假单、已审批的请假单。 右侧为全部请假单信息。 在操作栏里,老师可以执行同意或不同意操作。 Jsp页面: propertyvalue="id"/>"> propertyvalue="id"/>"> Action publicStringlist()throwsException{ Connectioncon=DBConn.getConnection(); ListDaolistDao=newListDao(con); list=(List request.setAttribute("list",list); return"success"; } Dao Stringsql="select*fromcontent"; List try{ pstmt=con.prepareStatement(sql); rs=pstmt.executeQuery(); list=newArrayList while(rs.next()){ Askask=newAsk(); ask.setId(rs.getInt("id")); ask.setUsername(rs.getString("username")); ask.setClassmate(rs.getString("classmate")); ask.setStartdate(rs.getString("startdate")); ask.setEnddate(rs.getString("enddate")); ask.setReason(rs.getString("reason")); ask.setState(rs.getString("state")); list.add(ask); 未审批请假单页面: 左侧为选择项: 分别有全部请假单、未审批请假单、已审批的请假单。 右侧为未审批请假单信息。 在操作栏里,老师可以执行同意或不同意操作,此操作可以减轻老师的审批负担。 代码如下: publicList Stringsql="select*fromcontentwherestate='未审批'"; List try{ pstmt=con.prepareStatement(sql); rs=pstmt.executeQuery(); list=newArrayList while(rs.next()){ Askask=newAsk(); ask.setId(rs.getInt("id")); ask.setUsername(rs.getString("username")); ask.setClassmate(rs.getString("classmate")); ask.setStartdate(rs.getString("startdate")); ask.setEnddate(rs.getString("enddate")); ask.setReason(rs.getString("reason")); ask.setState(rs.getString("state")); list.add(ask); } }catch(Exceptione){ e.printStackTrace(); } returnlist; } 已审批请假单页面: 左侧为选择项: 分别有全部请假单、未审批请假单、已审批的请假单。 右侧为已审批请假单信息,在这一栏目,老师可以查看全部学生的请假历史记录。 退出: 通过javascript控制,当用户点击退出时,弹出确认框,当用户选择确定时,退出系统;当用户选择取消时,不退出系统。 部分代码如下: 4.心得体会 本次的设计是基于struts2开发的在线请假系统,与以往设计不同的是,这次我在程序源代码是实现了模块化,使得每一个功能既能相互独立又能相互关联,方便日后的维护以及修改。 本在线请假系统整体来说并不是很完善,实现主要功能,但还有些功能未能实现,课下在时间的允许下我会继续完善相关的功能。 在本次做实践设计的过程中,使我深深的了解到自己的不足,有很多东西还有待去了解和学习。 刚开始做设计时,我深受以前做课程设计的想法干扰,无从下手,后来慢慢摸索,参考老师带着做的部分,上网查找诸多资料,最终把设计完成了。 在制作设计期间,虽然花了诸多功夫在上边,但还有诸多的功能还不够完善,只是实现了一些基本的功能。 虽然此次的网站设计有诸多坎坷,但我并没有被吓到。 碰到问题我都XX查找资料,通过此次的课程设计,使我受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 请假 系统 文档