1、海 南 师 范 大 学本 科 生 毕 业 论 文题目:基于J2EE的高职院校实习管理系统姓 名: 甘添 学 号: 201106030110 专 业:电子信息科学与技术年 级: 2011级 院 别:物理与电子工程学院完成日期: 2015年4月 指导老师: 刘汉军(讲师) 本科生毕业论文(设计)独创性声明本人声明所呈交的毕业论文(设计)是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为 。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文(设计)作者签名: 日期: 本科生毕业论文(设计)
2、使用授权声明海南师范大学有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权海南师范大学可以将本毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文(设计)。论文(设计)作者签名: 日期: 指 导 教 师 签 名: 日期: 基于J2EE的高职院校实习管理系统作者:甘添 指导教师:刘汉军 讲师 (海南师范大学电子系,海口,571158)摘 要:实习,是指把学到的理论知识拿到实际工作中去应用,以锻炼工作能力。在当今这样一个飞速发展的信息化时代中,实习更是毕业生从校园走向社会,走向工作岗位的
3、关键步骤。实习的作用既有验证自己的职业抉择,了解目标工作内容,提高自己的学习能力、团队协作能力,还可以找到自身的职业差距,更好的为自己提供一个锻炼的机会。这对大学生就业有着很大的促进作用,也是解决培养“适应型”人才主要方法之一。而现如今在这个信息技术飞速发展的时代中,专门为高职院校设计的学生实习管理信息系统还很少,有些甚至仅仅停留在信息发布或用一些简单的办公软件来记录学生实习的基本情况的层面上。而且,还有更多的学生与学校联系不畅,根本无法实现对学生实习情况的动态更新。这些现象都一一的告诉我们,开发符合当今时代的、高效的、基于信息化技术的实习管理系统已经成为必然之行。本系统基于J2EE技术,以e
4、clipse为开发工具,SSH(Struts+String+Hibernate)为开发框架,数据库采用MySQL,实现了学生与指导教师零距离交互,学生查看浏览信息,上传实习手册,咨询问题,指导教师评估实习作业,以及指导老师设置学生成绩,实现了实习管理的整合和角色权限管理等功能,为学生的实习管理提供了一个信息化的管理平台。关键词:实习、管理系统、JAVA、MYSQL、SSH Chinese-English bilingual parallel corpus system Based on J2EEAuthor:Gan Tian Tutor: Instructor Liu Han Jun(Depa
5、rtment of Electronics, Hainan Normal University, Haikou, 571158)Abstract: Practice, it is to point to to learn the theoretical knowledge to the practical work, to exercise the ability to work. In todays such a rapidly developing information era, the internship is graduate from school to society, to
6、the key step in the job. Practice the role of both validate their career choices, understand the target work content, improve their learning ability, team cooperation ability, can also find their own career gap, better to provide a chance to exercise themselves. This has a great role in promoting, f
7、or university students employment is one of the main adaptive talent cultivation solution. Now in this era of rapid development of information technology, specially designed for higher vocational colleges students practice management information system also rarely, some even just stay on the informa
8、tion or use a few simple office software to record the level of the basic situation of the students. And there are more students to contact the school, cant realize the dynamic update the situation of students internship. All these phenomenon tells us that the development conforms to The Times, the
9、highly effective, practice management system based on information technology has become the inevitable trip.This system based on J2EE technology, based on eclipse development tools, SSH (Struts + String + Hibernate) framework for development, database using MySQL, realizing the zero distance interac
10、tion between students and teachers, students view the browsing information, upload practice handbook, consulting, guiding teacher evaluation laboratory assignments, as well as to guide the teachers set the student achievement, realized the integration of practice management and role authorization ma
11、nagement, and other functions, for students to practice management provides an information management platform.Key words: bilingual、parallel corpus system、JAVA、MYSQL、XML目 录1. 引言21.1、实习管理系统设计背景21.2、实习管理系统设计目的和意义21.3、实习管理系统设计的目标32. 相关技术介绍32.1基于B/S结构技术的应用32.2开发语言以及开发工具的选择42.3数据库MySQL技术42.4 MVC设计模式42.5
12、三大框架Struts+Spring+ Hibernate43. 系统整体分析53.1系统的可行性分析5 3.2系统的功能需求分析6 3.3 功能流程图分析74. 主要功能模块设计74.1学生功能模块的设计74.2学校评估老师模块的设计8 4.3 系统管理员功能模块的设计95. 系统数据库的设计95.1数据库设计的原则95.2 数据库设计流程9 5.3 数据库表的设计105.4 本章小结106. 系统各模块功能实现116.1 系统支撑与运行环境116.2系统部分功能实现126.2.1系统对管理员用户页面实现136.2.2 系统对学生用户页面的实现136.2.3 系统对校内指导老师用户页面的实现1
13、46.2.4 系统对管理员提供功能的实现146.2.4 系统对学生提供功能的实现156.2.4 系统对校内指导老师提供功能的实现156.3 本章小结167. 部分功能及实现代码187.1 187.2 19 7.38. 总结与展望218.1 总结228.2 展望22致谢及心得22参考文献:22基于J2EE的中小学学生成绩分析系统作者:汪超武 指导老师:刘汉军老师 讲师(海南师范大学物理与电子工程学院,海口,571158)摘 要:随着中国教育领域信息化的快速发展,教学信息化已成为各个中小学学校追求的目标。本系统依据各中小学校对于学生学习成绩分析、管理的各项需求,对其各项指标进行精细化设计,从学校年
14、级、班级、个人角度对成绩进行多口径、多维度分析,使其分析各项指标多样化、实用化,能有效帮助学校减轻工作量并对学校学生学习状况、老师教学质量有全面细致的了解。系统整体使用B/S结构,以JAVA作为开发语言,Eclipse作为主要开发工具,服务器端以Tomcat作为容器,使用MySQL作为系统数据库对学生成绩信息进行存储,后台的框架,功能模块的连接运用了MVC框架Struts+Spring+ Hibernate。本论文主要从学生基础数据表的设计,数据的处理以及各项成绩指标分析结果等几个方面进行介绍。关键词:中小学;学生成绩;分析;J2EE;JAVA;MVCAnalysis System for M
15、iddle and Primary School Student Achievement Base on the J2EEAuthor:Wang Chaowu Tutor: Instructor Liu Hanjun(Department of Electronics, Hainan Normal University, Haikou, 571158)Abstract: With the rapid development of information technology in education field in China, teaching information technology
16、 has become the goal of each middle and primary school. The system is based on the needs of middle and primary schools for student achievement analysis, management, to fine design for the various indicators, from school grades, classes, personal perspective on the results of multi-caliber, multi-dim
17、ensional analysis, so the indicators diversification, practical, can effectively help reduce the workload of school and we can have a comprehensive and detail understanding of the school students learning situation, the quality of teacher teaching . Overall system using B / S structure , JAVA as a d
18、evelopment language, Eclipse as the primary development tool, the server with Tomcat as the container, using the MySQL database to store student achievement information, background frame design, functional modules using the MVC framework Struts + Spring + Hibernate. This paper introduces students to
19、 the basic data from several aspects of table design, processing, and various indicators of achievement data and other algorithms.Keywords: middle and primary school; student achievement; analysis; J2EE; JAVA; MVC1. 引言1.1、学生成绩分析系统设计背景计算机的发明使人类进入高速高效的信息时代。进入21世纪,人类信息化进程发展越来越迅猛,生活的各个角落充满了信息化的影子。使用计算机对
20、各项信息进行控制与管理,不仅提高了工作效率,而且大大的加强了其数据的安全性。尤其对于复杂、大量的信息数据,计算机相对于人工能够充分发挥它快速、高效的优越性。在教育领域面对着大量的学生、教师群体,其繁杂的数据同样面临着大量的分析、管理,此时学生考试成绩分析系统成为一个教育单位不可或缺的工具,通过分析学生分数信息得到的结果对于学校的来说都有重大参考意义,学校可以根据分析结果对学校日常的教学工作进行调整,使学校能最大化提高老师教学质量,提升学生学习效率,进而使学校学生提高学习成绩,但以往学生成绩分析对比工作一直以来都需要靠人工方式来完成,而人工分析、管理数据方式存在着许多缺点,如:效率低、错误率高,
21、此外随着时间的积累将产生大量的原始数据和分析结果,人工方式不仅查找、更新、维护困难,对历史数据的对比分析更是异常繁重。因此学生学习成绩管理信息化,成为教育领域的趋势。学生成绩分析系统提供了强大的学生考试成绩分析功能,可以方便学校对学生成绩等信息进行增加、删除、修改、查询等操作,同时可以快捷查看各项数据对比结果,对于学校教学情况能快速掌握。1.2、学生成绩分析系统设计目的和意义随着中国教育领域的高速发展,各中小学学校对于学校升学率竞争压力越来越大。而学校的日常管理工作繁杂,各项文件、资料众多,人为管理起来工作量巨大且效率极低,因此教学信息化已成为各个学校提高教学效率,提升教学质量的重要手段。其中
22、学生成绩作为学校分析、管理学校学生学习状况,老师教学质量的重要指标,对其进行精确、高效的管理显得极为重要。目前多数中小学校使用的是比较简陋、原始的学生成绩分析系统,甚至大量学校依旧使用Excel表格对学生成绩进行分析管理,这些工具仅仅只能对学生成绩进行初步处理,各种复杂分析、对比还不能高效、自动化完成。而本系统拥有各项精细指标,能对数据进行充分利用,使其分析结果符合大多数学校指标要求,能对学校的教学工作决策起到依据作用。1.3学生成绩分析系统设计的目标本系统开发主要完成以下模块:(1)对系统用户进行增删改查,并对用户进行权限控制(2)班级、老师、学生基本信息的增删改查。(3)以年级为单位,对学
23、生成绩进行分析(4)以班级为单位,对学生成绩进行分析(5)以学生个体为单位,对学生成绩进行分析(6)各项数据生成表格文件或图表数据功能:本系统主要是以学生成绩为基础进行各项指标的分析,系统需要有正删删改查基本功能,以及B值,Y值,排名,过线情况,学生分数所占等级等各项分析功能。性能:常规操作下,系统正常运行;系统稳定性好,安全,可靠2. 相关技术介绍2.1基于B/S结构技术的应用B/S结构(Browser/Server,浏览器/服务器模式),即用户可以直接使用浏览器作为客户端,连接服务器,与后台、数据库进行数据交互。这种模式相对于C/S结构(Client/Server,客户端/服务器模式),用
24、户直接使用浏览器登陆、操作系统,不再需要在个人电脑上安装登陆软件。 B/S模式统一了客户端,系统核心功能在服务器上实现,少量的逻辑数据处理放在客户端进行,这样就形成所谓三层结构,大大降低了客户端硬件需求,节约了安装、更新应用程序的时间和成本,也简化了系统的开发、维护和使用,从而降低了用户的总体成本所以相对于C/S结构,B/S模式维护和升级方式简单、方便,成本低等特点符合用于我国各中小学使用。因此本系统整体采用B/S模式。2.2开发语言以及开发工具的选择Java编程语言是一种简单、面向对象、解释型的编程语言。硬件运行环境要求不高,可移植性强,一处编译处处运行,只要安装Java运行环境,就能运行J
25、ava语言编写的系统。Eclipse 是一个免费开源的、可扩展的JAVA开发平台,拥有非常强大的编辑功能, Eclips可以通过插件进行扩展开发出你想要的任何功能,对于JAVA编程是一个非常方便、实用的开发工具。2.3 TomcatTomcat 服务器是一款轻量级的免费开源的Web 应用服务器,一般应用于并发访问不是很多,规模不是很大的网站和系统,而且Tomcat 相对于其他Web应用服务器,具有体积小,系统资源占用低,可扩展性强等特点,作为小型系统运行容器,是很好的选择。2.4 MySQLMysql与其他数据相比拥有小、快、灵等特点,其可靠性好,性能高,成本低等特点,在中小型系统中被广泛应用
26、,已经成为最流行的开源数据库。本系统使用人员数量不是很多,访问量也不大,使用Tomcat+Mysql足以应付日常访问量。2.5 三大框架Struts+Spring+ HibernateStruts是软件工程领域MVC(Model,View,Controller)设计模式的一个经典产品,其作为连接后台与前台的桥梁,起着控制程序结构流转、数据接收转发的作用。Spring是一个轻量级的开源的Java 开发框架,其主要功能IoC(控制反转)和AOP(面向切面编程)是Spring整个框架的核心,其中IoC降低了组件间的耦合性,让零散部分组成一个整体。而AOP则可以方便在方法前后加入需要执行的功能,如可以
27、在用户请求访问时对访问用户进行权限认证,可以对用户操作做日志记录等。Hibernate是一个开放源码的用于后台数据库访问的对象关系映射框架,与原始的数据库访问方式JDBC相比,Hibernate对访问数据进行了简单的封装,使得开发人员不再需要自己写不同数据库的SQL语句,也不再需要取出数据然后自己组合,使用Hibernate提供的增删改查方法,开发人员可以以面向对象思维来操作数据,且不用顾虑将来数据库不同时,SQL代码需要重写的问题。相对于另一个比较流行的半自动化关系映射框架Ibatis,使用Hibernate更智能,更自动化,能将接近于面向对象思维的HQL语句自动翻译为符合各种数据库的SQL
28、语句,但是这也带来了SQL语句优化没有Ibatis好,效率没有Ibatis高的问题,而且对于某些数据库特有的函数,Hibernate并不能使用。但对于小型系统,Hibernate足以胜任。三种框架的整合(SSH):配置struts.xml文件,配置action层的方法返回值与跳转页面,配置拦截器。配置application.xml文件使用spring的IoC功能对action层,service层,dao层进行代理,并配置事务。配置hibernate.cfg.xml文件,加入实体与数据库表之间的映射关系文件。3. 系统整体设计3.1学生分数数据处理部分流程图设计上传老师、学生基础数据添加考试基本
29、信息系统管理员浏览年级、班级、学生数据对比分析结果,导出分析结果给老师用户赋予相应的权限班级学生分数数据进行增删改操作图1 学生分数数据处理部分流程图3.2 主要功能模块简介学生成绩分析系统基础数据考试信息班级信息班级分析整体分析老师信息学生信息个体分析年级概况年级/班级排名科目类分科统计表按教师分析基本情况分析对比分析成绩排名汇总历史记录及曲线图图2 主要功能模块系统管理员管理、维护班级、老师、学生信息,给系统老师用户授权,老师上传班级学生分数信息,老师依据权限查看分析结果,导出分析数据。4. 数据模型设计4.1建模设计分析以及步骤数据是一个系统最基础部分,就像高楼大厦的地基一样,没有数据,
30、系统就没有操作目标,系统所有的操作都是围绕基础数据进行的,如果数据库设计不合理,将会导致数据库结构与需求不符 ,系统性能低下,数据完整性丧失,可扩展性性差,非必要数据冗余量太大,不利于计算或统计,而且会导致表之间的耦合性太大,对表的操作直接或间接影响到关联表的数据。所以数据库的设计是应用系统正式进行开发工作之前需要花费大量时间、精力完善的,是系统平台设计中的重中只重,数据库的设计关系到系统平台后期的开发,好的数据库便于系统平台快速开发,以及后期系统的维护。不好的数据关系设计将会影响整个系统平台的开发,只有把数据库设计好,才更好的开发系统平台。本系统中学生分数是系统的核心数据表,所以需要重点考虑
31、好分数与其他表的关联关系,例如:分数不仅要与学生建立关联表示分数是哪名学生的,而且还得与班级建立关联,表明分数是在哪个班参加考试所得,因为考虑到特殊情况,可能会有学生中途转班或插班,如果仅仅建立学生与班级,学生与分数的关联关系,在以班为分析对象分析数据时并不能确定分数属于哪一班级,便无法获得正确的分析统计数据。但是原始数据库表仅仅是二维表字段、数据的平面显示,表间关联等信息无法整体表现出来,因此在数据库设计之前,我们需要进行数据建模,根据系统平台的功能要求,需求分析,确定表内数据之间的关联关系,然后建表,建立关联,在建模工具中,先把表的逻辑模型建好,再利用工具生成物理模型,最后连接数据库生成数
32、据库表。 4.2 学生成绩分析系统逻辑模型基础数据部分本系统的数据模型采用ER Studio软件来设计,以下是该系统的主要数据模型:图3 学生成绩分析系统的数据模型5. 数据库设计5.1年级信息表图4年级信息表gradeId为主键,name为年级名,sortOrder为排列序号,用于显示时排序5.2 班级数据表图5班级数据表clazzId为主键,name为班级名,sortOrder为班级排列序号,班级成绩对比时按此序号显示班级,academicYear为学年,表示该班是哪一学年,level为班级学生级别,gradeId外键关联年级表,表示该班是哪一年级 5.3 教师用户数据表 图6教师用户数据
33、表teacherId为主键,name为老师姓名5.4 学生信息表图7学生信息表studentId为学生学号,name为学生姓名,status为学生状态,方便查看该生是否是借读或转校学生5.5 科目信息表图8科目信息表courseId为科目主键,name为科目名,sortOrder为科目排列序号,用于排序,type表示此科目为文科,理科或者其他,用于文科综合或者理科综合分数分析。5.6 总考信息表图9总考信息表totalExamId为总考主键,name为总考名称,semester为考试学期,academicYear为考试学年,gradeName表示参加该考试的年级,type为考试类型,文科、理科
34、或者其他,如果为文科或者理科,对学生分数进行统计分析显示时,将会有文科综合或者理科综合这一栏信息。5.7 单科考试信息表图10单科考试信息表examId为单科考试主键,name为考试名,sortOder为考试排列序号,考试列表依据此序号排序,courseId外键关联科目表,表示此考试为哪一科目的考试5.8 分数信息表图11分数信息表socreId为分数主键,score为学生分数,studentId外键关联学生表,表示此分数属于哪名学生,examId外键关联单科考试表,表示此分数是哪一次考试所得,clazzId外键关联班级信息表,表示此分数属于哪个班级,可防止学生中途转班或者插班后,该分数无法查
35、询出是在哪一班级所得。6. 系统各模块功能实现6.1 系统登录下图为系统登录界面:图12 登录界面6.2基础数据菜单图13基础数据菜单6.2.1考试信息 考试列表图14考试列表6.2.2 班级信息 年级列表图15年级列表6.2.3 科目管理 科目列表图16科目列表6.2.4 分数管理 考试列表图17考试列表6.2.4 分数管理 考试列表 参考班级列表图18 参考班级列表6.2.4 分数管理 考试列表 参考班级列表考试分数列表图19考试分数列表6.3 整体分析菜单图20整体分析菜单6.3.1 整体分析 年级概况 年级B值表图21年级B值表6.3.2 整体分析 年级概况 学生排名(按年级)图22学
36、生排名(按年级)6.3.2 整体分析 年级概况 学生排名(按班级)图23学生排名(按班级)6.4 班级分析菜单图24班级分析菜单6.4.1班级分析基本情况分析各班成绩汇总图25班级成绩汇总6.5 个体分析菜单图26个体分析菜单7. 部分功能及实现代码7.1 JavaScript学年与考试级联$().ready(function()var currentYear=new Date().getUTCFullYear();/结束年份,默认为当前年份var startYear=currentYear-10;/起始年份var endYear=currentYear+3;/结束年份var obj=docu
37、ment.getElementById(year);onload=function()for (var i=startYear;i=endYear;i+)obj.options.add(new Option(i+-+(i+1),i+-+(i+1);); $().ready(function() / JQUERY考试级联$(#year).change( function() $(#exam).html(-选择班级-); var year = document.getElementById(year).value; $.getJSON( gradeAnalyse_academicYearChang
38、e.action?academicYear=+year+&ts=+(new Date().valueOf(), function(data) console.debug(-totalExams,data); $.each(data, function(index) $(#exam).append( + dataindex.name +); ); ); ); ); 7.1 年级学生分数排名totalExam = totalExamDao.queryById(totalExam.getTotalExamId();exams = new ArrayList(totalExam.getExams();
39、/考试Collections.sort(exams);QueryHelper qh = new QueryHelper(TotalScoreRank.class,ts).addAndCondition(ts.id.totalExamId=?,totalExamId,totalExam.getTotalExamId();paginatedQuery3(qh);qh.addOrderProperty(ts.tsGradeRank, true);List totalScoreList = (List)paginateService.getPaginationList(skip, SCOREPAGES
40、IZE, qh);studentIdList = new ArrayList();studentScoreMap = new HashMapString,List();for(int i = 0 ; i totalScoreList.size() ; i+)TotalScoreRank ts = totalScoreList.get(i);String studentId = ts.getId().getStudentId();String clazzId = ts.getId().getClazzId();studentIdList.add(studentId);List lists = n
41、ew ArrayList();lists.add(clazzDao.queryById(clazzId).getName();/班级lists.add(ts.getId().getStudentId();/学号lists.add(studentDao.queryById(studentId).getName();/姓名Float totalScore = ts.getTotalScore();lists.add(totalScore);/总分if(totalScore = null)lists.add(null);/总分年级排名lists.add(null);/总分班级排名elselists.
42、add(ts.getTsGradeRank();/总分年级排名lists.add(ts.getTsClazzRank();/总分班级排名Float complexScore = ts.getComplexScore();lists.add(complexScore);/综合if(complexScore = null)lists.add(null);/综合年级排名lists.add(null);/综合班级排名elselists.add(ts.getCsGradeRank();/综合年级排名lists.add(ts.getCsClazzRank();/综合班级排名studentScoreMap.
43、put(studentId,lists);if(studentIdList.size() 0)for(Exam e : exams)List scoreList = oneCourseDao.getScoreByStudentAndExam(studentIdList,e.getExamId();for(OneCourseScore oneCourse : scoreList)List list = studentScoreMap.get(oneCourse.getId().getStudentId();Float score = oneCourse.getScore();list.add(score);if(score = null)list.add(null);list.add(null);elselist.add(oneCourse.getGradeRank();list