




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆大学网络教育学院 毕业设计(论文) 题目 学生成绩管理系统设计与实践 学生所在校外学习中心 XXXX 校外学习中心 批次 层次 专业 142 批次专升本计算机科学与技术 学 号 WXXXX 学 生 李 XXX 指 导 教 师 杨 XXX 起 止 日 期 2017年2月22日起至2017年4月5日止 2 摘摘 要要 随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及 到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种远程网 络在线教育系统、图书馆管理系统、学籍管理系统,学生成绩管理系统等。其中 成绩管理是任一院校都不可缺少的部分,与传统的人工管理方式比较,它能够为 管理人员提供充足的信息和快捷的查询手段,提高学校学生成绩管理的效果。所 以学生成绩管理信息系统的开发和应用是必要的。 为了实现信息化管理,而开发这个学生成绩信息管理系统,以期给教职工带来 方便。本系统采用 B/S(浏览器/服务器)结构,使用 SSH(struts2、spring、heberinate)三大框架。B/S 模式即网页的模式,在线登入 学生成绩管理系统进行操作。本系统有三个权限:管理员,教师,学生。每个权限 都有各自操作的模块,管理员可以管理教师和学生的基本信息,课程的安排,成绩 的录入和导出;教师可以录入成绩以及学生成绩的导出;学生只能查看自己的成绩。 根据上述的需求,通过对需求的分析及各功能的详细设计,从而开发能够满 足学校需求的管理系统。 关键词:学生成绩管理系统关键词:学生成绩管理系统 JSPJSP MYSQLMYSQL 3 目目 录录 摘 要.2 1 引 言 .4 2.1 系统开发平台的选择 .4 2.1.1 开发语言的选择 .5 2.1.2 开发结构的选择 .5 2.1.3 数据库的选择 .6 2.2 系统开发的理论与技术 .6 2.2.1 MVC 开发理论.6 2.2.2 SSH 框架分析.7 3.1 系统需求 .9 3.2 系统功能需求分析 .10 3.2.1 系统功能组成 .10 3.2.2 系统模块框图 .11 4.1 系统功能设计 .13 4.2 数据库的设计 .18 4.2.1 数据库表结构设计 .18 5 系统功能的实现与测试.21 5.1 SSH 框架的搭建.21 5.2 功能的实现 .22 5.3 系统的测试 .26 6 系统的评价.27 参考文献.28 4 1 1 引引 言言 随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。 学校在管理、教学、办公各个方面也在悄悄地变化,作为一个教育单位不可缺少的 部分学生成绩管理系统,它的内容对于学校的决策者和管理者来说都至关重要, 一款先进的学生成绩管理系统必定会使教学更先进、办公更高效、管理更科学, 信息交流更迅速,所以学生成绩信息管理系统应该能够为用户提供充足的信息和 快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理 方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和 数据,这对于查找、更新和维护都带来了不少的困难。 作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工 管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密 性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企 业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,故决定选择学生成绩管 理系统来作为本人的毕业设计,在很短的时间里开发出一套界面友好,功能强大, 使用简单的适用于各规模学院的学生成绩管理系统。该学生成绩管理系统能有效 的处理在校学生的成绩管理,具有成绩输入、成绩查询、成绩统计及打印功能。 学生成绩管理系统可以实施应用在各中、大、小院校中,适用范围很广,应 用性强。随着系统实施的日益成熟,最终会使单机作业为主的教学管理活动提高 到这个平台上来,从而实现学校学生成绩信息管理的办公自动化,籍以提高办学 效率和质量。使学校充分利用计算机所带来的新技术,为培养人才打下坚实的基 础。 2 2 系统开发平台和相关理论与技术系统开发平台和相关理论与技术 本系统是面向全国的初中和高中的一款教学管理系统,经过本人对周边中学的 调查,和对贫困地区学校的信息采集,针对国内的管理系统所存在的问题,从而开 发这款学生成绩管理系统。本节将重点介绍该系统的开发环境和理论与技术。 2.12.1 系统开发平台的选择系统开发平台的选择 目前计算机语言有 c、c+、c#、.net、Java、PHP、汇编语言等等。开发学生 管理系统需要选择合适的语言2。 5 .1 开发语言的选择开发语言的选择 目前市面上的管理系统绝大部分用的都是 Jsp、ASP.Net、PHP 这三种语言。它 们的共同点都是动态网页技术,都镶嵌在 HTML 代码中,用语言引擎来解释代码并执 行代码。而 JSP 的语言引擎是 java 虚拟机,就是将 jsp 代码编译成.class 文件, 并由 Java 虚拟机来解释执行.class 文件11。在这三种语言的环境下,HTML 代码主 要显示静态的页面,而程序代码进行业务逻辑的处理。一般网页的 HTML 代码是通过 web 服务器运行的,但是 Jsp、ASP.Net、PHP 这三种语言都要依赖环境虚拟机来编 译执行程序代码,并把返回结果嵌入到 HTML 代码中,最后发送给浏览器,显示结果。 Jsp、ASP.Net、PHP 是基于 web 服务的技术。它们的区别及特点如下: Jsp 的特点无疑是跨平台性,因为使用 Java API,所以可以在 Windows、Linux、Mac 等系统中运行10。从而扩展了 JSP 使用 web 服务器的范围, 在者,JSP 使用 JDBC 操作数据库,对那些运行在不同操作系统的数据库,避免了代 码的移植而需要更换数据库的问题。 ASP 是有微软开发的动态语言,其特点与 JSP 非常相似,功能主要可以实现动 态网页,实现用户的动态交互功能,它的功能也就是它的特点,不同于 HTML 的交互 功能,HTML 只能简单的访问而无法动态的交互,是一种静态网站。开发工具使用微 软开发的 Visual Studio 这个软件,运行环境也非常局限,只能运行在微软的服务 器产品 IIS 上。 PHP 的特点也是跨平台性,支持几乎所有的数据库系统和操作系统,在市场上 也较为普及。CGI 脚本语言是一种强大的 PHP 语言,语法包含了 C、PHP 和 Java 的 新型的一种语言,速度执行快,效率高,一般比 Java,ASP 的运行速度快,内嵌有 加速引擎,性能稳定,资源占用少,代码运行速度快。并且与 Java 一样具有很好的 可移植性和可扩展性,PHP 可以运行在几乎所有的服务器上,属于开放软件,代码 也完全公开,任何程序员可以为 PHP 扩展附加想要的功能。 结合实际情况和开发的环境,以及本人对这三种语言的了解程度,该学生成绩 管理系统使用 Jsp 语言开发,即用 HTML 语言开发页面,Java 语言处理后台的业务 逻辑。 .2 开发结构的选择开发结构的选择 Web 开发是目前较为流行的开发体系,Java Web 主要有两种开发结构:C/S 开 发结构和 B/S 开发结构5。C/S 结构是一种客户机与服务器的访问交互,而 B/S 是 6 一种浏览器与服务器的访问交互,本学生管理系统属于一个网站,需要在线登入查 询学生的信息,所以用到的结构就是 B/S 结构。 .3 数据库的选择数据库的选择 这些数据的查询以及信息的增删改,数据库都是缺一不可的后台,常用的数据 库有:Oracle、Sql Server、MySql、Access 等等。 Oracle:现在大型企业的主流数据库,价格昂贵,但性能非常优秀4。 Sql Server:稍微贵些,但只能运行在 Windows 操作系统下,丝毫没有一点开 放性,对跨平台的操作兼容性差,而且对系统的稳定性要求很高。 Access:操作简洁、方便,不依赖 Server 也可以对数据库操作,但安全性不够, 加了用户密码容易被破解。 MySql:具有执行速度快、稳定性好、使用方便等特点,已经成为世界上最流行 的开放数据库之一。同时, 由于它的跨平台性,MySQL数据库能运行 Linllx、Windows、ax、HPUX、AIX、Netware等2O多个平台上7。 综上所述,采用的数据库是MySQL。 2.22.2 系统开发的理论与技术系统开发的理论与技术 系统开发的理论最实用的就是 MVC 设计模式,它是系统设计中的典型结构之一。 用到的技术无非是 SSH(Struts2、Spring、Hibernate)或者 SSM(Struts2、Spring、Mybatis)三大框架。 .1 MVCMVC 开发理论开发理论 学生管理系统的开发通过应用 MVC 开发模式,使其代码结构分成三层,以便设 计结构清晰明了。 V:(view)视图,即用户界面,相当于与后台交互的一个端口。在 B/S 结构下, 视图就是浏览器,浏览器向用户显示从后台返回的相关数据,并能够接受用户输入 的数据,但是它不进行任何业务逻辑上的处理。 M:(Model)模型,它主要提供业务逻辑,就是对业务逻辑,和前台传过来的 数据进行处理,包括对数据的存取,加工操作。一个 Model 可以为多个 view 提供数 据及业务上的处理。这样就实现了模型的可重用性,简化了代码,提高了效率。 C:(Controller)控制,主要负责控制视图与模型的流程。它就相当于一个多 用开关,当客户端发送一个请求,开关端接受到请求,通过解析这个请求,需要发 7 送给哪个模型,开关就往哪里打,控制端并不需要对数据进行处理,它只是一个桥 梁,起到交接作用,最后的数据是通过模型调用相应的方法进行处理。 .2 SSHSSH 框架框架分析分析 Struts2 是系统开发的基础框架,主要控制页面的跳转流程,即页面导航的作 用6。当客户端发送一个 HttpServletRequest 请求 login.action,然后控制器根 据请求调用合适的 Action,通过调用 Action 的 Execute 方法,获取从客户端传过 来的参数,执行一定的业务逻辑,最后将处理结果返回到浏览器并显示。其流程如 图:2.1 所示。 图 2.1 Struts2 框架的基本流程 Spring 是一个构造 Java 应用程序的轻量级框架,它即可以构建 web 程序,也 可以构建 Java 程序3。Spring 的核心主要是 IOC 控制反转,它不需要 new 一个对 象,代码全程都不需要创建对象,而是通过 Spring 框架本身注入对象。即使用 IOC 容器,就不需要留心组件的创建;它的生存周期也大可不管;组件之间就可以很容 易共享;测试也简单多了。其流程如图 2.2 所示。 A: 不使用 Spring IOC 8 B:使用 Spring IOC 图 2.2 Spring IOC 流程 Hibrenate 是实现对象/关系映射和数据库交互,JDBC 访问数据库的代码就封装 在 Hibrenate,并且还封装了一些简单的 SQL 语句,操作数据库时,只需调用其对 象就可以实现简单的增删改操作13。其流程如图 2.3 所示。 图 2.3 Hibrenate 框架的基本流程 9 图 2.4 SSH 框架的总流程 关于开发学生成绩管理系统,总的可以分三层:显示层,业务逻辑层和数据库层。 显示层就用 JSP 代码来完成,页面之间的跳转即客户端跳转,还有服务器跳转都用 Struts2 这个框架来控制,很好的将 jsp 里的 Java 代码分离开来。使用 Hibernate 框架又很好的将访问数据库的代码与 Action(处理业务逻辑)的代码实现了分离, 降低了耦合度。然后 Spring 的引用,完美的与 Struts2、Hibernate 进一步整合, 并使用它的 IOC 控制反转对控制逻辑和业务对象实现完全分离9。其流程如图 2.4 所示。 3 3 系统具体需求分析系统具体需求分析 当接到此系统开发任务后,通过调查,委托学校要求系统具有权限设置功能的 登录模块,学生可以实现成绩信息查询功能。教务管理人员能够实现注册新用户, 学生成绩信息的查询、录入、删除、修改、浏览、统计等功能。再次就是经济上、 技术上的可行性,当三者都达到指标的时候,我们就可以着手进行系统的开发。 3.13.1 系统需求系统需求 成绩管理主要是由教务处对教师、对课程、对学生、对学生成绩进行管理,以期 让教师、学生能够随时对学生成绩进行各种查询。系统的服务对象有系统管理员、教 师、学生。根据用户的身份有不同的需求。 管理员:即教务处,可以管理学生和教师的基本信息状况,还可以打印学生和 老师的全部信息。 老师:可以录入本班学生的成绩,学生的成绩是需要由人工录入的,因此系统 就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入 一个数据窗口来实现录入这方面信息的功能。还需要能查看学生的成绩。并导出到 excel 表进行打印。 学生:可以查看自己的课程以及成绩,还有班级的排名和年段的排名。因此为了 显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询 功能。 由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要 特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户 才能登录此系统。为了简单化,我们的用户名和用户密码和数据库本身的用户名密码 10 相同。系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口 中完成相应的功能。 3.23.2 系统功能需求分析系统功能需求分析 本系统的设计限制了三个权限,管理员,教师,还有学生。系统管理员是权限 最大的,可以对教师与学生的基本信息进行管理,其次是教师可以对学生的成绩进 行操作,权限最小的就是学生,只能查看自己的基本信息和成绩。总的权限:管理 员教师学生。 .1 系统功能组成系统功能组成 开发学生成绩管理系统实现学校的日常管理,需要如下这些功能: (1) 用户登入:登入类型有三个,需要进行用户类型校验。 (2) 账号维护:对密码的修改,可以防止密码的泄露。 (3) 班级管理:对班级的信息执行增删改查。 (4) 教师管理:对教师的信息执行增删改查。 (5) 学生管理:对学生的信息执行增删改查。 (6) 课程管理:对课程的信息执行增删改查。 (7) 成绩管理:可以对每个学生的成绩执行增删改查,并排序,之后把页面信息 导出到 excel 表,进行打印。 其整个系统的框图如 3.1 所示 11 图 3.1 系统整体框图 3.2.2 系统模块框图 (1)管理员的权限最大,可以对教师和学生的信息进行操作,可以录入课程和成绩, 并实现成绩的排序导出。其框图如 3.2 所示。 用户类型校验 学生老师管理员 账 号 维 护 成 绩 管 理 班 级 管 理 教 师 管 理 课 程 管 理 学 生 管 理 账 号 维 护 个 人 信 息 成 绩 管 理 个 人 信 息 成 绩 管 理 执 行 增 删 改 查 排 序 并 导 出 执 行 增 删 改 查 排 序 并 导 出 执 行 增 删 改 查 成 绩 查 询 用户登入 12 图 3.2 管理员框图 (2) 教师可以管理自己的个人信息和账号,可以对学生的成绩进行录入并导出。 其框图如 3.3 所示。 图 3.3 教师框图 (3)学生可以管理自己的个人信息和账号,只能查看成绩。其框图如 3.4 所示。 管理员用户 账号维护 成绩管理 班级管理 教师管理 课程管理 学生管理 执行增删改查 排序并导出 教师 账号维护 个人信息 成绩管理 执行增删改查 排序并导出 13 图 3.4 学生框图 4 4 系统详细设计系统详细设计 根据学生成绩管理系统的整个架构框图,对每个模块,以及每个模块的子模块 进行详细的设计,比如登入界面的用户类型的校验它的流程是怎样的,主页面对应 的各模块的增删改查的流程的设计,还有导出功能用到的方法,排序用到的算法等 等。 4.14.1 系统功能设计系统功能设计 (1)系统登入验证 当用户在浏览器里输入系统运行的地址,系统就会显示登入界面,然后输入用 户名,密码,用户类型以及验证码,点击“登入”按钮,系统对用户输入的信息进 行处理,然后登入成功跳转到主界面。如果用户名,密码,用户类型为空时,文本 空右边就会显示: “请输入用户名!” , “请输入密码!” , “请选择用户类型!”等 相应提示,输错又会提示“用户名和密码错误!” 。登入超时是,系统弹出异常提示 页面,登入失败。登入验证流程如图:4.1 所示。 图 4.1 系统登入验证流程 学生 个人信息 成绩管理 执行增删改查 成绩查询 账号维护 14 (2)系统账号维护 添加账号:当用户进入主界面,左边是管理主菜单,点击系统账号维护里的添 加账号,有两个文本框,然后输入用户名和密码,点提交,账号添加成功。访问数 据库出错时,就会在页面上提示“请重新输入!”其流程如图:4.2 所示。 图 4.2 系统账号维护流程 修改账号:点击修改按钮,在文本框里就会查找出系统原本的账号,然后修改 账号和密码点提交,弹出一个小框,提示修改成功。访问数据库出错时,就会在页 面上提示“修改账号操作失败!”其流程如图:4.3 所示。 图 4.3 修改账号流程 删除账号:点击删除按钮,页面就会弹出一个提示小框并显示:“是否要删除 这条记录” ,然后点确定,删除成功。当访问数据库异常,则系统跳转至错误提示页 面,用户点击“返回”按钮,进入账户一览页面。其流程如图:4.4 所示。 15 图 4.4 删除账号流程 账号维护总组件关系如图所示 图 4.5 账号维护总组件关系 学生管理总组件关系如图所示: ZhaoAccountAction Struts2 配置映射文件:struts.xml Index.html 账号初始化 管理请求 ZhaoAccountPage.jsp error.jsp updateZhaoAccount.jsp addZhaoAccountPage.jsp 账号维护列表 异常 更新 ZhaoAccountService ZhaoAccountServiceImpl I ZhaoAccountDAOImpl I ZhaoAccount DB Hibernate ORM ZhaoAccountDAO Spring 容器的管理:application.xml 添加 处 理 对 象 注入组件 接口实现 注入组件 16 图 4.6 学生管理总组件关系 (2)成绩的排名 在成绩排名中用到了排序的算法,在 Java 中排序算法其实有 12 种左右,其中 最常用的也就三种:冒泡排序,快速排序,选择排序。 冒泡排序:其实从字面上就可以理解,冒泡就是气泡浮上来了,也就是说轻的 气泡一定要上浮,重的气泡要在轻的气泡的下面,这样一来,假如说有一数组 a1n,根据冒泡这一原理,两两比较,轻的在上,重的在下,反复进行比较,直 到轻的都在上面为止。示列如表: StuAccountAction Struts2 配置映射文件:struts.xml Index.html 教师初始化 管理请求 StuAccountPage.jsp error.jsp updateStuAccount.jsp addStuAccountPage.jsp 教师管理列表 异常 更新 StuAccountService StuAccountServiceImpl I StuAccountDAOImpl I StuAccount DB Hibernate ORM StuAccountDAO Spring 容器的管理:application.xml 添加 处 理 对 象 注入组件 接口实现 注入组件 17 表 4.7 冒泡法演示 8880918576 原来的数组 8880918576 (8876)交换(8076)交换(9176)交换(8576)交 换 第一次比较演示 7688809185 (8880)交换(8085)交 换 第二次比较演示 7680888591 (8885)交换(8591)不交换 第三次比较演示 7680858891 (8591)不交换 第四次比较演示 7680858891 最终结果 选择排序:它就是进行每一次等待排序的数组元素中挑出最 min 或最 max 的那 一个,按照顺序放在已排好元素的最前或最后。示列如表: 表 4.8 选择排序演示 8880918576 原来的数组 8880918576 在这五个数中选出最 min=76 第一次比较演示 7680918588 在这四个数中选出最 min=80 第二次比较演示 7680918588 在三个数中选出最 min=85 第三次比较演示 7680859188 最 min=88 第四次比较演示 7680858891 最终结果 但是本系统采用 ArrayList 排序,它会自动调用一个内置的方法来实现降序或升 序进行对成绩排序,然后通过 ArrayList 遍历输出显示到页面。 (3)成绩导出到 excel 表 成绩的导出方便了老师打印成绩排名表,大大提高了老师的工作效率。怎么样 18 实现这个导出功能:导出功能导出的文件默认是 excel 表格式,先创建一个输出流 对象,通过一个方法设定好表的名字,然后设定好导出表的字段。 4.24.2 数据库的设计数据库的设计 数据库是数据存储的一个可以管理的仓库,是一个可以存储数据且存储内存庞 大的仓库,数据不单单是指我们平时所说的 12345 这些数字,它也可以是图片,表 格,视屏,音频以及文件。对于学生成绩管理系统数据库是非常重要的,没有了数 据库,学生成绩管理系统就相当于没有了内脏的一个驱壳,根本就失去了它原本的 作用。 .1 数据库表结构设计数据库表结构设计 数据库是数据存储的一个可以管理的仓库,因为可以管理,所以要怎样管理数 据库才能使数据库在安全性上达到指标,数据库的安全性实际上就是对数据库加密, 加密方式其实有两种,一种是数据库本身加密,就是当你打开数据库时是需要输入 账号和密码的,这是第一层加密,这一层加密其实是很容易可以破解的。第二种加 密就是代码的加密,这种加密方式安全性能高,不容易被破解。其次就是数据表结 构的设计,表结构的合理性直接关系到数据操作的效率,表结构的合理性优化,可 以提高数据库运行效率,也可以保证学生成绩管理系统的对数据的一致性和完整性。 设计数据库时,要确定所要存储这些信息的字段,字段之间有什么联系,从而确定 主键和外键,然后设计需要建几张表。每张表之间的相互关系是怎样的,尽量将表 结构优化到最佳。 (1)下面是数据表结构的设计,总共设计 6 张表: 管理员表(管理员 id,用户名,密码) 班级表(班级_id,班级_name,年级,教师_id) 教师表(教师_id,教师_no,教师_ name,年龄,用户名,密码,联系方式) 学生表(学生_id,学号,学生_ name,性别,年龄,用户名,密码,联系方 式) 课程表(课程_id,课程_no,课程_ name,课程_jiangci,课程_ weekly,学 分) 成绩表(学生_id,课程_id,班级_id,成绩) (2)数据库表实例设计 19 本系统运用的数据库是 MySQL 数据库,MySQL 数据库是一个小型的数据库,体 积小,占用资源小,用于学生的研究是最佳的选择。接下来对本系统的这六张表进 行展开分析。 管理员表有 3 个字段,管理员 id 作为主键,且不能为空,其他两个字段为用户 名与密码,也不能为空。具体的结构如表 4.9 所示。 表 4.9 管理员表 字段名类型长度可否为 null 主键外键 userIdint10 否是否 userNamevarchar20 否否否 userPasswordvarchar20 否否否 班级表有 4 个字段,班级 id 作为主键,教师 id 作为外键,其它两个字段为班 级名称和年级。具体的结构如表 4-10 所示。 表 4.10 班级信息表 字段名类型长度可否为 null 主键外键 classIdint10 否是否 classNamevarchar20 是否否 nianJiint10 是否否 teacherIdint10 是否是 教师表有 8 个字段,教师 id 为主键,且不可为空,其余的字段都可以为空,具 体的结构如表 4.11 所示。 表 4.11 教师信息表 字段名类型长度可否为 null 主键外键 teacherIdint10 否是 teaNumvarchar10 teaNamevarchar20 sexchar1 ageint3 teaUservarchar20 teaPWvarchar20 是否 否 20 telephoneint20 学生表有 8 个字段,学生 id 作为主键,且不能为空,其余字段可以为空,其具 体结构如表 4.12 所示。 表 4.12 学生信息表 字段名类型长度可否为 null 主键外键 studentIdint10 否是 stuNumvarchar20 stuNamevarchar20 sexchar1 ageint3 stuUservarchar20 stuPWvarchar20 telephoneint20 是否否 课程表有 6 个字段,课程 id 作为主键,且不能为空,其余字段可以为空,其 具体结构如表 4.13 所示。 表 4.13 课程信息表 字段名类型长度可否为 null 主键外键 courseIdint10 否是 courseNumvarchar20 courseNamevarchar20 courseJciint2 courseZciint2 creditint2 是否否 成绩表有 4 个字段,学生 id,课程 id,班级 id 三个字段作为主键,且不能为 空,成绩字段也不能为空。其具体结构如表 4.14 所示。 表 4.14 成绩表 字段名类型长度可否为 null 主键外键 stuIdint10 courseIdint10 否是否 21 classIdint10 gradeint3 以上就是数据库表的设计,它们每张表之间都有一定的表关联,也就是关系数 据库模型,根据表里的字段的相互关系,然后访问数据库。 22 5 5 系统功能的实现与测试系统功能的实现与测试 本章主要讲解系统的登入权限管理的代码流程的分析,以及成绩导出功能的详 解,其它模块的流程分析已经在第四章详细讲过了。其次,当学生成绩管理系统开 发完成后,测试是必不可少的关键的一个步骤,它可以检测出系统各功能是否符合 规定的要求。测试分为两种,一种是黑盒测试,主要对系统的功能测试,是否能够正 常运行。还有一种是白盒测试,主要是对代码的测试,通过调用 debug 对相应的 case 进行运行测试,简单的说就调一遍代码的运行流程,看看每个逻辑以及参数值 是否正确。 5.15.1 SSHSSH 框架的搭建框架的搭建 当我们写程序之前,一定要先搭建好整个系统的框架,很显然开发学生管理系 统引入了 SSH 框架,所以我们要先把整个配置流程给做好,其次就是在这框架里写 代码,这样开发效率就大大提高了。 (1)Hibrenate 框架搭建 Hibrenate 的作用是实现实体类与数据库表的映射关系。这关系的的配置文件 是*.hbm.xml。其字段的所有信息都存储在 t_*信息表里。然后还要创建 Javabeen, 对 been 的属性实现 set 和 get 方法。之后构建数据库访问类,其命名为:*DAO.java, 并继承 HibernateDaoSupport 这个类。*.hbm.xml 配置信息如下: . (2)Spring 框架的搭建 Spring 框架在这学生成绩管理系统起数据库连接池的作用,数据库的配置以及 访问数据库的用户名和密码也是写在这个配置中,本系统的数据库用户名为: 23 root,密码:。其中 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.25.2 功能的实现功能的实现 本章主要对学生成绩管理系统重要的功能进行代码分析。 (1)登入功能 每个用户要进入本系统进行操作,都要输入用户名和密码,还要选择用户类型。 其界面实现如图 5.1 所示。 图 5.1 用户登入界面 24 当页面的文本框输入用户名、密码以及用户类型,点击登入按钮,之后就会触 发控件 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。其功能 界面如图 5.1 所示。 图 5.1 管理员功能主界面图 账户添加:在 jsp 页面的文本框里输入用户名和密码点提交,通过 form 1 action=adminAdd.action 这个标签,找到 Struts 配置文件相应的 action 的 name, 然后通过 class 路径=adminAction,method=adminAdd,找到 adminAction 这个类并 调用 adminAdd 这个方法实现账户的添加,并返回成功提示:操作成功。其功能界面 如图 5.2 所示。 25 图 5.2 账户添加功能界面图 账户删除:当在页面上点击删除 c 账户时,就会触发 onclick=adminDelete 2 控件,跳转到 function adminDelete 这个方法,通过 property 标签从值栈里取出 userId,把这个 userId 传给 function adminDelete 这个方法,根据 Struts 的配置 文件然后跳转到 adminAction 这个类,调用 adminDelete 方法,根据从页面传过来 的 userId 进行删除,并返回提示:删除成功!。其功能界面如图 5.3 所示。 图 5.3 账户删除功能界面图 修改密码功能 3 在 jsp 界面的文本框里首先需要输入原密码:,然后输入新密码:,再确认密码, 点击“修改”按钮。触发 onclick=check()控件,调用 function check()方法,通 过 if 语句判断:原密码是否正确?新密码是否为空?确认密码是否与新密码一致? 然后调用 loginService 类,实现 adminPwEdit 方法,将新密码传进这个方法进行业 务逻辑处理,返回成功并提示:修改成功。其功能界面如图 5.4 所示。 26 图 5.4 修改账户功能界面图 (2)学生信息管理模块功能 学生信息管理主要是对每个学生的信息执行添加,修改,删除和查找的操作。 其中添加、修改和删除与上一小节的账号的增删改类似。这里主要分析学生的查找 功能,可以按照学生的学号进行精确查找。 当在 jsp 页面的查找文本框里输入:这个学号,点查询,通过 form action=search.action 表单,根据 Struts 配置文件找到对应的 action 的 name=search,然后解析 class=stuAction,method=search,找到 stuAction 类,调 用 search 方法,利用 request.getParameter 这个方法取得学号:,然后在 list 集 合里取得这个学号的所用信息,并显示到页面上。其功能界面如图 5.5 所示。 图 5.5 学生精确查找界面图 (3)导出功能 导出功能是以 excel 格式将数据库里的数据导出到本地,点击生成报表,就会 出现一个下载框,点下载,生成了一张成绩表。其功能界面如图 5.2 所示。 27 图 5.6 导出功能界面图 当点击生成报表,它就会触发 onlick=createTable 这个控件,进到 function createTable()这个方法,通过 window.location.href=/createTable.action,找到 struts 配置文件的 路径:action name= createTable class= rankingAction method= createTable,跳转到 rankingAction 这个类,调用 createTable 这个方法进行处理。 5.35.3 系统的测试系统的测试 本章主要对学生成绩管理系统的功能进行测试,即黑盒测试。通过对页面的操 作,测试每个功能是否能正常运行。 (1)对每个输入框的测试,主要是输一些临界值和一些特殊的字符,看它能否添加 成功,还是会显示出错提示?如果能添加成功,说明拦截器设计有问题,没有把这 些特殊的字符给过滤掉。如果有了错误的提示,说明运行成功了。 (2)对每个模块的查询功能进行测试,精确查找和模糊查找是否正确。精确查找就 是输入一个完整的查询条件,看能否根据这个查询条件,查找出对应的信息。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒水小样供货合同范本
- 过户房子买卖合同范本
- 采购电脑买卖合同范本
- 测试合作协议合同范本
- 粉刷工程施工合同范本
- 酒店月租租房合同范本
- 瓷砖工程垫资合同范本
- 郑州房子购买合同范本
- 采棉机经营合同协议书
- 采购食品原料合同范本
- 年产62万吨甲醇制烯烃(MTO)项目初步设计说明书
- 联通创新人才认证(解决方案)考试题库(附答案)
- 全成本管理探索与实践
- 电烙铁焊接技术培训
- ICU患者的早期活动
- 出纳课件 转账支票pptx
- TSZUAVIA 009.11-2019 多旋翼无人机系统实验室环境试验方法 第11部分:淋雨试验
- ps6000自动化系统用户操作及问题处理培训
- 商务礼仪情景剧剧本范文(通用5篇)
- 2021年东台市城市建设投资发展集团有限公司校园招聘笔试试题及答案解析
- 某县干部周转宿舍工程可行性研究报告
评论
0/150
提交评论