基于java学生考勤管理系统

上传人:good****022 文档编号:116774849 上传时间:2022-07-06 格式:DOC 页数:41 大小:710.50KB
返回 下载 相关 举报
基于java学生考勤管理系统_第1页
第1页 / 共41页
基于java学生考勤管理系统_第2页
第2页 / 共41页
基于java学生考勤管理系统_第3页
第3页 / 共41页
点击查看更多>>
资源描述
基于基于 javajava 的学生考勤信息管理系统设计的学生考勤信息管理系统设计 摘摘 要要 学生考勤信息管理系统用于实现学校对在校学生的考勤信息的管理,是典型的管理 信息系统。学生考勤信息的手工登记查询,是一项非常繁重而枯燥的劳动。在计算机技 师飞速发展的今天,应用数据库技术实现学生考勤信息统计的管理是行之有效的。 本文系统地介绍了一个基于 java 的学生考勤信息管理系统,论述了一个基于 java 的 B/S 考勤信息管理系统的设计原理、设计思想及具体的实现过程,对部分架构及设计 思想和设计过程作了详细阐述。系统具有师生个人信息管理、请假、增删师生信息等功 能,信息管理模块、考勤管理模块和考勤系统模块。 本系统开发主要包括后台数据库的建立以及前端应用程序的开发两部分。其一要求 建立起的数据库具有完整性和一致性,并具有一定的数据安全性;其二要求程序界面友 好、功能完备,通俗易懂。本次发采用 HTML、JSP、JS、STRUCTS1、SQL Server 2005 数 据库等技术。本文着重讨论了用 JSP 技术和 SQL Server 2005 开发考勤管理系统时的数 据库访问技术和动态网页制作技术,并给出了部分实现代码。 关键词:关键词:考勤信息管理系统;java ;B/S ;SQL server Based on java DBUnit dbUnit = new DBUnit(SQL_CLASSNAME, SQL_URL, SQL_USERNAME, SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(status); list.add(note); list.add(new Date(); list.add(tname); list.add(qjid); 6.6.4 4 考勤录入考勤录入 (1)程序描述 该模块是系统的目的所在,是非常重要的一个模块。 (2) 功能 表 6-4 考勤录入功能表 程序名称考勤录入 相关数据库表attendance 输入考勤信息(学号、课程号、时间、节次) 、考勤状态 输出将个人选课情况显示 程序处理说明1 输入时间信息、课程信息 2 验证课程是否已考勤 3 将该记录插入数据库 (3)程序流程图 结束 查看学生信息 开始 判断节次是否已考核 N Y 把选课信息添加到选课表 录入考勤信息 图 6-4 课程考勤程序流程图 (4)测试计划 1)选择班级时,则显示该班级所有学生。 2)当考勤已进行,则显示该节课已考勤。 3)当学生考勤状态为旷课,则显示旷课状态 (5)关键代码 String sql = “SELECT * FROM CA_STATUS WHERE SHIJIAN = ? AND JIECI = ? and zy=?“; result=dbUnit.batchUpdateAutoClose(conn,“insertintoattendance(sno,cno,shijian,jieci,s tatues) values(?,?,?,?,?)“, list); result=dbUnit.updateAutoClose(“insert into CA_STATUS(shijian,jieci,zy,bj) values(?,?,?,?)“, list1); 6.6.5 5 考勤修改考勤修改 (1)程序描述 该模块扩大了考勤的灵活度。 (2) 功能 表 6-5 考勤信息修改功能表 程序名称学生考勤情况、考核表 相关数据库表attendance、ca_status 输入考勤信息(学号、课程号、时间、节次、考勤) 、修改状态 输出将个人选课情况显示 程序处理说明1 输入时间信息、班级信息 2 验证该节次是否已进行考核 3 将该记录插入数据库 (3)程序流程图 结束 开始 是否已考勤 N Y 修改学生考勤信息 选择班级、节次 图 6-5 考勤信息修改程序流程图 (4)测试计划 1)当学生为旷课专题,则显示旷课。 2)当该节次未进行考核,则可以提示未进行考勤。 (5)关键代码 String sql = “SELECT * FROM CA_STATUS WHERE SHIJIAN = ? AND JIECI = ? and zy=?“; result = dbUnit.batchUpdateAutoClose(conn, “delete from attendance where sno = ? and cno = ? and shijian = ? and jieci = ? and ?0“, list); result = dbUnit.batchUpdateAutoClose(conn, “insert into attendance(sno,cno,shijian,jieci,statues) values(?,?,?,?,?)“, list); 7 7 系统维护与测试系统维护与测试 7.17.1 系统的维护系统的维护 系统维护的目的是保证考勤信息管理系统正常而可靠地运行,并能使系统不断得到 改善和提高,以充分发挥作用。换言之,系统维护就是为了保证系统中的各个要素随着 环境的变化始终处于最新的、正确的工作状态。系统维护的工作量往往是很大的,其费 用大约占整个生命周期的 60%,所以我们必须对系统维护给予足够的重视。 1、系统维护的内容 按照系统维护对象的不同,系统维护的内容可分为以下几类: (1)系统应用程序维护 (2)数据维护 (3)代码维护 (4)硬件设备维护 2、系统维护的类型 系统维护的重点是系统应用软件的维护工作,按照软件维护的不同性质,可以划分 为下面四种类型: (1)纠错性维护 诊断和修正系统中遗留的错误。 (2)适应性维护 使系统适用环境的变化而进行的维护。 (3)完善性维护 为满足用户的需求而进行的维护。 (4)预防性维护 为将要发生的变化或调整而进行的主动性维护。 3、系统维护的组织与管理 系统维护工作,首先必须建立一个维护组织,确定进行维护工作所应遵循的原则和 规范化的过程,此外还应建立一套适用于具体系统维护过程的文档及管理措施,以及进 行复审的标准。 7.27.2 系统测试系统测试 在 java 开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避 免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入运行, 将会造成难以想象的后果,因此系统测试是开发过程中为保证软件质量必须进行的工作。 大量统计资料表明,系统测试的工作量往往占开发总工作量的 40%以上。因此,我们必 须重视测试工作。 由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某 些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有 发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计 最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价 和时间找出软件系统中潜在的错误和缺陷。 从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功 能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认 测试等。测试对象是随着阶段而异的,最基本、最初的测试是单元测试,后面的组合测 试、确认测试都是以被测过的模块作为测试对象的。 在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用 例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测 试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中 测试容易出错的程序模块;对程序修改以后,必须重新进行测试。 在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试, 采取的方式是: (1)菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相 关的基础数据,基本上全部输入到本系统中,并对每一个菜单项多次进行了增加、删除、 修改等操作,从而保证了菜单功能的正确实现。 (2)数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。经过 实践证实,说明该功能完全正常,对其它的功能模块也进行了类似的设置。 (3)综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次检验系统 功能是否符合系统设计的要求。 结结 论论 本论文详述了基于 java 的 B/S 学生考勤信息系统设计与实现的整个开发流程,本设 计是对本人在大学四年所学知识的综合考验,在开发过程中,本人对软件开发的认识有 了进一步的提高,对软件应用程序开发流程有了深刻地了解,这些都在我以后的学习工 作中有了很大的帮助。 系统的制作已经完成了。虽然它没有投入到学校的选课系统中,但是它的功能是完 全可以实现简单的选课,同时操作性强,具有人性化。 这过程真的不容易,特别是在遇到一个问题的时候,真的会让人无时无刻都在想着 那个问题的解决方法,无形中减少了很多的自由时间,但是每当把问题解决的时候,就 会觉得所有的一切都是值得的。特别是在需求分析的阶段很多时候都没有考虑完整,导 致我到后面要改很多。所以一定要先分析清楚想好需求,否则会做很多的无用功。在这 里我将系统设计做如下总结: 系统完成情况: 本系统的功能已经达到设计的要求。系统中各个模块的功能均已实现,为整体系 统的构建奠定了基础。 系统中模块划分明确,模块功能设计有较强的针对性。 系统的设计遵循软件开发的全过程,使我对软件系统的开发过程有了更深刻的认 识和了解。 系统不足之处: 系统中整个背景样式还可以做的更加动感,更加美观,在这方面的学习还有待加 强。 系统中老师考勤的时候需要手动选择课程,以后可以考虑把科目跟教师绑定。可 以更方便的进行考勤。 系统只局限于计算机系,没有涉及其他系,这样只能系部管理,如果可以把全校 的专业系别都加入,校部进行管理,这样会更加方便学校进行管理。 系统中考勤统计如果以图表方式展现会更直观。 考勤管理系统到这里才告一个段落,还不仅仅是到此就结束了,以后还有很多的功 能要添加进来,到后面还要添加志愿管理,全校专业的管理等等功能,对于一个专业的 考勤管理软件,仅仅只有这些功能还是不够的。 在出去实习之前,JS 对于我来说还是一个非常陌生的东西,从我进入软件编程这一 行到我去学用 JS 来编程,同时辅助 JSP 来编程,整个过程是很有收获的。在这整个过程 当中我有很多很深刻的体会,同时也学到了非常多的东西。 就本次的毕业设计而言,在学到了新的东西的同时,也发现了大量的问题,在慢慢 解决这些问题的时候,我学到的东西是最多的。以后继续走编程这条路碰到的问题还会 更多,但同时也会有更多的收获。 虽然这次的设计还有有缺陷,但是它是我一个人独立完成,很大的增强了我的自信 心,同时使我更加坚定了编程这条路。 参考文献参考文献 1 赵卓君:java 程序设计基础教程.北京:清华大学出版社,2010 2 闪四清.SQL Server 实用简明教程M.清华大学出版社,2005 3 杨学瑜,王志军,刘同利.JSP 入门与提高M.清华大学出版社,2002 4 廖望,何俊,谢春旺,钟永生,黄智诚.SQL Server 2000 案例教程M.冶金工业出版社,2004. 5 Java 基础教程(从问题分析到程序设计).马里克、莱欧著,郭平译.北京:清华大学出版社, 2004.10 6 连洪武.Eclipse Web 开发从入门到精通M.清华大学出版社,2007.6 7 耿祥义,张跃平.JSP 实用教程(第 2 版)M.清华大学出版社,2007.10 8 萨师煊,数据库系统概述 . 高等教育出版社 . 2006.5 9 李雁领:数据库技术及应用 M,高等教育出版社, 200 谢谢 辞辞 本次的毕业课题设计是我大学生活中经历的又一段忙碌而充实的时光。在将近三个 月的时间里,我学到了很多的东西,不仅掌握到了更多的理论知识,扩展了知识面,提 高了自己的实际操作能力,而且学会了如何去学习新的知识,学会了面对困难和挑战, 学会了团结合作,互帮互助。借此论文之际,向所有帮助、关心、支持我的老师、朋友 同学,表达最真诚的谢意。 首先感谢北京理工大学珠海学院四年来对我的培养与教导,同时也感谢计算机学院 的项目团队,在加入项目团队以来,我在项目实践方面得到锻炼,积累了丰富的知识, 培养了严谨的逻辑思考能力,专业能力进一步提高,动手实践能力也得到进一步提高, 这也为我今天的毕业设计的完成奠定了扎实的基础。 本论文是在胡敬朋老师的耐心指导下完成的。在此,我对他的耐心指导和帮助表达 我最真诚的谢意,感谢他在这几个月来为我们的毕业设计所付出的努力。在这段时间里, 我从他身上,不仅学到了许多的专业知识,更感受到了他工作中的兢兢业业,生活中的 平易近人和教学中的热情豪迈,让我学到了很多在课本上没有学到的知识。 毕业设计项目的顺利完成,离不开各位老师和同学的支持和帮助,同时也离不开我 的实习公司东信和平,在整个本设计开展过程中,我感谢他们问我的毕业设计提出了宝 贵的建议和意见,使我的设计得到进一步的完善并最终得以完成,在此,我再次向他们 表示真挚的谢意。另外还要感谢我的父母,为我的学业提供了物质和精神,没有他们的 付出,就没有今天的我。 总之,在以后的学习、工作、生活中我将更加努力,用自己的行动回报社会、父母、 学校、老师及同学。最后感谢关心和帮助过作者的所有老师与同学。并向参与此次答辩 的老师致以谢意。 附附 录录 附录 1 程序源代码 /=登录=/ /* * 是否登录成功,并返回用户类型 * * param uid * 用户名 * param password * 密码 * return * throws Exception */ public User isLoginSuccess(String uid,String password) throws Exception User user = null; if(uid=null|password=null) ; else DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(uid); list.add(password); ResultSet res = dbUnit.queryAutoClose(“select * FROM LOGINUSER where ACCOUNT = ? and password = ?“,list); if(res.next() user = new User(); int type = res.getInt(“type“); String name = res.getString(“NAME“); user.setUid(uid); user.setType(type); user.setUsername(name); return user; /=人员信息列表=/ public List getStudent() List list = null ; String sql = “SELECT STUDENT.* ,specialty.sname as zy,classname “ + “FROM STUDENT,specialty,class “ + “WHERE specialty.SID = STUDENT.professional“ + “ and class.zyid = STUDENT.professional and class.id = student.sclass“ ; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); try ResultSet rs = dbUnit.queryAutoClose(sql); if(rs!=null) list = new ArrayList(); while(rs.next() String sno = rs.getString(“SNO“) ; String sname = rs.getString(“SNAME“); String sex = rs.getString(“SEX“); String jg = rs.getString(“birthplace“); int zyid = rs.getInt(“professional“); String zy = rs.getString(10); String tel = rs.getString(“TEL“); String email = rs.getString(“EMAIL“); String note = rs.getString(“NOTE“); String sclass = rs.getString(“classname“); Student student = new Student(); student.setBirthplace(jg); student.setEmail(email); student.setNote(note); student.setSclass(sclass); student.setSex(sex); student.setTel(tel); student.setSname(sname); student.setSno(sno); Specialty s = new Specialty(); s.setId(zyid); s.setName(zy); student.setProfessional(s); list.add(student); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally return list ; /=增加用户=/ public boolean addStudentDao(Student student) throws Exception String sql = “insert into student values(?,?,?,?,?,?,?,?,?)“ ; boolean suc = false; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(student.getSno(); list.add(student.getSname(); list.add(student.getSclass(); list.add(student.getSex(); list.add(student.getBirthplace(); list.add(student.getTel(); list.add(student.getProfessional().getId(); list.add(student.getEmail(); list.add(student.getNote(); if(dbUnit.updateAutoClose(sql,list) suc=true; sql = “INSERT INTO LOGINUSER(ACCOUNT,PASSWORD,NAME,TYPE) VALUES(?,?,?,?)“ ; ArrayList list1 = new ArrayList(); list1.add(student.getSno(); list1.add(student.getSno(); list1.add(student.getSname(); list1.add(5); dbUnit.updateAutoClose(sql,list1); return suc; /=用户修改=/ public boolean updateStudentDao(Student student) throws Exception String sql = “update student set sname= ?, sclass = ?, sex = ?, birthplace = ?, tel = ?, professional = ?, email = ?, note = ? where sno = ?“ ; boolean suc = false; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(student.getSname(); list.add(student.getSclass(); list.add(student.getSex(); list.add(student.getBirthplace(); list.add(student.getTel(); list.add(student.getProfessional().getId(); list.add(student.getEmail(); list.add(student.getNote(); System.out.println(“-“+student.getSno(); list.add(student.getSno(); if(dbUnit.updateAutoClose(sql,list) suc=true; return suc; /=用户删除=/ public boolean deleteStudentDao(String sno) throws Exception String sql = “delete from student where sno = ?“ ; boolean suc = false; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(sno); if(dbUnit.updateAutoClose(sql,list) suc=true; System.out.println(suc+“222“); return suc; /=请假列表=/ public List getQjxxByTeacher(String tno) List qjxxList = null ; ArrayList list = new ArrayList(); boolean result = false ; list.add(tno); String sql = “SELECT b.id,A.SNO,A.SNAME,B.BEGINDATE,B.BEGINJC,B.ENDDATE,B.ENDJC,B.REASON,B.STATUES,B .APPTIME“+ “ FROM STUDENT A,QJMX B,TEACHER C“+ “ WHERE A.SNO = B.SNO AND C.professional = A.professional“+ “ AND A.SCLASS = C.CLASS AND C.TNO = ?“; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); ResultSet res; try res = dbUnit.queryAutoClose(sql,list); if(res!=null res.previous(); while(res.next() QjxxBean qjxx = new QjxxBean(); String id = res.getString(“id“); String sno = res.getString(“sno“); String sname = res.getString(“sname“); String kssj = res.getString(“BEGINDATE“); String ksjc = res.getString(“BEGINJC“); String jssj = res.getString(“ENDDATE“); String jsjc = res.getString(“ENDJC“); String content = res.getString(“REASON“); int zt = res.getInt(“STATUES“); String sqsj = res.getString(“APPTIME“); Student student = new Student(); student.setSno(sno); student.setSname(sname); qjxx.setId(id); qjxx.setBeginDate(kssj); qjxx.setBeginJC(ksjc); qjxx.setEndDate(jssj); qjxx.setEndJC(jsjc); qjxx.setContent(content); qjxx.setStatus(zt); qjxx.setSqsj(sqsj); qjxx.setStudent(student); qjxxList.add(qjxx); catch (Exception e) / TODO Auto-generated catch block e.printStackTrace(); finally return qjxxList ; /=请假申请=/ public boolean qjAppl(String beginDate,String beginJC,String endDate,String endJC,String content,String sno) boolean res = false; String sql = “insert into qjmx(sno,begindate,beginjc,enddate,endjc,reason,statues,apptime) VALUES (?,?,?,?,?,?,0,?)“; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME, SQL_URL, SQL_USERNAME, SQL_PASSWORD); try ArrayList al = new ArrayList(); al.add(sno); al.add(beginDate); al.add(beginJC); al.add(endDate); al.add(endJC); al.add(content); al.add(new Date(); dbUnit.updateAutoClose(sql, al); / res = true; catch (Exception e) e.printStackTrace(); finally return res; /=请假审批=/ public void updateQjxxsp(int status,String note,String qjid,String tname) String sql = “UPDATE qjmx SET statues = ? ,note = ? ,sptime = ?,spz = ? WHERE id = ?“; DBUnit dbUnit = new DBUnit(SQL_CLASSNAME, SQL_URL, SQL_USERNAME, SQL_PASSWORD); ArrayList list = new ArrayList(); list.add(status); list.add(note); list.add(new Date(); list.add(tname); list.add(qjid); try dbUnit.updateAutoClose(sql, list); catch (Exception e) e.printStackTrace(); /=考勤=/ public boolean addKqxx(String sj,String jc,String zy,String bj,String kc,Map khxx) throws Exception boolean iskq = isKCKq(sj,jc,zy,bj); if(iskq=false) DBUnit dbUnit = new DBUnit(SQL_CLASSNAME,SQL_URL,SQL_USERNAME,SQL_PASSWORD); boolean result = true; Set set =khxx.entrySet(); Iterator it=set.iterator(); ArrayList list = new ArrayList(); ArrayList list1 = new ArrayList(); list1.add(sj); list1.add(jc); list1.add(zy); list1.add(bj); while(it.hasNext() ArrayList sub = new ArrayList(); Map.Entry entry= (Entry) it.next(); String sno = entry.getKey() ; String sta = entry.getValue(); sub.add(sno); sub.add(kc); sub.add(sj); sub.add(jc); sub.add(sta); list.add(sub); Connection conn = dbUnit.getConnetion(); try result = dbUnit.batchUpdateAutoClose(conn, “insert into attendance(sno,cno,shijian,jieci,statues) values(?,?,?,?,?)“, list); result = dbUnit.updateAutoClose(“insert into CA_STATUS(shijian,jieci,zy,bj) values(?,?,?,?)“, list1); catch (Exception e) System.err.println(“插入考勤情况失败“); e.printStackTrace(); return result; else return false;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 会计考试


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!