基于Web的综合实习管理系统的设计与实现毕业设计.doc
济南大学毕业设计毕业设计题 目 基于Web的综合实习管理系统 的设计与实现 学 院 信息科学与工程学院 专 业 计算机科学与技术 班 级 学 生 学 号 指导教师 二一三年六月七日- 2 -济南大学毕业设计摘 要随着全球信息化技术兴起,特别是Internet网络的日益普及,我国及世界各大院校都已建立了自己的校园网。实习学生以班级年级为单位的原始手工报送选题方式已不能适应时代发展需求, 所以基于互联网的综合实习管理系统也就随之诞生了。综合实习管理系统就是能够使实习学生通过互联网完成综合实习课题的选定,它采用Web方式,适用于局域网和Internet,它能够实现课题审核,权限管理,信息交流等功能,并能提供课题保存、课题查询等功能,该系统拥有开放的题库管理系统和灵活的选题系统,能够自动的进行权限判断。本系统采用JSP技术为主要技术,采用多级角色管理:包括系统管理员、专家,老师和学生几种权限。本文主要介绍了用户的权限划分,并详细论述了该系统设计思想和实现方法步骤,从而为以后的研究学习打下基础。关键词:权限;多级角色管理;申报;审核;选题ABSTRACTWith the rise of the global information technology, especially the growing popularity of the Internet network, our country and the world's major institutions have set up their own campus network. Student interns to the class as a unit of the original hand grades submit topics manner can not meet the development needs of the times, it is a comprehensive Internet-based practice management system along with it was born.Comprehensive practice management system that enables the student is completed via the Internet comprehensive internship topic selected, it uses Web mode for LAN and Internet, and it is to achieve the audit issues, rights management, information exchange and other functions, and can provide preservation issues, issue queries and other functions, the system has an open and flexible database management systems Selection System that can automatically determine the conduct of permissions.The system uses JSP technology as the main technology, using multi-level role management: including system administrators, experts, teachers and students of several privileges. This paper describes the user's rights division, and discusses in detail the system design and implementation method step, so as to lay the foundation for future research study.Key words: Competence; Multi-level role management; Reporting; Audit; Topics- 37 -目 录摘 要IABSTRACTII1引言31.1综合实习管理系统出现的趋势31.2综合实习管理系统常用的实现技术32基本技术简介42.1本系统拟采用的解决方法(技术)42.2主要技术简介42.2.1JSP技术42.2.2JDBC技术53需求分析与方案设计73.1功能需求分析73.2数据库需求73.3系统支撑环境84系统设计94.1 功能设计94.2 数据库设计104.2.1 系统登陆,用户登录信息表104.2.2 系统用户信息管理表(user_info)114.2.3 综合实习课题库信息表(course)114.2.4综合实习选题信息表(chooseCourse)124.2.5综合实习选题结果信息表(choosed)124.2.6视图125 系统功能实现135.1系统组成和业务流程图135.1.1系统组成135.1.2业务流程图145.2系统用户权限管理145.2.1 系统登陆165.2.2系统用户管理175.2.3 选题结果信息查看215.2.4 系统信息发布225.2.4 个人信息维护225.3系统选题权限管理235.4教师系统功能245.4.1教师申报课题245.4.2教师修改课题245.4.3教师选择学生255.5专家系统功能265.5.1专家审核课题265.5.2专家调剂学生285.6学生在线选题295.7 学生教师信息交流305.8系统退出305.9系统基本控件使用306技术优点难点分析32结 论33参 考 文 献34致 谢351引言1.1综合实习管理系统出现的趋势在计算机网络技术飞速发展的今天,Internet成为人们快速便捷地获取,发布和传递信息的重要渠道,在人们的政治,经济,工作,生活等各方面发挥着非常重要的作用。因此网站建设在Internet应用上的地位显而易见,其已经成为政府机关,企事业单位信息化建设和信息化管理中的重要组成部分,从而倍受重视。从20世纪90年代起,随着WWW的快速发展,因特网逐渐普及化。由于www通过优质的界面大大简化了因特网的操作难度使得用户数量急剧增加,许多人开始重视因特网,发现到因特网具有巨大得潜力。于是纷纷加入Internet。这样使得Internet上的站点大大增加,网络信息更是五花八门,十分丰富。如今因特网已经深入到人们工作生活得各个部分。Internet极大的方便了信息的传播,给人们带来全新的生活方式。本次我们设计的课题正是互联网与在校大学生学习生活相关的综合实习管理系统。综合实习管理最重要的工作是课题的申报、审核与选择。当今社会人们已经离不开网络,而传统的实习选题管理方式也面临着变革,而网络选题管理则是一个重要的方向。基于Web技术的网络选题管理系统可以借助遍布全球的Internet进行,因此选题管理既可在本地进行,也可在异地进行,大大拓展了选题管理的灵活性。题目可以由教师网上申报,专家网上审核,学生网上选题,还可以直接把选题信息送到数据库中保存, 从而使用网络选题大大的提高了选题效率。现在较好的实习选题管理方式为网络选题,课题内容放在服务器上,教师学生通过帐号和密码进行登陆,可以在第一时间得到选题信息。因此,网络选题方式将是以后选题管理的大趋势。1.2综合实习管理系统常用的实现技术综合实习管理系统的实现技术有很多种,可以采用传统客户机/服务器(C/S)型的MIS型架构,即课题题目内容放在远程的服务器上,在用户端安装管理操作应用程序和数据库客户机配置,因此每次管理操作时要对机器进行安装、配置,但这样一来管理工作比较繁琐;而且管理程序放在客户机上,安全性将受到影响。另外一种管理系统是采用Web 技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用三层体系结构:用户界面层/事务层/数据库层。因此具有更好的安全性。使用该系统时在用户机上不需要安装任何应用程序,应用程序可以安装到作为服务器的计算机上,课题信息存放在数据库服务器上(事务层和数据库可以在同一台机器)。2基本技术简介本系统全称为综合实习管理系统,开发的目的是为学生提供通过学校的网络进行综合实习题目的选择。2.1本系统拟采用的解决方法(技术)系统要求实现实习网络管理系统的基本功能,从安全性,方便性和便于维护的考虑,选择一个Web实现技术。该系统采用B / S模式,允许用户直接访问服务器上的浏览器,以及用于远程操作和维护信息系统的主题。服务器端程序实现的方法也有很多,系统将选择目前流行的网络编程技术 JSP为主要实现手段(配合Java Servlet,HTML等)。 JSP作为Web实现技术,其效率是非常高的。这是完全符合系统的实时性要求的综合实践。 JSP自身的安全,再加上实现模式的特点,完全能够满足要求的主题管理。此外,作为Java平台的一部分,JSP技术的Java语言“一次编写,到处运行”的跨平台特性。但是,随着越来越多的服务器厂商将JSP支持添加到产品上,与JSP,使系统也可以被移植到其他平台上运行。各种优势,使这个系统将成为一个好学校教学管理网络实现。 JSP是一个很好的技术来实现这个系统,作为这个系统的主要实现方法是非常合适的。配合JSP程序,本系统通过Tomcat服务器运行。Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,而且它还是一个Servlet和JSP容器,独立的Servlet容器是其默认模式。它在运行时占用系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统的常用功能;它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改或加入新的功能。所以Tomcat是开发和调试JSP 程序的首选。2.2主要技术简介2.2.1JSP技术JSP是SunMicrosystems公司倡导,许多公司参与建立一个动态的的技术标准。在传统的网页HTML文件(*.HTM,*.HTML)中加入Java程序片段(Scriptlet中)和JSP标签,构成JSP页面的Java程序片段可以操作数据库,重新定向网页以及发送E-mail等,实现创建一个动态网站所需要的功能。所有程序操作都在服务器上执行,客户端的网络上传得到的结果,这大大降低了客户端浏览器的要求,即使客户端的浏览器不支持Java,JSP页面也可以访问。JSP全称Java服务器页面,这基本上是一个简化的Servlet设计,他实现了HTML语法Java扩展(<>形式)。 JSP和Servlet,在服务器上执行,通常返回给客户端的HTML文本,只要在客户端浏览器就能够浏览。 Web服务器访问JSP页面请求时,首先执行的程序段,然后将执行结果和JSP文件中的HTML代码一起返回给客户端。JAVA程序段可以对数据库操作,重定向网页,创建动态网页,以实现所希望的功能。JSP技术使用Java编程语言类XML的tags和scriptlets,来封装处理逻辑来生成动态网页。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。 JSP网页逻辑与网页设计显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,其主要目的是从servlet中分离出表示逻辑。JSP页面由HTML代码和Java代码嵌入其中形成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,大型Web应用程序开发需要的Java Servlet和JSP的支持才能以完成。 JSP具有Java技术的易于使用的,完全面向对象,具有平台无关性和安全性,主要面向因特网的所有特点。JSP推出以来,许多大公司都支持JSP技术的服务器,如IBM,甲骨文,BEA公司,因此JSP迅速成为商业应用的服务器端语言。2.2.2JDBC技术JDBC是Java开发者 - Sun的了Javasoft公司开发Java数据库连接(Java Data Base Connectivity)技术,通常用于各种数据库,提供一个无缝连接技术。 JDBC的Web和互联网应用中的作用是和ODBC应用程序在Windows系列平台的类似的作用。JDBC是用于执行SQL语句的Java API,可以统一访问各种关系数据库,它由一组Java语言编写的类和接口组成。 JDBC为工具/数据库开发人员提供了一个标准的API,它可以构建更高级的工具和接口,使数据库开发人员用纯Java API来编写数据库应用程序。使用JDBC中,各种关系数据发送SQL语句是一件很容易的事情。换句话说,使用JDBC API,你不必为访问Sybase数据库专门写一个程序,访问Oracle数据库专门写一个特殊的程序,访问Informix数据库再写一个程序等,只要使用JDBC API程序员写一个程序就够了,它可以被发送到适当的数据库SQL调用。同时,结合Java语言和JDBC使得程序员不必编写针对不同的应用平台的不同程序,只需编写一次就可以运行在任何平台,这是Java语言“一次编写,到处运行”的优势。Java数据库连接架构是Java应用程序连接到数据库的标准方法。对于程序员而言JDBC是API,是实现与数据库的连接服务提供商的接口模型。作为API,JDBC提供了一个标准的程序开发接口并为数据库供应商和第三方中间件厂商与数据库的连接提供了一种标准的方法。 JDBC使用现有的SQL标准,并支持与其他数据库连接标准,如ODBC桥之间的连接。 JDBC实现了所有这些标准的目标为导向,一个简单的,严格的类型定义和高性能的接口实现。Java有坚固,安全,易于使用,易于理解和可以自动从互联网上下载等特点,是杰出的语言来编写数据库应用程序。所需要的是一个Java应用程序与各种不同数据库之间进行对话的方法。 JDBC是一种机制,用于此目的。JDBC扩展了Java功能。例如,使用Java和JDBC API可以发布含有一个applet的网页, applet的信息可能来自一个远程数据库。企业也可以使用JDBC所有工作人员通过内网连接到一个或多个内部数据库中(即使这些员工使用的计算机有Windows,Macintosh和UNIX操作系统和其他各种)。随着越来越多的程序员开始使用Java编程语言,从Java中方便地访问数据库的要求也越来越高。MIS管理人员喜欢Java和JDBC的结合,因为它很容易和经济。企业可以继续使用它们安装的数据库,并可以轻松地访问信息,即使这些信息被存储在不同的数据库管理系统。新程序的开发周期很短。安装和版本控制将被大大简化。程序员可以只写一次或只更新一次应用程序,然后把它的服务器上,那么任何人都可以得到最新版本的应用程序。3需求分析与方案设计3.1功能需求分析作为高校毕业生的综合实习管理系统,它需要面对着许多用户的操作,而这些用户对系统的操作有所不同,所以我们在设计时需要对不同用户设立不同的权限。在本系统中,我考虑了4种权限(管理员,专家,指导老师,学生)。管理员可以添加和修改老师、学生、专家的用户信息,老师、学生、专家可以修改自己的信息。同时,为了实现本系统的主要功能,教师能在线申报课题,但是申报的课题必须经过专家的审核后学生才能进行选择。而在学生的选题中,在实现选题的基础上,也要考虑学生选择志愿的顺序,所以在学生的选择过程中,要设立多个志愿,在教师选择过程中,我们需要根据学生的志愿依次进行选择。也就是说在学生的第一志愿未被审核的时候,第二志愿的老师不能对该生的第二志愿进行审核。3.2数据库需求软件开发需要考虑系统开发所需数据和如何操作这些数据,也就是数据库的设计该系统主要涉及到几种信息的存储与操作,首先是班级学生的信息,课题信息,学校指导教师和专家的信息,所以每个信息保存在一张表中,在对表的操作中可以对任意一个表独立操作,也可以对几个表关联操作。数据库的逻辑设计 (1)逻辑结构: 学生信息(学号,登录密码,姓名,性别,班级,学院,家庭住址,联系电话); 教师信息(教师编号,登录密码,姓名,性别,学院,家庭住址,联系电话); 管理员信息(登录账号,登录密码,联系电话);专家信息表(专家账号,登录密码,姓名,性别,学院,家庭住址,联系电话) 课题表信息(课题编号,课题名称,指导老师,专业方向,题目类型,课题意义,课题内容,课题要求,进度安排,需求条件,实习地点);选题表信息(课题号,学生号,志愿,审核状态)选题结果信息(课题号,学生学号,学生志愿) (2)物理结构设计 :数据库初始大小设计为5M, 增长率为10%, 默认安装路径为:D:数据库; 数据库日志文件初始大小为5M, 增长率为:5%, 默认存放目录为:D:数据库。3.3系统支撑环境(1)操作系统:WINDOWS 7(2)应用服务器:TOMCAT 6.0.35(3)数据库:SQL2000(4)JAVA VM:JDK 1.7.0(5)开发工具:myeclipse(6)硬件:建议内存在512M以上4系统设计4.1 功能设计综合实习管理系统的功能主要包括三部分:用户管理、课题信息管理、教师学生双选信息管理。其软件设计结构图结构如图4.1:学生选课调剂综合实习管理系统管理员专家老师学生选题结果信息查询发布通知 、时间安排审核老师提交的课题查询课题信息课题申报、修改、查询审核学生选题网上选题、退选查询课题信息添加修改删除各用户信息信息交流信息交流图4.1 系统总结构设计图4.2 数据库设计4.2.1 系统登陆,用户登录信息表表4.1 管理员登录信息表(admin)编号项目名字段名主键/外键类型内容作用可否为空1管理员账号aIdpkchar(20)not null2管理员密码aPasschar(20)not null 表4.2 教师登录信息表(teacher)编号项目名字段名主键/外键类型内容作用可否为空1教师编号tIdpkchar(20)not null2教师密码tPasschar(20)not null3教师姓名tNamechar(20)not null4所在学院dIdchar(10)not null表4.3 学生登录信息表(student)编号项目名字段名主键/外键类型内容作用可否为空1学生编号sIdpkchar(20)not null2学生密码sPasschar(20)not null3学生姓名sNamechar(20)not null4所在学院dIdchar(10)not null5所在班级cIdchar(10)not null6是否完成选课passint(4)标记选课状态not null表4.4 专家登录信息表(expert)编号项目名字段名主键/外键类型内容作用可否为空1专家编号eIdpkchar(20)not null2专家密码ePasschar(20)not null3专家姓名eNamechar(20)not null4所在学院dIdchar(10)not null4.2.2 系统用户信息管理表(user_info)表4.5 用户信息管理表编号项目名字段名主键/外键类型内容作用可否为空1教师编号userIDPKchar(10)not null2性别userSexchar(10)3邮箱userEmail varchar(50)4移动电话号userMobilchar(30)5固定电话号userTelchar(30)6邮编userPostchar(30)7住址userAddressvarchar(50)8用户类型user_typechar (1)1 管理员2 指导教师 3 学生4 专家not null4.2.3 综合实习课题库信息表(course) 表4.6 综合实习题库信息表编号项目名字段名主键/外键类型内容作用可否为空1题目编号coIdPKchar(10)系统自增字段not null2题目名称topicchar (100)not null3教师编号tIdchar(10)teacher表中的tIdnot null4专业方向majorchar(10)not null5题目类型typechar(50)not null6教师所在单位unitchar(10)teacher表中的dIdnot null7题目意义meanchar(1000)not null8课题内容contentchar(1500)not null9课题要求requirechar(1500)not null10进度安排timechar(2000)not null11实习地点localchar(50)not null12需要条件conditionchar(1000)not null13是否通过审核passint(4)0 未审核1 审核通过-1 审核未通过not null4.2.4综合实习选题信息表(chooseCourse)表4.7 综合实习选题信息表编号项目名字段名主键/外键类型内容作用可否为空1课题编号coIdpkchar(20)not null2学生编号sIdpkchar(20)not null3学生志愿volint(4)标记志愿not null4是否通过审核passint(4)0 未审核1 审核通过-1审核未通过not null4.2.5综合实习选题结果信息表(choosed)表4.8 综合实习选题结果信息表编号项目名字段名主键/外键类型内容作用可否为空1课题编号coIdpkchar(20)not null2选题人数sNumchar(20)not null3是否确认学生choosedint(4)0 未确认1 已确认not null4确认学生学号sIdchar(4)not null4.2.6视图为方便操作建立了视图:IS_admin,IS_CS,IS_exp,IS_regulate,IS_stu,IS_tea,IS_teachoo,stu,stu25 系统功能实现5.1系统组成和业务流程图5.1.1系统组成本系统由四个子模块组成:管理员管理功能,教师系统功能,专家系统功能,学生系统功能。它们各自功能如下叙述:(1)管理员管理功能系统管理员主要负责对学生、教师、专家、院系信息的添加和管理。同时可以发布通知和时间安排,也可以导出选题结果信息。(2)教师系统功能此部分由教师使用,教师信息由管理员录入,教师必须通过管理员给其分配的帐号,密码登陆此系统。教师可以修改自己的登录密码和个人信息。教师进入此系统后便由教师负责编辑申报课题,修改维护课题,并且对学生选题进行选择,而且可以查看已申报课题信息。(3)专家系统功能专家通过管理员分配的账号密码登录此系统。专家可以查询课题信息并且负责对教师申报的课题进行审核,只有审核通过的课题学生才可以进行选则。在教师选择学生完成后,专家负责对未被选中的学生进行调剂。(4)学生系统功能学生通过管理员录入的学生信息,姓名,学号和密码登陆此系统进行查询课题信息并且进行选题并且可以修改自己的登陆密码和个人信息。系统分配给学生3个选题志愿,学生可以根据课题信息和自己的实际情况做出3个选择,当第一志愿未被审核,其他志愿不能审核,第一志愿审核未通过则自动指向第二志愿,依次类推,如果全部志愿都没有通过专家将为其分配课题。5.1.2业务流程图 用户 登录 身份认证系统管理员 专家 教师 学生课题申报修改查询选择学生信息交流课题审核学生调剂查询课题信息查询课题信息信息交流选题、退选发布通知时间安排选题信息查询系统用户信息管理图5.1 业务流程图5.2系统用户权限管理本系统分为4个模块,管理员管理功能,教师系统功能,专家系统功能,学生系统功能。系统用户管理的基本处理流程是:(1) 管理员权限在建立数据库时初始化数据库脚本创建,管理员登陆后可以对自身的信息进行维护,同时还可以为不同的用户分配帐号,以及对用户信息进行维护。(2) 各类型用户通过管理员分配的账号,按照管理员发布的时间安排进行各自的网上操作。系统用户管理结构如图5.2:管理员专家老师学生审核管理用户信息选择选题1N1N1NNN调剂1N图5.2 用户管理表由上图分析,本系统共有四种角色,所以系统在实现过程中根据用户角色判断其所拥有的权限,(根据登录时选定的类型进行判断)。<select name="userselect"><option value="1" selected>学生</option><option value="2">教师</option><option value="3">管理员</option><option value="4">专家</option></select>String s=(String)request.getParameter("userselect");系统管理(s.equals("1")指导教师(s.equals("2)学生(s.equals("3")专家(s.equals("4")从各自表中验证用户名和密码5.2.1 系统登陆为了保证用户信息的一致性、用户操作的方便性以及方便系统的安全模块升级和维护,该系统采用单点登陆的模式。系统主页:http:/localhost:8080(服务器在本地计算机上)如图5.2:图5.3 管理系统主页页面功能:(1)通知信息在主页右侧有通知区域,管理员可以在此发布通知,其他用户可以查看综合实习网上管理的相关信息。(2)系统用户登陆正确选择用户的类型、输入用户名和密码就可以登录系统。当输入系统不存在的帐号登陆时,系统将提示拒绝登陆并提示用户帐号不存在。如果选择的用户类型不匹配,系统拒绝登陆并显示登陆帐号和用户类型不匹配。当用户选择的类型正确,帐号也正确但密码错误时系统将提示用户帐号密码错误,请核对信息后重新登陆。(3)登录会话信息(在login.jsp中实现):获取用户登录信息:String name=(String)request.getParameter("username"); / 获取用户名String pass=(String)request.getParameter("userpass"); / 获取登录密码String s=(String)request.getParameter("userselect"); / 获取用户类型连接数据库并按用户类型进行查询:Connection conn=null;Statement stmt=null;ResultSet rs=null;String loginNum="0"session.setAttribute("lnum",loginNum);tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:xk","sa","");if(s.equals("1")String sql="select * from student where sId='"+name+"' and sPass='"+pass+"'"stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(rs.next() loginNum="1"session.setAttribute("lnum",loginNum);session.setAttribute("name",name);out.print(name+"登陆成功,页面跳转.");response.sendRedirect("student/studentIndex.html");else out.print("用户名或密码有误.");response.sendRedirect("index.jsp");catch(Exception e)out.print(e);response.sendRedirect("index.jsp");其他用户类型代码同上,不再一一列举5.2.2系统用户管理(1)权限控制只有系统管理员具有对用户信息的操作权限,其他人员没有操作权限,不同的用户在登录后进入不同的页面,从而具有不同的权限,在页面右侧的区域会告知此类型用户的权限操作:图5.4 管理员界面图5.5 学生界面图5.6 教师界面图5.7 专家界面(2)用户信息功能(管理员可对所有用户操作,其他用户只能对自己操作)查询管理员可以查询全部用户信息添加管理员可以添加其他用户修改用户可以修改自己信息,管理员可以修改全部用户信息删除管理员可以删除其他用户为方便管理,不同的操作连接到不同的jsp页面,学生信息管理操作代码实现:<a href="studentAdd.jsp" target="rightFrame">添加</a> <a href="studentDel.jsp" target="rightFrame">删除</a> <a href="studentModify.jsp" target="rightFrame">修改</a> <a href="stuSearch.jsp" target="rightFrame">查询</a> 用户信息操作主要是对数据库表sdmin,student,teacher,sxpert的操作图5.8 管理员操作页面添加功能(学生信息添加由studentAdd.jsp页面实现,其他用户相似)图5.9 添加操作界面删除功能(学生信息删除由studentDel.jsp页面实现,其他用户相似)图5.10 删除操作界面修改功能(学生信息修改由studentModify.jsp页面实现,其他用户相似)图5.11 修改操作界面查询功能(对表student,teacher,expert的查询):查询列表由stuSearch.jsp显示图5.12 查询操作界面院系班级管理(对表department,class的操作)院系班级添加、修改、删除由department.jsp页面实现图5.13 院系班级管理页面5.2.3 选题结果信息查看选题结果查看功能是对已完成的选题结果进行查询,方便管理员对选题流程完成度的了解和数据库的维护和管理,同时方便专家学生查询以做审核和选题参考。图5.14 课题信息查看5.2.4 系统信息发布管理员可以发布系统信息如系统通知和时间安排,其他用户可以在登录首页查看,便于安排管理系统的使用流程。管理员发布通知:图5.15 发布通知页面管理员发布时间安排:图5.16时间安排页面5.2.4 个人信息维护 当用户进入系统后可以通过点击“个人信息维护”对自己的个人信息进行修改,可以修改密码,邮箱联系方式等个人资料(对表user_info修改)。 图5.17 个人信息维护