目 录
学生成绩管理系统
摘要
目前,学校工作繁杂、资料重多,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。根据开发要求,它主要应用于教育系统,完成对日常学生成绩的录入查询更新删除等管理操作,实现学生成绩管理的计算机化。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理。本论文叙述了现在高校学生成绩管理的现状以及JAVA语言和一些开源框架的概况。重点介绍了学生成绩管理系统的实现过程:包括系统分析、 系统调查、 数据库设计、功能设计、系统物理配置方案、 系统实现、系统测试以及系统功能简介。
关键词:JSP,J2EE,学生成绩维护系统,MySQL,Hibernate,Struts
Abstract:At present, the school work is numerous and diverse, material is heavy, the management information system enters into the university, but does not popular, but regarding the student achievement management, does not have a set completely and unification system. Therefore, develops a set suitable,populace and compatible good system is very necessary. According to the development request, it mainly applies in the educational system, completes to daily student achievement maintenance operations and so on input inquiry renewal deletion, realizes student achievement maintenance computerizing. Developing the student achievement maintenance system can let the institute teaching and administrative staff to reduce the working pressure, compare with systematically to the educational administration, teaching each service and the information carries on the management, simultaneously, can reduce the labor force which is used, speed up the inquiry speed, strengthen the management. The paper narrated the present university’s study result management in the present situation and the JAVA language and some opens the source frame of the survey. Introduced the realizes process of the student achievement management system: Including the system analysis、the system investigation、the database design、the functional design、the system physics disposition plan、the system realize、the system test and the System Introduction.
Key words: JSP, J2EE, Student performance management system, MySQL,
Hibernate, Struts
一、绪论
1.1 项目开发背景
一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。
本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可以完成有关成绩的录入,更新,管理,查询和删除。本系统将会改变以前靠手工管理学生成绩的状况,提高工作效率。希望能为老师和学校的工作带来便利。
1.2 项目开发的目标
建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩维护工作流程的系统化、规范化和自动化。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:
(1)系统应具有实用性、可靠性和适用性,同时注意到先进性。
(2)对各个数据库进行动态管理,防止混乱。
(3)不同用户有不同的查询和修改权限,防止非法查询,非法修改。
(4)能够对查询结果进行分类汇总,实现报表打印和下载。
(5)方便用户的操作,尽量减少用户的操作。
1.3 项目提出的意义
随着高校办学规模的扩大和招生人数的增加,学生成绩管理维护是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,介于它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。
运用学生成绩管理维护系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够节省时间,学生也能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。
在现代高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,管理好学生的成绩,是非常重要的。因此开发出一套学生成绩管理系统是非常必要的。
1.4 系统开发所用的技术准备
数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都已经趋于成熟,使我们能够方便的使用。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。
MySQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MySQL虽然是免费的,但同Oracle, Sybase, Informix, Db2等商业数据库一样,具有数据库系统的通用性:
(1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MySQL完全具有这方面的功能。
(2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言(Structured Query Language)。
(3)开放源码数据库。同商业性的数据库相比,这是MySQL最大的特点。MySQL的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MySQL的源码使用、修改以符合自己特殊的需求。
(4)技术特点。MySQL服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C++、Java、Perl、PHP、Tcl等,也提供了简单的管理工具,如mysqladmin,mysql等。
正因为MySQL的源码是公开的,使得我们有机会从源码级,更深入的了解MySQL。从这一层面上可以探求、了解MySQL数据库的特性:良好的内存管理机制,尤其是内存泄漏的管理,通过了Purify的严格测试;支持多种平台; 提供多种形式的API,为我们开发工具的选择提供了便利; 使用多线程的技术,可充分发挥系统的特点,避免在SMP系统中出现仅使用单CPU的现象;对磁盘表的管理采用B树加密及索引的技术,为我们快速访问数据提供了可能; 高性能的内存申请技术;临时表采用在内存中以哈希表实现;提供多种数据类型;支持定长的和变长的纪录;所有的列都有缺省值,为我们的某些“粗心”提供了方便;灵活、安全的权限和密码系统,密码在传输中加密传送,允许主机端验证密码;13)客户端可以通过TCP/IP、Unix套接字、命名管道(NT)连接到MySQL数据库服务器;对多种字符集的完全支持等等许多优点。MySQL有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MySQL作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MySQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。
Java是一种简单的,面象对象的,分布式的,解释的,键壮的,安全的,结构的,中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。
Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,而SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
程序设计语言是人和计算机通信的最基本的工具,它的特点必然会影响人的思维和解决问题的方式,会影响人和计算机通信的方式和质量,也会影响其他人阅读和理解程序的难易程度。因此在编码时所选择的编码语言是很重要的。
本系统主要使用了基于JAVA语言的JSP技术Servlet技术,Hibernate开源框架技术,Struts开源框架技术,以及HTML、CSS、XML等等语言和技术。因此该系统据有JAVA的所有优点,移植性能比较好,数据库移植也比较容易。本系统使用了许多的框架技术扩展也比较容易。
在编码实现过程中,使用了基本的控制结构,每行只写一行代码,在必要的地方加了许多的注释,结构清晰,代码容易阅读。对所有的输入数据都进行了检验,并且对组合输入也进行了级联验证,输入的格式也比较简单。对于验证出错的,给出详细的错误信息,使用户可以很清楚的知道自己在哪里出错了,方便用户的使用。
二、系统需求分析
2.1系统调查
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。
为了适应现代社会人们高度强烈的时间观念,我对河南科技学院新科学院的原有的学生成绩管理系统进行了调查研究,并对一些教师和学生进行了调查,听取他们对学生成绩管理的一些建议和要求以及他们对这方面的一些需求,根据我所具有的知识,决定开发的这个系统采用当前较为流行的编程软件Java作为实现语言,以数据库MySql作为系统的后台操作.
2.2系统构架
系统采用的是B/S结构,即浏览器和服务器架构,示意图如图2-1所示。浏览器端提供用户操作界面,接受用户输入的各种操作信息,向服务器发出各种操作命令或数据请求,并接收执行操作命令后返回的数据结果,根据业务逻辑进行相关的运算,向用户显示相应的信息。服务器端接收浏览器端的数据或命令请求,并请求数据库服务器执行数据库操作得到相应的数据集,对数据集进行相应的处理,然后将数据集或处理后的数据集返回给浏览器端。
用户浏览器 Web服务器 数据库服务器
图2-1系统架构示意图
2.3 用户需求
(1) 在第一时间查询自己所有的成绩(自己的平均成绩,总成绩)
(2) 查询某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩
(3) 打印和下载自己的成绩
(1) 查询某一学生的所有成绩(平均成绩,总成绩)
(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩
(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)
(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)
(5) 录入成绩和修改更新成绩(自己所教授的那一科成绩)
(6) 打印和下载所查询或统计出的结果
(1) 查询某一学生的所有成绩(平均成绩,总成绩)
(2) 查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩
(3) 查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)
(4) 对某一科成绩进行统计(及格人数,及格率,不及格人数,不及格率,优秀人数,优秀率,某一分数段的人数)
(5) 录入成绩和修改成绩
(6) 打印和下载所查询或统计出的结果
(7) 用户管理
(8) 数据库管理
2.4 系统方框图
图2-2系统层次方框图
2.5系统设计思想
(1)采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。
(2)系统就满足学校的需求,例如学生成绩的录入、查询、更新,学生成绩录入与排名等等。
(3)系统具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。
2.6系统设计分析
本系统使用Struts开源框架实现MVC三层模式进行开发,使模型,视图和控制分开,业务逻辑和显示分开,这样有利于错误的查找和系统的升级。
该系统适用于各个学校,其功能主要为:
成绩管理:用于对成绩的录入、修改、汇总、排名以及查询等操作。
三、数据库设计
3.1 数据库表的设计
本系统将数据存储在六个表中,这六个表分别是:学生表(见 表3-1):保存学生的基本信息,包括学生的姓名,登录系统时的密码,学生的学号,所在的班级以及一些备注信息。
表3-1 学生表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
name | 姓名 | varchar | 无 | 24 | 不能 | 否 |
password | 登录时密码 | varchar | 无 | 24 | 不能 | 否 |
student_id | 学号 | varchar | 无 | 20 | 不能 | 否 |
classes | 班级 | varchar | 无 | 24 | 不能 | 否 |
remark | 备注 | varchar | 无 | 56 | 可以 | 否 |
教师表(见 表3-2):保存教师的基本信息,包括教师的姓名,登录系统时的密码,教师号,备注,其中备注默认为“0”,当为“1”的时候教师可以录入和修改学生的成绩,为空或者是其他值的时候,录入功能将被锁定。
表3-2 教师表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
name | 姓名 | varchar | 无 | 24 | 不能 | 否 |
password | 登录时密码 | varchar | 无 | 24 | 不能 | 否 |
student_id | 教师号 | varchar | 无 | 20 | 不能 | 否 |
remark | 备注 | varchar | “0” | 56 | 可以 | 否 |
班级表(见表3-3):保存班机的基本信息,包括班级名称和备注。
表3-3 班级表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
classes | 班级名称 | varchar | 无 | 24 | 不能 | 否 |
remark | 备注 | varchar | 无 | 56 | 可以 | 否 |
教师所担任课程的表(见 表3-4):保存教师所教的课程信息。
表3-4 教师所担任课程的表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
subject | 所教授的科目 | varchar | 无 | 24 | 不能 | 否 |
classes | 班级 | varchar | 无 | 24 | 不能 | 否 |
student_id | 教师号 | varchar | 无 | 20 | 不能 | 否 |
remark | 备注 | varchar | 无 | 56 | 可以 | 否 |
教务管理员表(见 表3-5):保存管理员的基本信息。
表3-5教务管理员表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
name | 登录名 | varchar | 无 | 24 | 不能 | 否 |
password | 登录时密码 | varchar | 无 | 24 | 不能 | 否 |
remark | 备注 | varchar | 无 | 56 | 可以 | 否 |
成绩表(见 表3-6):主要保存关于学生成绩的一些信息,本系统主要是对该表的操作。
表3-6 成绩表
字段名称 | 中文解释 | 保存类型 | 默认值 | 长度 | 可否为空 | 主键 |
id | 主键自增 | int | 无 | 16 | 不能 | 是 |
name | 姓名 | varchar | 无 | 24 | 不能 | 否 |
subject | 科目 | varchar | 无 | 24 | 不能 | 否 |
student_id | 学号 | varchar | 无 | 20 | 不能 | 否 |
classes | 班级 | varchar | 无 | 24 | 不能 | 否 |
property | 考试性质 | varchar | 无 | 24 | 不能 | 否 |
term | 学期 | varchar | 无 | 24 | 不能 | 否 |
teacher | 该科目的教师 | varchar | 无 | 24 | 不能 | 否 |
result | 成绩 | int | 无 | 16 | 可以 | 否 |
remark | 备注 | varchar | 无 | 56 | 可以 | 否 |
3.2 数据库所使用的技术
本系统所使用的数据库是MySQL数据库,使用Hibernate开源框架对数据库进行操作。 Hibernate对JDBC进行轻量级的封装,他给我们提供了许多对数据的操作方法,方便我们的编程,提高开发效率。Hibernate使用的是HQL查询语言,里面封装了许多数据库方言,根据Hibernate的配置文件来转换为相应数据库的SQL语句。可以很方便的实现对数据库的移植,不需要修改代码,或只是需要修改少量代码就可以了。
Hibernate配置文件:hibernate.cfg.xml内容如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/ssmange
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
mysqlDriver
</property>
<property name="connection.password">841118</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<mapping resource="lv/xian/ling/pojo/Student.hbm.xml" />
<mapping resource="lv/xian/ling/pojo/Teacher.hbm.xml" />
<mapping resource="lv/xian/ling/pojo/Manage.hbm.xml" />
<mapping resource="lv/xian/ling/pojo/Score.hbm.xml"></mapping>
<mapping resource="lv/xian/ling/pojo/Classess.hbm.xml" />
<mapping resource="lv/xian/ling/pojo/TeacherSubject.hbm.xml" />
</session-factory>
四、功能介绍
启动服务器,在浏览器里输入相应的地址( 在本机上输入:http://127.0.0.1:8080/StudentScoreManage/),进入系统主界面,也就是登录界面,如图4-1所示:
图4-1 登录界面
此界面使用了表格进行排版,使用了一组单选按钮来区分不同的角色,部分代码如下:
<table>
<tr><td class=tb02-tdtitle>角 色:
<html:radio property="type" value="student" >学生</html:radio>
<html:radio property="type" value="teacher" >教师</html:radio>
<html:radio property="type" value="manage">管理员</html:radio><br/>
<tr><td>用户名:<html:text property="name"></html:text><br><br>
<tr><td>密码: <html:password property="password"></html:password><br><br>
<tr><td align="center" class=tb02-tdtitle>
<html:submit>登 录</html:submit>
<html:reset>重 置</html:reset>
</table>
该登录模块,使用到了Struts+Hibernate技术,使用Struts的Actionform进行判断,看输入的各项是否为空,是否符合要求。Action进行登录验证处理,验证成功则跳转到相应的登录成功界面,否则给出相应的错误信息。
4.1学生功能
在登录页面,选择学生角色,输入用户名也就是学号,输入登录密码,然后进入学生登录成功界面如图4-2所示(登录名2004011110(吕先令同学)):
图4-2 学生登录成功页面
此界面上可以进行修改密码,查询自己的某一科成绩,以及该科成绩的平均成绩,自己所在名次,最高成绩,最低成绩等,还可以按学期查询所选学期的所有成绩以及该学期的总成绩,平均成绩,修改自己的登录密码或是注销本次登录,退出该系统。实现查询功能的核心代码如下所示:
//得到学生成绩信息
list=os.getStudentSubject(student_id, Factory.codeToString(ssForm.getTerm2()),Factory.codeToString(ssForm.getSubject()));
//得到该学生在该科目中的名次
Integer index=os.getIndex(student_id, Factory.codeToString(ssForm.getSubject()),Factory.codeToString(ssForm.getTerm2()));
//该科目的平均成绩
Double average=os.getAverage(Factory.codeToString(ssForm.getSubject()),
Factory.codeToString(ssForm.getTerm2()),classes);
//该科目的最高成绩
Integer max=os.getSubjectMax(Factory.codeToString(ssForm.getSubject()),
Factory.codeToString(ssForm.getTerm2()),classes);
//该科目的最低成绩
Integer min=os.getSubjectMin(Factory.codeToString(ssForm.getSubject()),
Factory.codeToString(ssForm.getTerm2()),classes);
//查询某一学期的所有成绩
list=os.findByIdTerm(student_id,
Factory.codeToString(ssForm.getTerm1()));
4.2教师功能
在登录页面,选择教师角色,输入用户名也就是教师号,输入登录密码,然后登录。登录成功后将跳转到教师功能选择页面,如图4-5所示(登录名:0001(李莉老师)):
图4-3 教师登录成功页面
教师有六种功能可选择分别是:查询学生的成绩,录入学生的成绩,修改更新成绩,统计成绩,修改密码和注销。在此界面上,使用了六个超链接,分别链接到不同的功能页面。
(1) 查询学生成绩的功能,在该功能页面上教师可以查询以班级为单位的学生成绩,还可以查询出所有学生的成绩,也可以查询学生个人的成绩。并可以打印或是下载所查询到的成绩,例如查询所有学生的成绩,显示结果如图4-4所示:
图4-4 查询所有成绩结果显示
(2) 录入学生的成绩的功能,此功能受教务管理员的控制,一般只有在考试或补考之后,教务管理员才会把该权限赋予给教师,在通常情况下该功能是被锁定的。考试过后教师不用在把成绩写在纸上报送教务处,只需要在有上网的条件下,直接就可以把成绩写到数据库中,学生可以在第一时间内查询到自己的成绩。这样教师不用在向教务处跑了,教务管理员也不用老是呆在办公室。
(3)修改更新成绩的功能,该功能和成绩的录入一样也是受教务管理员控制。教师没有删除成绩的功能,当成绩输入后,若出现错误,只能通过修改更新成绩的功能来修改,此功能也是非常有用的。因为教师不能通过重复录入覆盖已经存在的错误成绩,也不能删除已经存在的错误成绩,若想修改错误的成绩,只能通过该功能来完成。
(4)统计成绩的功能,此功能对老师非常实用,因为在考试过后,教师需要统计许多的信息,若只靠手工来统计,不但速度较慢,而且还麻烦,并且还容易出错。本系统就带有统计功能,教师可以统计自己所教授科目的平均成绩,不及格人数,及格人数,不及格率,及格率,优秀人数,优秀率,还可以统计某一分数段的人数,并且操作简单,只需要勾选您需要统计的项目即可。
(5)修改密码功能和注销功能比较简单,这里就不在述说了。
4.3教务管理员功能
在登录页面,选择管理员角色,输入用户名,输入登录密码,然后,点击登录按钮进行登录,登录成功后将跳转到教务管理员功能选择页面如图4-5所示(用户名:admin):
图4-5 教务管理员登录成功页面
教务管理员有以下九种功能可选择:
查询学生成绩的功能 此功能同教师的功能一样,这里不再赘述。
录入学生成绩的功能 此功能同教师的基本一样,只是管理员的此功能没有被限制,其他都和教师的该功能一样,这里不再赘述。
修改更新成绩的功能 此功能同教师的基本一样,只是管理员的此功能没有被限制,其他都和教师的该功能一样,这里不再赘述。
添加/删除人员的功能,此功能对教务管理员来说非常重要,在该功能页面上,教务管理员可以添加或者是删除一个学生,添加或是删除一个教师,添加或是删除一个教师所教的科目,添加或是删除一个班级,添加或是删除一个管理员。注意:删除或是添加一个管理员的功能,只能是admin管理员有此功能,其余管理员则没有此功能。当进行破坏性的删除操作时,系统会有相应的提示,以免出现误操作。该功能的具体界面如图4-6所示:
图4-6 添加/删除人员页面
(5)修改更新人员的功能 您若想修改更新已经存在的人员,此功能将非常有用,并且操作也比较简单。
统计成绩 此功能和教师的该功能完全一样,这里不再赘述。
(7)解除/锁定教师录入成绩权限的功能 为了保证数据的安全和一致,对不同的用户给予不同的权限是很好的办法。考试过后,管理员可以把录入成绩的功能赋予给教师,当成绩录入结束后,管理员应立即把该功能给琐定,可以一次解除或是锁定一个教师的权限,也可以一次解除或是锁定所有教师录入成绩的权限,选择相应的单选按钮即可。
(8)修改密码和注销功能比较简单,这里就不再述说了。
五、系统测试
5.1 测试目的
测试是为了发现程序中的错误而执行程序的过程,测试的目的就是在软件投入生产运行之前,尽可能的发现软件中的错误。成功的测试是发现了至今为止尚未发现的错误的测试。
5.2 测试环境的搭建
(1) 系统要求数据库使用MySQL5.0版本。数据库编码要求要支持中文,推荐使用gb2312编码。数据库安装好后,建立一个名为ssmange的数据库,创建脚本为:create database ssmange;
然后依次创建学生表,教师表,班级表,教师所担任课程的表,管理员表,成绩表。创建的脚本依次为:
create table student(
id int primary key not null auto_increment,
name varchar(24) not null,
password varchar(24) not null,
student_id varchar(12) unique not null,
classes varchar(24) not null,
remark varchar(56)
);
create table teacher(
id int not null primary key auto_increment,
name varchar(24) not null,
password varchar(24) not null,
teacher_id varchar(12) unique not null,
remark varchar(56)
);
create table classess(
id int not null primary key auto_increment,
classes varchar(24) unique not null,
remark varchar(56)
);
create table teacher_subject(
id int not null primary key auto_increment,
teacher_id varchar(12)not null,
subject varchar(24) not null,
classes varchar(24) not null,
remark varchar(56)
);
create table manage(
id int not null primary key auto_increment,
name varchar(24) unique not null,
password varchar(24) not null,
remark varchar(56)
);
create table score(
id int not null primary key auto_increment,
name varchar(24) not null,
classes varchar(24) not null,
sutdent_id varchar(12) not null,
subject varchar(24) not null,
property varchar(24) not null,
term varchar(24) not null,
teacher varchar(24) not null,
result int,
remark varchar(56)
);
(2) 运行环境jdk 5.0 及以上的版本,并设置好相应的环境变量。
(3) JDK的安装成功与否可采用以下方法测试
在cmd下输入:java -version 看输出情况,在我的电脑上输出如图4-1:
图4-1 测试JDK
如果出现与图4-1相似的界面,就说明JDK安装成功并配置好了环境变量。
(4)服务器的安装,本系统使用的服务器是Apache 的Tomcat,版本是5.5,按提示安装好后,设定其TOMCAT_HOME的路径。一切准备好之后,启动服务器,在浏览器地址栏里面输入:http://localhost:8080/ 。若出现如图4-2所示界面就说明服务器安装成功。
图4-2 Tomcat控制台界面
注意:tomcat5.5版本要求JDK的版本一定要在1.5以上 ,否则将会出现错误。
5.3 测试方法
为了提高测试效率,降低测试成本,本测试方案采用黑盒法设计基本的测试方案,再用白盒法补充一些方案。在黑盒法测试方案中,采用等价划分技术,把所有可能的数据划分成几个等价类。
5.4 测试项目
(1)登录测试
(2)数据输入和输出测试
(3)权限测试
(4)学生功能测试
(5)教师功能测试
(6)教务管理员的功能测试
5.5 测试结果
各模块的测试结果如下:
登录测试中,没有发现什么错误。
输入和输出测试中,对所有相同的输入都可以得出相同的输出。
权限测试过程中,发现教师录入成绩权限存在问题。
学生功能测试中,发现下载成绩存在问题。
教师功能测试中,所有功能都正常。
教务管理员测试中,发现在级联下拉列表不能正常显示,异步访问服务器可能存在问题。
结 论
经过本学期的努力和老师的帮助,我的毕业设计已经完成,基本上达到了预期的设计要求和目标。
通过对学生成绩管理系统的开发研究,我把所学的知识综合运用到开发过程中,使我获得了许多在课本中学不到的知识。当然,在开发中也遇到了许多的困难,在老师的帮助和我多方查找资料,基本把一些大的问题给逐个解决了。由于我的水平有限和没有项目经验,在数据库表的设计上面存在许多的问题,直到我快完成毕业设计的时候,才发现许多数据库表设计的不足,因为时间不允许,所以也没有再重新设计数据库,以后我会把该部分给慢慢完善。
在开发中,我注意到了代码的复用,把功能相同的写成一个独立的方法,供多个地方使用。本系统方便学生查询自己的成绩,以及打印下载查询的结果;方便老师和教务管理员对学生成绩的管理、录入、修改、查询、删除、统计等操作,可以方便的实现查询统计结果的下载和打印。界面美观,操作简单,不足之处就是在录入成绩的过程中输入需要输入的数据较多,不支持整体成绩的上传。
致 谢
这次毕业论文能够得以顺利完成,并非我一人之功劳,是所有指导过我的老师,帮助过我的同学和一直关心支持着我的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!
感谢我的指导老师,没有她的悉心指导就没有这篇论文的顺利完成。老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。同时,在此次毕业设计过程中也给与我许多的帮助。
最后感谢评阅论文和出席答辩会的各位老师,感谢您们的悉心指导,您们辛苦了!谢谢你们!
参考文献
[1] 陈天河等.Struts,Hibernate,Spring 集成开发宝典[M].北京:电子工业出版社,2007
[2] 李君芳,赵艳杰.电脑知识与技术[J],2007(9)
[3] 马朝晖等.Java教程.(第4版)[M].北京:人民邮电出版社.2006
[4] 岳阳,王杰,孙红梅.MySQL5 管理员标准指南及语言参考(第二版)[M].北京:电子工业出版社,2005
[5] 吴明晖,吴超.Struts+Hibernate开发Web应用——从基础到实践[M].北京:人民邮电出版社,2007
[6] 付京周.精通Hibernate3.0——Java数据库持久层开发实践[M].北京:人民邮电出版,2007
[7] 王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006
[8] 张白一,崔尚森.面向对象程序设计——Java[M].西安:电子科技大学出版社,2004
[9] 叶齐炼,申华. 学校教务工作实用手册[M]. 北京:开明出版社,2002
[10] 袁世鹰.微机教务管理系统的设计与实现[P].北京:开明出版社,2001
[11] 高宇翔.java电子杂志第二期[J].J2SE 5.0专题之语言特性,2005
[12] 王毅. Internet与Java[J]. 电子与电脑,1997(3)
[13] 张光业. Java与Javascript[J]. 微电脑世界,1996(5)
[14] Keys Botzum,Albert Wong.IBM开发人员技术期刊第三期[J],2007
[15] 谷庆华等.基于java语言实现数据库访问[J].计算机技术与发展,2008