本人呈交的毕业设计论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。 经过两三个月的毕业设计制作,成品基本上已经开发完成,每个模块的功能都能够实现。虽然这其中经历了许多磨难和挫折,但通过自己的努力和导师的帮助,最后还是顺利完成了作品和毕业论文。 首先,我要感谢我的导师洪波老师,她那严谨的教学态度,以及精益求己的工作作风深深的影响着我。在导师的悉心指导下,我成功的完成了作品,不管是中期的指导,还是后期的修改,都给与我非常大的帮助,在此向洪波老师表示衷心的谢意。 其次,就是感谢同学以及室友,在我遇到难题的时候,帮我出谋划策,替我分担工作。在我陷入苦难的时候,激励我不要放弃,要坚持。由于有这帮患难兄弟,才让我在做毕业设计的这段时间显得不是那么坎坷。 最后,还得感谢我的家人,他们的支持和理解才能让我成功的完成我大学四年的学业。 基于Java的学生成绩管理系统的设计 摘要:21世纪是信息时代,信息技术的快速发展极大的改变了人们的生活方式以及工作方式,这给人们在工作、学习中带来了很大的便利。世界变得越来越小,人们的眼界变得越来越来开阔,对世界的认识是越来越全面。 本文主要是针对贫困地区的教学系统展开研究的,贫困山区的教职工任然采用传统的人工模式来管理成绩,这样既增加了教师的工作量,还浪费了不少资源。 为了贫困山区能够实现信息化管理,而开发这个学生成绩信息管理系统来给那些教职工带来方便。本系统采用B/S(浏览器/服务器)结构,使用SSH(struts2、spring、heberinate)三大框架。B/S模式即网页的模式,在线登入学生成绩管理系统进行操作。本系统有三个权限:管理员,教师,学生。每个权限都有各自操作的模块,管理员可以管理教师和学生的基本信息,课程的安排,成绩的录入和导出;教师可以录入成绩以及学生成绩的导出;学生只能查看自己的成绩。 根据上述的需求,通过对需求的分析及各功能的详细设计,从而开发能够满足学校需求的管理系统。 1 绪论 随着网络的普及以及信息技术的快速发展,信息化管理逐渐不断深入且广泛的应用到了日常生活当中,信息化管理的实施在技术上已经逐步成熟。上世纪90年代以来,管理系统已是一个不断发展和逐渐走向成熟的一门新型学科,任何一个企业要生存和发展,并且把自己公司的内部活动有效率的组织起来,这就需要构建开发与自身特点相符的信息化管理模式。 1.1 课题研究背景 在我国的西北地区和一些贫困地区,由于经济的落后,科技的不发达,从而导致当地的学校教育的落后,学生不能够享受到良好的教育。国家对那些地区的教育资金的投入还是微不足道,教育资源的短缺,和设备的不完善,那里的教职工任然用传统的方式管理着学生的信息和成绩,每个学生的信息都是记录在一个本子上,每一次成绩的统计要不是一张纸或者是一个本子记入,而且每次登记成绩的时候,实在是非常的耗费精力和人力,还要消耗资源,最重要的是万一到时候需要更改信息或者成绩登记有误,那就又是一件麻烦事了,因为有些重要的信息它是不允许有涂改的痕迹,这时候就要重新登记一遍,这是多么麻烦的一件事。 学生成绩管理系统是21世纪高中以及初中不可或缺的教学管理系统。有了这一套系统,不仅可以跟踪学生的学习成绩和奖惩情况,而且还减轻了教职工的工作负担。数据库的强大,相比于传统的信息管理模式,有了量的飞跃,可以存储的数据可以说是无限制的,而且不会出错,系统安全性的设计,可以确保学生的信息不被泄露,备份功能,可以确保学生的信息不被遗失。综上所述,开发学生管理系统对高中和初中是必须要做的一件事。 中学的考试甚多,加之学生又很多,要登记然后管理和统计多少学生90分以上,多少学生80分以上,还有多少学生没通过,这是一个多么庞大的数据,一般的普通中学学生就有两三千人,教职工两三百人,这么庞大的学校规模,需要录入他们的信息和对成绩的管理,可想而知,是多么费时的一件事。然后班级里登记完成绩之后,又要拿去给学校教务处,然后教务处再把成绩录入到系统里面,那为何不直接由每个班的班主任把各自的班级录入到系统里面,这是几乎每个学校存在的缺陷,所以要解决这一问题,就要对现有的学生管理系统进行进一步的改善,从而实现对教师的权限开放,然后又适合那些边缘地区教学系统不发达的地方,也让他们感觉到有了这个管理系统,能够在教学质量和教学效率上有很大的提升。 1.2 课题研究的目的和意义 开发学生成绩管理系统的目的:顾名思义主要是对学生的成绩进行管理和教师可以对学生的成绩录入。所以当老师改完一张试卷后,就可以直接将成绩输入到管理系统里,比以往要登记在纸上,然后还要交到教务处,再把成绩输入到系统里面来的方便多了。而且全班输入完后,马上可以统计自己班的平均分和不及格人数,以及班级的排名,这样老师就可以第一时间了解班级考试的情况,是比上次进步了还是退不了,进步了的话,就要值得表扬,但也不能骄傲,退不了的话,老师就可以进行下一步的工作,到底是哪里出了问题,哪里还需要改进,这样老师的工作效率和学生的学习效率大大提高了,也相应的给管理员减轻了负担。 开发这一管理模式,最主要的还是大众化、兼容性,能够满足各大中学的管理需求,弥补一些学校管理系统存在的漏洞。尤其是对那些贫困地区的中学,他们有的甚至连管理系统都没有,在这高速发达的信息时代,不管是企业、国家机关、军事还是学校,都已实现了信息化管理,信息化管理的好处就是:效率高,不容易出差错,有很好的保密措施,查询方便快捷。 有一个完善的学生成绩管理系统,可以更好的跟踪学生的学习情况,老师也不必浪费许多时间在登记信息和成绩这么繁琐的事情上。这样老师就可以专注地去提高自己的教学质量,把心思花在学生的教育上。开发学生管理系统的主要意义有这几个方面: 第一:可以跟踪每个学生的学习成绩,实现成绩自动化管理后,动态掌握学生的学习情况,以此来督促学生。 第二:可以减少教职工在不重要的事情上花太多时间,实现成绩自动化管理,从而提高学校的教学质量。 第三:可以节省时间,学生和老师可以在线查找自已的成绩和信息,而且能够根据用户需求进行精确查找和模糊查找。 在这计算机技术飞速发展的时代,计算机逐步代替了传统的手工操作,以减轻劳动强度,提高效率。所以设计开发学生成绩管理系统是非常有意义的。 2 系统开发平台和相关理论与技术 本系统是面向全国的初中和高中的一款教学管理系统,经过本人对周边中学的调查,和对贫困地区学校的信息采集,针对国内的管理系统所存在的问题,从而开发这款学生成绩管理系统。本节将重点介绍该系统的开发环境和理论与技术。 2.1 系统开发平台的选择 目前计算机语言有c、c 、c#、.net、Java、PHP、汇编语言等等。开发学生管理系统需要选择合适的语言[2]。 2.1.1 开法语言的选择 目前市面上的管理系统绝大部分用的都是Jsp、PHP这三种语言。它们的共同点都是动态网页技术,都镶嵌在HTML代码中,用语言引擎来解释代码并执行代码。而JSP的语言引擎是java虚拟机,就是将jsp代码编译成.class 文件,并由Java虚拟机来解释执行.class文件。在这三种语言的环境下,HTML 代码主要显示静态的页面,而程序代码进行业务逻辑的处理。一般网页的HTML 代码是通过web服务器运行的,但是Jsp、PHP这三种语言都要依赖环境虚拟机来编译执行程序代码,并把返回结果嵌入到HTML代码中,最后发送给浏览器,显示结果。Jsp、PHP是基于web服务的技术。它们的区别及特点如下: PHP的特点也是跨平台性,支持几乎所有的数据库系统和操作系统,在市场上也较为普及。CGI脚本语言是一种强大的PHP语言,语法包含了C、PHP和Java 的新型的一种语言,速度执行快,效率高,一般比Java,ASP的运行速度快,内嵌有加速引擎,性能稳定,资源占用少,代码运行速度快。并且与Java一样具有很好的可移植性和可扩展性,PHP可以运行在几乎所有的服务器上,属于开放软件,代码也完全公开,任何程序员可以为PHP扩展附加想要的功能。 ASP是有微软开发的动态语言,其特点与JSP非常相似,功能主要可以实现动态网页,实现用户的动态交互功能,它的功能也就是它的特点,不同于HTML 的交互功能,HTML只能简单的访问而无法动态的交互,是一种静态网站。开发工具使用微软开发的Visual Studio这个软件,运行环境也非常局限,只能运行在微软的服务器产品IIS上。 Jsp的特点无疑是跨平台性,因为使用Java API,所以可以在Windows、Linux、Mac等系统中运行。从而扩展了JSP使用web服务器的范围,在者,JSP使用JDBC操作数据库,对那些运行在不同操作系统的数据库,避免了代码的移植而需要更换数据库的问题。 结合实际情况和开发的环境,以及本人对这三种语言的了解程度,该学生成绩管理系统使用Jsp语言开发,即用HTML语言开发页面,Java语言处理后台的业务逻辑。 2.1.2 开发结构的选择 Web开发是目前较为流行的开发体系,Java Web主要有两种开发结构:C/S 开发结构和B/S开发结构[5]。C/S结构是一种客户机与服务器的访问交互,而B/S 是一种浏览器与服务器的访问交互,本学生管理系统属于一个网站,需要在线登入查询学生的信息,所以用到的结构就是B/S结构。 2.1.3 数据库的选择 这些数据的查询以及信息的增删改,数据库都是缺一不可的后台,常用的数据库有:Oracle、Sql Server、MySql、Access等等。 MySql:具有执行速度快、稳定性好、使用方便等特点,已经成为世界上最流行的开放数据库之一。同时,由于它的跨平台性,MySQL数据库能运行Linllx、Windows、Max、HP—UX、AIX、Netware等2O多个平台上。 Oracle:现在大型企业的主流数据库,价格昂贵,但性能非常优秀。 Access:操作简洁、方便,不依赖Server也可以对数据库操作,但安全性不够,加了用户密码容易被破解。 Sql Server:稍微贵些,但只能运行在Windows操作系统下,丝毫没有一点开放性,对跨平台的操作兼容性差,而且对系统的稳定性要求很高。 综上所述,采用的数据库是MySQL。 2.2 系统开发的理论与技术 系统开发的理论最实用的就是MVC设计模式,它是系统设计中的典型结构之一。用到的技术无非是SSH(Struts2、Spring、Hibernate)或者SSM(Struts2、Spring、Mybatis)三大框架。 2.2.1 MVC开发理论 学生管理系统的开发通过应用MVC开发模式,使其代码结构分成三层,以便设计结构清晰明了。 C:(Controller)控制,主要负责控制视图与模型的流程。它就相当于一个多用开关,当客户端发送一个请求,开关端接受到请求,通过解析这个请求,需要发送给哪个模型,开关就往哪里打,控制端并不需要对数据进行处理,它只是一个桥梁,起到交接作用,最后的数据是通过模型调用相应的方法进行处理。 M:(Model)模型,它主要提供业务逻辑,就是对业务逻辑,和前台传过来的数据进行处理,包括对数据的存取,加工操作。一个Model可以为多个view 提供数据及业务上的处理。这样就实现了模型的可重用性,简化了代码,提高了效率。 V:(view)视图,即用户界面,相当于与后台交互的一个端口。在B/S结构下,视图就是浏览器,浏览器向用户显示从后台返回的相关数据,并能够接受用户输入的数据,但是它不进行任何业务逻辑上的处理。 2.2.2 SSH框架分析 Struts2是系统开发的基础框架,主要控制页面的跳转流程,即页面导航的作用[6]。当客户端发送一个HttpServletRequest请求login.action,然后控制器根据请求调用合适的Action,通过调用Action的Execute方法,获取从客户端传过来的参数,执行一定的业务逻辑,最后将处理结果返回到浏览器并显示。 2框架的基本流程 Spring是一个构造Java应用程序的轻量级框架,它即可以构建web程序,也可以构建Java程序[3]。Spring的核心主要是IOC控制反转,它不需要new一个对象,代码全程都不需要创建对象,而是通过Spring框架本身注入对象。即使用IOC容器,就不需要留心组件的创建;它的生存周期也大可不管;组件之间就可以很容易共享;测试也简单多了。 A: 不使用Spring IOC B:使用Spring IOC 2.2 Spring IOC流程 Hibrenate是实现对象/关系映射和数据库交互,JDBC访问数据库的代码就封装在 Hibrenate,并且还封装了一些简单的SQL语句,操作数据库时,只需调用其对象就可以实现简单的增删改操作[13]。其流程如图2.3所示。 Hibrenate框架的基本流程 关于开发学生成绩管理系统,总的可以分三层:显示层,业务逻辑层和数据库层。显示层就用JSP代码来完成,页面之间的跳转即客户端跳转,还有服务器跳转都用Struts2这个框架来控制,很好的将jsp里的Java代码分离开来。使用Hibernate框架又很好的将访问数据库的代码与Action(处理业务逻辑)的代码实现了分离,降低了耦合度。然后Spring的引用,完美的与Struts2、Hibernate进一步整合,并使用它的IOC控制反转对控制逻辑和业务对象实现完全分离[9]。其流程如图2.4所示。 SSH框架的总流程 3 系统具体需求分析 在公司里,当接到一个项目的时候,首先要了解的是客户的需求是什么,要站在客户的角度去思考问题,有不明白的地方,就要第一时间提出来,不要到时候一拿到项目,不问清楚就安排下去让人做,这样的结果就是纳品的时候完全已经偏离了客户的需求。在我们开发这个学生成绩管理系统之前,首先考虑的就是学校的需求,在者就是经济上、技术上的可行性,当三者都达到指标的时候,我们就可以着手进行系统的开发。 3.1 系统需求 但是在分析这三点之前,还要了解学校的日常工作流程。学校每年会有一届老生毕业,也就会有一届新生入学,入学之前,学校教务处就会在学生管理系统中添加班级,然后每个班级都会安排一个班主任。当新生入学报道时,教务处又会将学生的信息录入到学生管理系统中进行维护。一个学校有三个年段,然后教务处会安排一个年段组长,对每个班级进行课程安排,即每门课程所对应的老师。每次考试以后,各班的班主任就可以把本班的成绩录入到学生成绩管理系统中,然后在由年段组长统计汇总各班的成绩情况。 开发本系统主要是面向初中和高中,只要抓住三个重点进行分析,就可以完成该系统的具体分析。第一,学生生源的庞大,需要采集的信息就越多;第二,学校的考试次数多,成绩的录入需要消耗大量的教师资源;第三,要怎么样才能够提高学校的教学质量。 老师:可以录入本班学生的成绩,查看学生的成绩。并导出到excel表进行打印。 管理员:即教务处,可以管理学生和教师的基本信息状况,还可以打印学生和老师的全部信息。 学生:可以查看自己的课程以及成绩,还有班级的排名和年段的排名。 3.2 系统功能需求分析 本系统的设计限制了三个权限,管理员,教师,还有学生。系统管理员是权限最大的,可以对教师与学生的基本信息进行管理,其次是教师可以对学生的成绩进行操作,权限最小的就是学生,只能查看自己的基本信息和成绩。总的权限:管理员>教师>学生。 3.2.1 系统功能组成 开发学生成绩管理系统实现学校的日常管理,需要如下这些功能: (1)成绩管理:可以对每个学生的成绩执行增删改查,并排序,之后把页面信息导出到excel表,进行打印。 (2)账号维护:对密码的修改,可以防止密码的泄露。 (3)班级管理:对班级的信息执行增删改查。 (4)用户登入:登入类型有三个,需要进行用户类型校验。 (5)课程管理:对课程的信息执行增删改查。 (6)学生管理:对学生的信息执行增删改查。 (7)教师管理:对教师的信息执行增删改查。 3.2.2 系统模块框图 (1)学生可以管理自己的个人信息和账号,只能查看成绩。其框图如3.4所示。 (2)教师可以管理自己的个人信息和账号,可以对学生的成绩进行录入并导出。其框图如 (3)管理员的权限最大,可以对教师和学生的信息进行操作,可以录入课程和成绩,并实现成绩的排序导出。其框图如3.2所示。 3.3所示。 4 系统详细设计 根据学生成绩管理系统的整个架构框图,对每个模块,以及每个模块的子模块进行详细的设计,比如登入界面的用户类型的校验它的流程是怎样的,主页面对应的各模块的增删改查的流程的设计,还有导出功能用到的方法,排序用到的算法等等。 4.1 系统功能设计 (1)系统登入验证 当用户在浏览器里输入系统运行的地址,系统就会显示登入界面,然后输入用户名,密码,用户类型以及验证码,点击“登入”按钮,系统对用户输入的信息进行处理,然后登入成功跳转到主界面。如果用户名,密码,用户类型为空时,文本空右边就会显示:“请输入用户名!”,“请输入密码!”,“请选择用户类型!”等相应提示,输错又会提示“用户名和密码错误!”。登入超时是,系统弹出异常提示页面,登入失败。 (2)系统账号维护 删除账号:点击删除按钮,页面就会弹出一个提示小框并显示:“是否要删除这条记录”,然后点确定,删除成功。当访问数据库异常,则系统跳转至错误提示页面,用户点击“返回”按钮,进入账户一览页面。 修改账号:点击修改按钮,在文本框里就会查找出系统原本的账号,然后修改账号和密码点提交,弹出一个小框,提示修改成功。访问数据库出错时,就会在页面上提示“修改账号操作失败!”其流程如图:。 添加账号:当用户进入主界面,左边是管理主菜单,点击系统账号维护里的添加账号,有两个文本框,然后输入用户名和密码,点提交,账号添加成功。访问数据库出错时,就会在页面上提示“请重新输入!”其流程如图。 (2)成绩的排名 在成绩排名中用到了排序的算法,在Java中排序算法其实有12种左右,其中最常用的也就三种:冒泡排序,快速排序,选择排序。 冒泡排序:其实从字面上就可以理解,冒泡就是气泡浮上来了,也就是说轻的气泡一定要上浮,重的气泡要在轻的气泡的下面,这样一来,假如说有一数组a[1…n],根据冒泡这一原理,两两比较,轻的在上,重的在下,反复进行比较,直到轻的都在上面为止。 选择排序:它就是进行每一次等待排序的数组元素中挑出最min或最max 的那一个,按照顺序放在已排好元素的最前或最后。 但是本系统采用ArrayList排序,它会自动调用一个内置的方法来实现降序或升序进行对成绩排序,然后通过ArrayList遍历输出显示到页面。 (3)成绩导出到excel表 成绩的导出方便了老师打印成绩排名表,大大提高了老师的工作效率。怎么样实现这个导出功能:导出功能导出的文件默认是excel表格式,先创建一个输出流对象,通过一个方法设定好表的名字,然后设定好导出表的字段。 4.2 数据库的设计 数据库是数据存储的一个可以管理的仓库,是一个可以存储数据且存储内存庞大的仓库,数据不单单是指我们平时所说的12345这些数字,它也可以是图片,表格,视屏,音频以及文件。对于学生成绩管理系统数据库是非常重要的,没有了数据库,学生成绩管理系统就相当于没有了内脏的一个驱壳,根本就失去了它原本的作用。 4.2.1 数据库表结构设计 数据库是数据存储的一个可以管理的仓库,因为可以管理,所以要怎样管理数据库才能使数据库在安全性上达到指标,数据库的安全性实际上就是对数据库加密,加密方式其实有两种,一种是数据库本身加密,就是当你打开数据库时是需要输入账号和密码的,这是第一层加密,这一层加密其实是很容易可以破解的。第二种加密就是代码的加密,这种加密方式安全性能高,不容易被破解。其次就是数据表结构的设计,表结构的合理性直接关系到数据操作的效率,表结构的合理性优化,可以提高数据库运行效率,也可以保证学生成绩管理系统的对数据的一致性和完整性。设计数据库时,要确定所要存储这些信息的字段,字段之间有什么联系,从而确定主键和外键,然后设计需要建几张表。每张表之间的相互关系是怎样的,尽量将表结构优化到最佳。 (1)下面是数据表结构的设计,总共设计6张表: 管理员表(管理员id,用户名,密码) 班级表(班级_id,班级_name,年级,教师_id) 教师表(教师_id,教师_no,教师_ name,年龄,用户名,密码,联系方式) 学生表(学生_id,学号,学生_ name,性别,年龄,用户名,密码,联系方式) 课程表(课程_id,课程_no,课程_ name,课程_jiangci,课程_weekly,学分) 成绩表(学生_id,课程_id,班级_id,成绩) (2)数据库表实例设计 本系统运用的数据库是MySQL数据库,MySQL数据库是一个小型的数据库,体积小,占用资源小,用于学生的研究是最佳的选择。接下来对本系统的这六张表进行展开分析。 管理员表有3个字段,管理员id作为主键,且不能为空,其他两个字段为用户名与密码,也不能为空。具体的结构如表4.9所示。 班级表有4个字段,班级id作为主键,教师id作为外键,其它两个字段为班级名称和年级。具体的结构如表4-10所示。 教师表有8个字段,教师id为主键,且不可为空,其余的字段都可以为空,具体的结构如表4.11所示。 学生表有8个字段,学生id作为主键,且不能为空,其余字段可以为空,其具体结构如表4.12所示。 课程表有6个字段,课程 id作为主键,且不能为空,其余字段可以为空,其具体结构如表4.13所示。 成绩表有4个字段,学生id,课程id,班级id三个字段作为主键,且不能为空,成绩字段也不能为空。其具体结构如表4.14所示。 以上就是数据库表的设计,它们每张表之间都有一定的表关联,也就是关系数据库模型,根据表里的字段的相互关系,然后访问数据库。 5 系统功能的实现与测试 本章主要讲解系统的登入权限管理的代码流程的分析,以及成绩导出功能的详解,其它模块的流程分析已经在第四章详细讲过了。其次,当学生成绩管理系统开发完成后,测试是必不可少的关键的一个步骤,它可以检测出系统各功能是否符合规定的要求。测试分为两种,一种是黑盒测试,主要对系统的功能测试,是否能够正常运行。还有一种是白盒测试,主要是对代码的测试,通过调用debug 对相应的case进行运行测试,简单的说就调一遍代码的运行流程,看看每个逻辑以及参数值是否正确。 5.1 SSH框架的搭建 当我们写程序之前,一定要先搭建好整个系统的框架,很显然开发学生管理系统引入了SSH框架,所以我们要先把整个配置流程给做好,其次就是在这框架里写代码,这样开发效率就大大提高了。 (1)Hibrenate框架搭建 Hibrenate的作用是实现实体类与数据库表的映射关系。这关系的的配置文件是*.hbm.xml。其字段的所有信息都存储在t_*信息表里。然后还要创建Javabeen,对been的属性实现set和get方法。之后构建数据库访问类,其命名为:*DAO.java, (2)Spring框架的搭建 Spring框架在这学生成绩管理系统起数据库连接池的作用,数据库的配置以及访问数据库的用户名和密码也是写在这个配置中,本系统的数据库用户名为:root,密码:123456。其中sessionFactory是数据库连接池,连接池里可以获取许多数据库连接,获取到的连接就是这个session,session代表一个数据库连接, Factory相当于session的工厂,并且Factory可以创建很多的session。其次Spring 的还有个作用就是类的加载,整个业务逻辑中就不需要new一个对象来间接访问,直接通过Spring自身的作用引用类就行了,并在该类中实现其属性的set和get方法。配置文件代码如下: (3)Struts2框架的搭建 Struts框架其实就是实现页面跳转的一个控制器。Jsp页面提交一个请求,通过form表单的action的名称找到Struts配置文件的相对应的action名称,然后在通过class类的配置路径跳到*Action.java,调用里面的方法执行业务逻辑,成功return succeed,跳到成功的界面,return error,跳到显示错误的界面。 5.2 功能的实现 本章主要对学生成绩管理系统重要的功能进行代码分析。 (1)登入功能 每个用户要进入本系统进行操作,都要输入用户名和密码,还要选择用户类型。 当页面的文本框输入用户名、密码以及用户类型,点击登入按钮,之后就会触发控件onclick=check(),进入function check()这个方法,用if语句做判断,为空时就会提示“请输入用户名”和“请输入密码”,return false。输入有值时,通过loginService这个类调用其login()方法,将用户名、密码和用户类 型传给这个loginService类,再通过login()方法里的if判断语句,进行用户类型的判断:当userType=1时,用户类型为管理员;当userType=2时,用户类型为教师;当userType=3时,用户类型为学生。 (3)账号维护功能 用户通过账号、密码和用户类型进入主界面,主界面的左边有六个模块:系统Manage,班级Manage,教师Manage,学生Manage,课程Manage,成绩Manage。 1账户添加:在jsp页面的文本框里输入用户名和密码点提交,通过form action=adminAdd.action这个标签,找到Struts配置文件相应的action的name,然后通过class路径=adminAction,method=adminAdd,找到adminAction这个类并调用adminAdd这个方法实现账户的添加,并返回成功提示:操作成功。其功能界面如图5.2所示。 2账户删除:当在页面上点击删除c账户时,就会触发onclick=adminDelete 控件,跳转到function adminDelete这个方法,通过property标签从值栈里取出userId,把这个userId传给function adminDelete这个方法,根据Struts 的配置文件然后跳转到adminAction这个类,调用adminDelete方法,根据从页面传过来的userId进行删除,并返回提示:删除成功!。 3修改密码功能 在jsp界面的文本框里首先需要输入原密码:222222,然后输入新密码:123456,再确认密码,点击“修改”按钮。触发onclick=check()控件,调用function check()方法,通过if语句判断:原密码是否正确?新密码是否为空?确认密码是否与新密码一致?然后调用loginService类,实现adminPwEdit 方法,将新密码传进这个方法进行业务逻辑处理,返回成功并提示:修改成功。 (2)学生信息管理模块功能 学生信息管理主要是对每个学生的信息执行添加,修改,删除和查找的操作。其中添加、修改和删除与上一小节的账号的增删改类似。这里主要分析学生的查找功能,可以按照学生的学号进行精确查找。 当在jsp页面的查找文本框里输入:10313102这个学号,点查询,通过form action=search.action表单,根据Struts配置文件找到对应的action的 name=search,然后解析class=stuAction,method=search,找到stuAction类,调用search方法,利用request.getParameter这个方法取得学号:10313102,然后在list集合里取得这个学号的所用信息,并显示到页面上。 (3)导出功能 导出功能是以excel格式将数据库里的数据导出到本地,点击生成报表,就会出现一个下载框,点下载,生成了一张成绩表。 当点击生成报表,它就会触发onlick=createTable这个控件,进到function createTable()这个方法,通过window.location.href=/createTable.action,找到struts配置文件的路径: 5.3 系统的测试 本章主要对学生成绩管理系统的功能进行测试,即黑盒测试。通过对页面的操作,测试每个功能是否能正常运行。 (1)对每个输入框的测试,主要是输一些临界值和一些特殊的字符,看它能否添加成功,还是会显示出错提示?如果能添加成功,说明拦截器设计有问题,没有把这些特殊的字符给过滤掉。如果有了错误的提示,说明运行成功了。 (2)对每个模块的查询功能进行测试,精确查找和模糊查找是否正确。精确查找就是输入一个完整的查询条件,看能否根据这个查询条件,查找出对应的信息。模糊查找就是输入一个关键字,就能查找出带有关键字的所用信息。 (3)对每个页面的跳转链接进行测试,点击“提交、编辑、添加、删除”它们跳转的页面是否正确,还有点击主菜单的按钮,它们相应的跳转页面是否正确。(4)导出功能的测试,主要测试导出到excel表的数据是否正确;成绩排序功能是否是降序排序;是否能多张表一起导出。 当这些功能都测试过了,差不多系统就开发完成了。通过对本系统按照上面的步骤测试,测试结果是功能基本上都能实现。 6 总结 经过一个学期毕业设计的制作,从最初的选题,然后确定题目的那一天开始,我就根据题目查找了有关学生成绩管理系统的文献与期刊,不管是上网,还是去图书馆,在这期间我阅读了大量的文献资料,然后准备完成开题报告,文献综述和英文翻译。做了这么多的前期准备,不仅我的英语水平提高了,也为之后开发学生成绩管理系统奠定了良好的基础。 如今信息技术的迅猛发展,互联网的快速普及,甚至已经普及到各家各户。手机行业自从07年开始已经出现了翻天覆地的变化,从最初的键盘式输入,到苹果的第一代iPhone触摸屏,之后手机就是触摸屏的时代了。信息化管理其实已经不是这几年的事了,这项技术已经非常成熟了,但是现用的学校教务管理系统任然存在着缺陷,比如:系统的不稳定,老是要奔溃;当大量的用户访问系统,运行速度会非常慢。 开发本学生成绩管理系统主要是对学生的成绩进行管理。并且引入SSH框架,使整个系统代码结构更加清晰,对后期的维护更加的方便安全。稳定性方面也有了很大的提升。 下面对本系统开发过程中所做的工作进行汇总: (1)开发语言与模式的选择:首先开发系统之前,要对系统开发所用的语言,开发结构,以及所要用到的框架进行分析并选择,进过分析与对比,决定用Java语言开发,开发模式用B/S,框架用SSH。 (2)系统总体的分析:开发学生成绩管理系统需要对其进行风险的评估,通过对经济可行性,技术可行性的分析,将开发本性的风险降到最低。然后通过流程图对每个模块的功能进行分析。最后搭建框架,进行开发。 (3)系统的测试:开发好学生管理系统后,要对每个功能进行测试,尤其是权限、排名、导出这几个功能要重点测试。
信息发布:广州名易软件有限公司 http://www.myidp.net
|