1、3.2.2 新生信息功能具体实现 133.3 主要类图及类说明 143.4 设计过程遇到的问题及问题解决 153.4.1 用户登录时不能成功登录 153.4.2 在前台页面发现页面样式不能按照预定要求显示出来 153.4.3 验证码刷新问题 153.5 软件测试(单元测试) 153.5.1 单元测试技术 153.5.2 Junit测试 16第4部分 系统使用手册 184.1 硬件环境 194.2 软件环境 194.3 使用说明 194.3.1 数据库操作说明 194.3.2 系统操作说明 19致谢 20参考资料 21新生报到管理系统前言1 软件系统的开发背景和商业价值借助现代信息技术和管理理论
2、,建立现代管理信息系统是当今社会的重要趋势。 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。为了适应信息时代发展,提高学校的工作效率和办学水平,实现现代化大学的运行机制和高水平的管理,体现大学中计算机的特色,使计算机的使用成为学校对学生进行有效管理的重要组成部分。用计算机来管理新生报到
3、可以避免不必要的资源浪费。用计算机来管理新生报到可以作到在新生前来报到时给其分配相关资源,存储其相关信息则可以避免所分配的学号、床位号中间呈现空缺的现象也节省了教务处工作人员的工作强度,避免了提前去做新生的相关分配工作。“新生报到管理系统”可对每届前来报到的新生登记其基本信息并将其基本信息录入到数据库中,如此就可以避免将已被录取但不打算前来读书的学生的相关信息存储进在校学生的相关数据库中,同时使用该系统可以实现新生信息的有序存储,使得检索迅速、查找方便、并且提高了可靠性。2 技术介绍(1) Jsp技术用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技
4、术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户
5、端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术
6、的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。(2) JavaBean技术JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBe
7、an、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBean是java类,属于某些特定的译码指导方针,并且扩展了适应性和范围,允许用户访问内部的属性和方法。通过这些,JavaBean类可以用于下列方法:1)在IDE中,JavaBean的功能允许应用开发者浏览其中的方法,即使JavaBean是被编译的,并且无法利用原始的源文件。2)在 Remote Method Invocation(RMI) 的分布式风格中,这项功能听起来并不让人兴奋,但是在未来的包含企业版的JavaBean后,将改变这种情况。3)为了Ja
8、vaBean的属性值和状态可以保存到磁盘上。这里说的有些简单,如果想了解更多的东西,可以查阅一些资料。(3) Servlet技术Java Servlet是与平台无关的服务器端组件,它可以运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的生命周期: init方法,负责初始化Servlet对象 servi
9、ce方法,负责响应客户的请求 destroy方法,当Servlet对象退出生命周期时,负责释放占用的资源。(4) Dao设计模式使用数据访问对象(DAO)模式来抽象和封装所有对数据源的访问。DAO管理着与数据源的连接以便检索和存储数据。 DAO实现了用来操作数据源的访问机制。依赖于DAO的业务组件为其客户端使用DAO提供更简单的接口。DAO完全向客户端隐藏了数据源实现细节。由于当低层数据源实现变化时,DAO向客户端提 供的接口不会变化,所有该模式允许DAO调整到不同的存储模式,而不会影响其客户端或者业务组件。重要的是,DAO充当组件和数据源之间的适配器。(5) 连接池技术连接池技术的核心思想是
10、:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。连接池主要由三部分组成:连接池的建立、连接池中连接的使用管理、连接池的关闭式。第1部分 项目需求说明本项目分为管理员模块和用户模块,其中管理员模块分为管理员登陆、用户信息管理、楼宇信息管理、寝室信息管理、班级信息管理、专业信息
11、管理及新生信息管理,用户模块分为用户登陆及用户注册。1.1 管理员模块管理员模块是本项目的主要模块,它包含着本项目的大部分操作信息,它的具体内容如下。1.1.1 管理员登录管理员登录时需要进行身份验证,如果该用户是普通用户就不能登陆到管理员操作后台。如果是管理员登录,就可以进入后台页面,对学生、班级、寝室、专业、楼宇进行录入、删除、修改、查询等操作。1.1.2 用户信息管理对用户信息的基本操作:用户信息录入,用户信息修改,用户信息删除,用户信息多条件模糊查询,用户信息分页,用户信息多条删除。其中录入能够实现用户图片的上传、查看和修改。1.1.3 楼宇信息管理对楼宇信息的基本操作:楼宇信息录入,
12、楼宇信息修改,楼宇信息删除,楼宇信息多条件模糊查询,楼宇信息分页,楼宇信息多条删除。1.1.4 寝室信息管理对寝室信息的基本操作:寝室信息录入,寝室信息修改,寝室信息删除,寝室信息多条件模糊查询,寝室信息分页,寝室信息多条删除。其中查询能够查询出所有未满寝室并显示人数。1.1.5 专业信息管理对专业信息的基本操作:专业信息录入,专业信息修改,专业信息删除,专业信息多条件模糊查询,专业信息分页,专业信息多条删除。1.1.6 班级信息管理对班级信息的基本操作:班级信息录入,班级信息修改,班级信息删除,班级信息多条件模糊查询,班级信息分页,班级信息多条删除。1.1.7 新生信息管理对新生信息的基本操
13、作:新生信息录入,新生信息修改,新生信息删除,新生信息多条件模糊查询,新生信息分页,新生信息多条删除。其中查询能够查询出查询某省市人数和人员列表,查询某专业人数和人员列表,查询某班级人数和人员列表,查询某楼人数和人员列表,查询某楼某层人数和人员列表,查看某寝室人员信息,查询某楼某专业人数和人员列表,查询某楼某专业某班级人数和人员列表。1.2 用户模块用户模块是针对普通用户而设计的一个模块,它的具体内容如下。1.2.1 用户登录普通用户登录时需要进行身份验证,如果该用户是普通用户它只能进行新用户注册等简单操作。1.2.2 新用户注册新用户注册功能针对的是普通用户,如果想要对整个后台进行操作必须要
14、经过管理员的同意,提升普通用户的权限为管理员才能进行管理员的相关功能操作,具体功能信息如上。1.3 系统功能结构图本项目权限分为管理员和普通用户,不同权限的用户具有不同的功能操作,具体功能结构如下图所示:图1 功能结构图第2部分 数据库表设计数据库表的设计是一个项目比较核心的环节,它的设计好坏直接关系到整个项目的质量,以下是本项目的具体表设计:2.1 用户表用户表(users)表主要存储管理员和普通用户信息,其结构如下表所示: 用户表 表1表名user(用户表)列名类型定义空/非空PK字段描述默认值userIdint(4)Not null用户IDNouserNamevarchar(25)用户名
15、password密码trueName真实姓名phone联系电话email邮箱userRole用户角色imagevarchar(50)头像图片补充说明这个是用户信息表,存储用户操作信息。2.2 楼宇表楼宇表(build)存储楼宇信息,其结构如下表所示: 楼宇表 表2build(楼宇表)bid楼宇IDbuildName楼宇名buildNumberint(3)楼宇层数receiveNumberint(10)容纳人数inNumber已住人数propertyvarchar(4)楼宇属性这个是楼宇信息表,存储楼宇操作信息。2.3 寝室表寝室(dormitory)表存储寝室信息,其结构如下表所示: 寝室表
16、表3dormitory(寝室表)Did寝室IDdormitoryNamevarchar(20)寝室名receiveNumbersInNumberslocationFloor所在楼层所在楼宇ID这个是寝室信息表,存储寝室操作信息。2.4 专业表专业表(specialty)存储相关专业信息,其结构如下表所示: 专业表 表4specialty(专业表)mid专业IDmajorName专业名称pname专业负责人姓名sexchar(2)性别officePlace办公室这个是专业信息表,存储专业操作信息。2.5 班级表班级表(classes)存储班级相关信息,其结构如下表所示: 班级表 表5classe
17、s(班级表)cid班级IDclassName班级名uname班级负责人phoneNumber联系方式所属专业ID这个是班级信息表,存储班级操作信息。2.6 新生信息表新生信息表(studentinfo)存储新生信息,其结构如下表所示: 新生信息表 表6studentinfo(新生信息表)sid新生IDstuName姓名stuSexbirthday出生日期provincevarchar(15)省籍city市籍phonesdormitoryId所在寝室IDclassNames班级名称所在专业ID这个是新生信息表,存储新生操作信息。2.7 数据库表关系图数据库表是用于存储信息,它们之间通过主外键进行
18、关联,以便于项目在操作的过程中检索查询和存储信息,其表关系如下图所示:图2 数据库结构图表关系说明:用户表(users)表主要存储管理员和普通用户信息,楼宇表(build)存储楼宇信息它与寝室表和班级表通过楼宇编号关联,寝室(dormitory)表存储寝室信息他与学生表通过寝室编号关联,新生信息表(studentinfo)存储新生信息他与专业表通过专业编号关联,专业表(specialty)存储专业信息它与班级表通过专业编号关联,班级表(classes)存储班级相关信息。第3部分 系统实现3.1 界面设计本系统是一个管理系统在进行所有操作之前必须经过登陆页面,进行登录操作,用户名和密码正确才能进
19、入。登录页面显示在地址栏输入:http:/localhost:8080/StudentReport超级管理员用户名:admin,密码:123456在用户输入正确的用户名和密码之后将会登录到系统主界面,在这里管理员可以对整个系统进行相关操作。主界面显示在用户登录成功后,可以看见以上界面,在上图左面是相关功能模块操作按钮也就是用户快捷面板 为了能方便快捷的访问系统功能,避免每次访问树形菜单较深级次的繁琐操作,用户可将通过导航栏中的收藏按钮,将当前页面收藏到该面板中;该面板出现在所有业务页面,用户可以随时访问自己定义的功能页面。该导航在首页以面板形式出现,在其他页面以下拉菜单形式出现,在图的右面是具
20、体功能的显示页面,在这里可以看到相关操作数据和具体的操作功能,用户可以根据导航完成操作。3.2 主要功能实现在进行本项目设计与实现时,本项目的着重点主要在寝室信息管理和学生信息管理,下面对其具体进行介绍。3.2.1 寝室信息管理功能具体实现在寝室信息管理模块中主要是针对寝室信息进行管理,其主界面如下图所示:图5 寝室信息管理主界面图在寝室信息管理模块,如图所示,点击编辑按钮可对相应记录进行修改操作,修改成功后返回上述页面,点击删除按钮可以删除相应记录,下面有一个全选按钮,点击全选按钮可以进行多条删除,最下面是分页功能,显示了相应记录数和页数,同时可以点击首页、上一页、下一页和未页查看相应记录,
21、还可以直接跳转到某页,在最上面是多条件模糊查询,可根据相应填写信息查出相应记录。3.2.2 新生信息功能具体实现图6 新生信息管理主界面图在新生信息管理模块,如图所示,点击编辑按钮可对相应记录进行修改操作,修改成功后返回上述页面,点击删除按钮可以删除相应记录,下面有一个全选按钮,点击全选按钮可以进行多条删除,最下面是分页功能,显示了相应记录数和页数,同时可以点击首页、上一页、下一页和未页查看相应记录,还可以直接跳转到某页,在最上面是多条件模糊查询,可根据相应填写信息查出相应记录,同时上面还有一个文件上传功能。3.3 主要类图及类说明在实体类在一个项目中的作用是非常重要的它可以封装属性信息,同时
22、对外部提供一个接口,供外部调用,其具体信息如下图所示:图7 主要实体类图本项目中主要有七个实体类,其中.login实体类主要为用户登录服务,他提供了一个封装用户名和密码setter和getter方法,而user实体类主要封装用户信操作息,build实体类封装楼宇操作信息,classes实体类封装班级操作信息,studentInfo实体类封装学生操作信息,specialty实体类封装专业操作信息,dormitory实体类封装寝室操作信息,其中setter方法用来封装传来的信息,并提供一个getter方法,方便外部调用。3.4 设计过程遇到的问题及问题解决在进行设计编写代码中,遇到了很多的问题,如
23、连接池配置问题, javaScript错误等等,以下只列出三个例子。3.4.1 用户登录时不能成功登录问题:在部署好工程,打开登录页面输入正确用户名,密码时始终报空指针异常。解决方法:经过仔细检查发现连接池配置不正确,配置正确后发现报找不到驱动jar包错误,经过仔细检查,发现没有把mysql驱动jar包放到common文件夹下的lib文件夹下。3.4.2 在前台页面发现页面样式不能按照预定要求显示出来在设计寝室信息管理页面时发现显示页面始终显示错误样式。通过检查前台页面和CSS样式表,发现CSS样式表中对页面对齐方式写成了Left,以及在前台页面中调用代码少写%。3.4.3 验证码刷新问题刚开
24、始自己写的验证码刷新代码始终不好使。经过自己仔细修改,找到错误但发现此时的验证码刷新是对整个页面进行刷新,这并不符合程序要求,最后通过网络资源找到一段代码随机生成一个数字,让图片缓冲区认为不是同一个缓冲区,解决了验证码刷新,页面不刷新问题。3.5 软件测试(单元测试)3.5.1 单元测试技术单元测试针对每个程序的模块,主要测试5个方面的问题:模块接口、局部数结构、边界条件、独立路径和错误处理。(1)模块接口 这是对模块接口进行的测试,检查进入程序单元的数据流是否正确。对模块接口数据流的测试必须在任何其他 测试之前进行,因为如果不能确保数据正确的输入和输出的话,所有的测试都是无意思的。(2)局部
25、数据结构 在模块工作的过程中,必须测试其内部的数据能否保持完整性,包括内部数据的内容、形式及关系不发生错误。(3)路径测试在单元测试中,最主要的测试是针对路劲的测试。在用例必须能够发现有于计算错误不正确的判断或不正常的控制流而产生的错误(4)边界条件经验表明,软件在边界处发生问题。边界测试是软件测试的最后一部,十分重要,必须采取边界值分析方法来设计测试用例,认真仔细的测试为限制数据处理而设置的边界处,看模块能否正常工作。(5)出错处理测试出错的重点是模块在工作时候发生错误,其中出错处理设施是否有效。程序运行中出现的异常现象并不奇怪,良好的设计应该预先估计到投入到运行偶可能发生的错误,并给出相应的处理措施,使得用户不至于束手无策。测试用例将软件测试的行为活动做一个科学化的组织归纳目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一。设计测试用例通过非路径分析得到测试用例、寻找尚未测试过的路径并生成相应的测试用例、通过指定特定路径并生成相应的测试用例。3.5.2 Junit测试以下表是测试用例,主要用于下面的测试:测试表 表7测试函数输入ID对应用户名数据库中是否存在预期结果objectImpl类下的objDel(int id)方法 1xiaoming存在true在测试时:myeclipse
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1