admin 管理员组

文章数量: 887021


2023年12月18日发(作者:java的equals方法)

基于JSP的学生信息管理系统

摘 要

随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然。通过该系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。

本文主要介绍了学生信息管理系统的主要任务,阐述了开发该系统用到的关键技术,如采用B/S结构,使用JSP编程、利用SQLServer2000建立数据库、采用HTML,JavaScript等编程技术。

本系统是采用B/S模式进行开发的,系统的用户权限有两种:学生和系统管理员,不同权限用户登入到不同的操作界面。该系统主要由学籍维护、选课管理、成绩查询等功能模块组成,本文具体介绍了各功能模块所包含的小模块的功能,学籍维护模块主要是对学生的基本信息进行添加、查询、修改、删除;选课管理模块主要是对选修的课程进行添加、删除、统计选修人数,以及学生进行选课和更改选课;成绩查询模块主要是对必修课进行添加、删除、录入成绩,以及学生进行查询成绩等功能。

关键字:学生信息管理,B/S,JSP,Script,SQLServer2000。

I

Based on JSP student information management system

Abstract

Along with the school scale unceasing expansion, the student quantity

sharp growth, concerned student's each kind of information also becomes

doubles the growth.

Facing the so huge information content develops the

student information management system to enhance the student supervisory

work the efficiency to become inevitably.

Through this system, may achieve

the information the standard management, the science statistics and the

fast inquiry, thus reduced management aspect work load.

This article mainly introduced the student information management

system primary mission, elaborated develops essential technology which

this system uses, like uses the B/S structure, uses the JSP programming,

using the SQLServer2000 establishment database, uses HTML and JavaScript,

and so on programming technology.

This system uses the B/S pattern to carry on the development; the

system user jurisdiction has two kinds: The student and the system manager,

the different jurisdiction user records to the different operation

contact surface. This system mainly by the school register maintenance,

chooses function module and so on class management, result inquiry to be

composed, this article specifically introduced various functions module

contains the small module function, the school register maintenance

module mainly is carries on the increase, the inquiry, the revision, and

the deletion to student's basic information; Chooses the class

administration module mainly is to the curriculum which takes as an

elective carries on the increase, the deletion, the statistics takes as

an elective the population, as well as the student carries on chooses the

class and re-elects the class; The result inquiry module mainly carries

on the increase, the deletion, the input result to the required course,

as well as the student carries on function and inquiry result and so on.

II

目 录

摘 要 ................................................................................................................................................ I

II

引 言 ................................................................................................................................................ 1

第一章 绪论 ................................................................................................................................... 2

1.1 选题的背景和意义 ............................................................................................................ 2

1.2 国内外研究现状及发展趋势 ............................................................................................ 2

1.3 本课题研究内容 ................................................................................................................ 2

1.4 本课题研究的目标及主要特色 ........................................................................................ 3

第二章 系统设计使用技术介绍 ................................................................................................... 4

2.1 JSP(Java Server Pages)和Java Bean技术介绍 ............................................................ 4

2.1.1 JSP概述 ................................................................................................................... 4

2.1.2 JSP工作原理 ........................................................................................................ 4

2.1.3 JavaBean技术介绍 .............................................................................................. 4

2.2 B/S体系结构介绍 .............................................................................................................. 5

2.3 JavaScrit技术介绍 ........................................................................................................ 6

2.4 SQL Server 2000 数据库 ............................................................................................... 6

2.4.1 数据库介绍 ........................................................................................................... 6

2.4.2 ODBC数据访问接口 .............................................................................................. 7

2.4.3 JDBC数据访问接口 .............................................................................................. 7

第三章 系统设计 ........................................................................................................................... 9

3.1 需求分析 ............................................................................................................................ 9

3.1.1 运行环境 ................................................................................................................. 9

3.2 系统总体设计 ................................................................................................................... 9

3.2.1 系统目标设计 ....................................................................................................... 9

3.2.2 系统设计思想 ....................................................................................................... 9

3.2.3 系统功能描述 ..................................................................................................... 10

3.2.4 系统用例图 ......................................................................................................... 12

3.2.5 系统UML活动图 ................................................................................................. 13

第四章 数据库设计 ..................................................................................................................... 14

4.1 总体表设计 ..................................................................................................................... 14

4.2 数据库表的结构 ............................................................................................................. 14

4.3 实体及ER图 ................................................................................................................... 16

4.3.1 实体介绍 ............................................................................................................. 16

4.3.2 实体的ER图以及各实体之间联系的ER图 ..................................................... 16

4.4 数据库表的关系图 ......................................................................................................... 19

4.5 数据库表的视图 ............................................................................................................. 20

4.6 数据库连接 ..................................................................................................................... 20

第五章 系统具体实现 ................................................................................................................. 23

5.1 登入界面 ......................................................................................................................... 23

5.2 学生界面 ......................................................................................................................... 25

5.3 学生界面功能实现 ......................................................................................................... 26

5.3.1 查看公告页面 ..................................................................................................... 26

5.3.2 学生修改密码页面 ............................................................................................. 26

5.3.3 学生学籍维护页面 ............................................................................................. 28

5.3.4 成绩查询 ............................................................................................................. 30

5.3.5 查看学修课表并进行选修 ................................................................................. 30

5.4 管理员界面 ..................................................................................................................... 32

5.5 管理员界面功能实现 ..................................................................................................... 33

5.5.1 查看学生基本信息 ............................................................................................. 33

5.5.2 添加新学生和选修课 ......................................................................................... 35

5.5.3 查看学修课表和必修课表 ................................................................................. 36

5.5.4 查看学生选课情况和学生成绩 ......................................................................... 37

5.5.5 添加必修课表和学生成绩 ................................................................................. 40

第六章 全文总结 ......................................................................................................................... 44

致 谢 .............................................................................................................................................. 45

参考文献......................................................................................................................................... 46

引 言

学生信息管理系统(SMIS)是大学信息管理系统建设的重要组成部分,是提高教学管理的质量和效益乃至建设知名高水平大学的关键环节。学生信息处理的电脑化、网络化,也是实现学校管理现代化和信息化的重要内容。

学生信息管理系统的内容对于学校的决策者和管理者来说都至关重要, 所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是进行科学化、正规化管理,与世界接轨的重要条件。

随着进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,另一种是称为浏览器——服务器的B/S结构应用系统。而后者的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

因此,开发一套采用B/S结构的学生信息管理系统就成为必要的事情。本系统正是采用B/S结构开发的,该系统主要由学籍维护、选课管理、成绩查询等功能模块组成,实现学生基本信息管理、学生选修课程管理以及学生成绩查询管理等。本文将在后面一一加以详细阐述。

1

第一章 绪论

1.1 选题的背景和意义

随着我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求。为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统。而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。

随着国家对于教育的重视逐渐加大,学校正向着大型化、规模化发展,而对于大中型学校,跟学生信息管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。该系统就是设计一个学生信息数据库管理系统,由计算机代替人工执行一系列诸如增加新学生,删除旧学生,学生信息修改,查询,维护及打印等操作。这样就使学生部门管理人员可以轻松快捷地完成学生信息管理的任务。

1.2 国内外研究现状及发展趋势

管理信息系统(MIS)是进行信息的采集、存储、加工、维护和使用的系统。它是随着管理科学和技术科学的发展而形成的。MIS的发展与计算机网络技术的发展是紧密相关的,随着Internet/Intranet技术的广泛应用,MIS的体系结构也发生很大的变化,从以往基于C/S结构的数据访问及安全体系发展到当前的基于B/S结构体系。学生信息管理系统是典型的管理信息系统(MIS),其系统开发主要包括数据库的规划设计与维护和客户端应用程序的开发两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,而对于后者则要求程序界面友好、功能完备,容易使用,具有流行软件的操作习惯等特点。

随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量,有必要开发学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。

鉴于上述管理信息系统的日趋成熟和收集信息的情况,该学生信息管理系统充分运用MIS的总体思想,综合应用了B/S模式、SQL Server、JSP等技术,并具有学生对自己所需信息的操作和管理员对系统进行管理等功能,很好的将教学质量提升了,真正完好地达到服务于教学计划。

1.3 本课题研究内容

2

本课题研究内容为学生信息管理系统,信息管理系统提供了强大的学生档案管理管理功能,方便管理员对学生信息的添加、修改、删除、查询等操作。本系统开发的总体任务是实现学生信息管理的系统化、规范化、自动化、达到提高学生信息管理效率的目的。

主要内容包过:

(1) 学籍维护模块:

1. 管理员可以对学生进行添加(包过基本信息)、删除、查看、修改信息。

2. 学生可以查看自己的基本信息,添加、修改详细个人信息。

(2) 选课管理模块:

1. 管理员可以对选修课程进行添加、删除、统计每门课程选修的人数以及查找

单个学生所选的课程。

2. 学生可以查看所有选修课程并进行选修以及查看自己所选课程并进行修改。

(3) 成绩管理模块:

1. 管理员可以进行添加、删除、修改基本课程,录入、修改学生基本课程成绩,

查找单个学生的所有成绩以及查找单门基础课程所有学生的成绩。

2. 学生可以查询自己的基础课程成绩。

学生信息管理系统主要提供方便高效的管理功能以及网上的信息查阅平台,学生可以通过该系统查阅相关信息、选课及修改相关信息,管理员可以管理所有信息。该系统使用JSP编程语言,Microsoft SQL2000数据库以及Apache Tomcat作为开发平台,运用软件工程思想方法,对系统进行快速有效开发, 系统分为以下几个方向:

(1)用户管理。实现对不同用户分配不同的权限。

(2)数据库连接。使程序能访问数据库,并能对其中的数据进行操作。

(3)数据录入。通过程序能实现往数据库中增加记录。

(4)数据查询。通过各种查询组合实现对数据的精确选取。

(5)数据维护。包括对数据的修改及删除操作。

系统依据Apache Tomcat构架的运行平台,利用Dreamweaver 进行整体框架的设计,连接数据库,最后进行全面的系统调试而完成。

1.4 本课题研究的目标及主要特色

一、研究目标:建立一个B/S层结构的学生信息管理系统,实现管理员对学生信息的获取、统计等各环节的计算机管理。

二、主要特点:

1、实现学生信息管理的基本要求,对学生学习进行完善管理。

2、界面友好,简单易用。

3、系统操作简单,功能强大,易于维护。

3

第二章 系统设计使用技术介绍

2.1 JSP(Java Server Pages)和Java Bean技术介绍

2.1.1 JSP概述

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

2.1.2 JSP工作原理

JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK(java服务器网络开发包)中,它就是JspServlet。JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET 中的jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。 如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。 虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。 此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用, 然后servlet实例便被标记加入"垃圾收集"处理。 jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。

2.1.3 JavaBean技术介绍

JavaBean是一种软件组件模型,它与其他软件对象相互作用,决定如何建立和重用软件组件,这些可重用软件组件被称为Bean。Bean使用现有的Bean帮助开发新的计划,进而建立它们之间的关系。

JavaBean是基于Sun公司的JavaBean规范的,可在编程工具中被可视化处理的可复用的软件组件。因此JavaBean具有4个基本特性:

(1) 独立性;

4

(2) 可重用性;

(3) 在可视化开发工具中使用

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。这样JavaBean就变成了一个组件了,达到代码的重用性和隔离性,在调用JavaBean的时候,不用关心JavaBean的实现过程,只要知道方法的功能、输入参数和输出参数就可以了。

2.2 B/S体系结构介绍

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图1所示。

Browse

图2..1

采用该结构软件的优势在于:

(1)无须开发客户端软件,维护和升级方便;

(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;

(3)具有良好的开放性和可扩充性;

(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。

这种三层结构层与层之间相互独立,任何一层的改变不影响其他层的功能。

三层B/S结构将应用的三个部分明确的分开:表示部分、应用逻辑部分、数据访问部分。这三个部分在逻辑上独立的分开,分别加以实现,称之为:客户端、应用服务器、数据库服务器。而在客户端和应用服务器之间加入一个WEB服务器,就形成了一种特殊的B/S结构:Browser/Server,只在客户端安装浏览器软件即可。客户端使用Internet Explore时,就可以让Internet Explore变成为能够处理数据的应用系统。

Web服

务器

数据库

5

由于这种模式是提供一个跨平台的、简单一致的应用环境,实现了开发系统与应用系统的分离,因此避免了为多重不同的操作系统开发同一应用系统的重复操作,便于用户群的扩展、变化以及应用系统的管理。

因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件开发中一种流行的体系结构.所以在开发本系统时采用这种模式。

2.3 JavaScrit技术介绍

JavaScript是一种基于对象(object)和事件驱动(event driven)并具有安全性能的脚本语言。它的目的是与html超文本标记语言、java 脚本语言(java小程序)一起实现在一个web页面中链接多个对象,与web客户交互作用。它被嵌入 HTML 的文件之中。通过 JavaScript

可以做到响应用户的需求事件(如表单的输入),这样当一位使用者输入一项信息时,它不需要通过网络传送到服务器端进行处理再传回来的过程,而可以直接在客户端进行事件的处理。它的出现弥补了html语言的缺陷。

JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。

它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。

2.4 SQL Server 2000 数据库

2.4.1 数据库介绍

SQL Server 2000具有较好的可伸缩性和可靠性,提供了以Web标准为基础的扩展数据库编程功能,可以满足电子商务和企业应用程序的要求。SQL Server 2000支持XML和Internet标准,具有基于Web的分析能力,允许使用内置的存储过程以XML格式存储、更新、删除、检索数据。

SQL Server 2000能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到SQL Server 2000的情况,SQL Server 2000为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。SQL

Server 2000还在多个用户之间有效地分配可用资源,比如内存、网络带宽和磁盘I/O等。

SQL Server 2000不仅能作为一个功能强大的数据库服务器有效地工作,而且数据库引擎也用在需要在客户端本地存储独立数据库的应用程序中。SQL Server 2000可以动态地将自身配置成能有效地使用客户端桌面或膝上型电脑中的可用资源,而不需要为每个客户端专设一个数据库管理员。应用程序供应商还可以将SQL Server 2000作为应用程序的数据存储组件嵌入到应用程序中。SQL Server在网络组件的顶部添加了服务器特有的中介组件,诸如开放式数据库连接(ODBC)后能使不同客户机进行相互连接,它可处理基于Internet的应用程序,帮助用户把SQL Server数据库信息集成到Web页面。

6

SQL语句介绍:

SQL(Structured Query Language,结构查询语言)是一个功能非常强大的数据库语言,可以用在一些大型数据库的建立。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中插入数据、更新数据、删除数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 DB2、My SQL 、 Microsoft SQL Server、 Access等。绝大多数SQL结构化查询语言都可以在数据库之间通用,虽然不同的数据库在SQL语言上有些差异。但是,标准的SQL命令如"Select"、 "Insert"、 "Update"、 "Delete"、

"Create"和 "Drop"用于完成绝大多数数据库的操作,在不同数据库之间几乎没有差异。

SQL功能强大,但是概括起来,它可以分成以下几部分:DML(Data Manipulation

Language数据操作语言)用于检索或者修改数据; DDL(Data Definition Language数据定义语言) 用于定义数据的结构,如创建、修改、删除等命令;DCL(Data Control Language数据控制语言)用于赋予或取消用户的权限。

2.4.2 ODBC数据访问接口

开放数据库互连(Open DataBase Connectivity,ODBC)是Microsoft公司开发的一套开发数据库系统应用程序接口规范,它支持应用程序以标准的ODBC函数和SQL语句操作各种不同的数据库。在这一实现过程中,ODBC驱动程序起了关键作用,简单地说,ODBC驱动程序相当于一个转换开关,它负责将应用程序发送来的标准SQL语句传递给各种数据库驱动程序处理,再将处理结构送回使用程序。于是,应用程序开发者只须面对统一的ODBC数据源,而不必针对各种数据库进行不同的设置,这样的程序具备更好的适用性和可移植性,甚至可以访问多种不同的数据库,如图2所示

ODBC

驱动程序

Oracle驱动程序

Orcale

SQLserver驱动程序

SQLserver

Access驱动程序

Access

其他数据库驱动

…….....

图2.2 ODBC工作原理

2.4.3 JDBC数据访问接口

为支持Java程序的数据库操作功能,Java语言采用了专门的Java数据库编程接口(Java

DataBase Connecivity,JDBC),用于在Java程序中实现数据库操作功能并简化操作过程。JDBC支持基本SQL语句,提供多样化的数据库连接方式,为各种不同的数据库提供统一的操作界面。

7

JDBC工作原理如图3所示。

J

DBC

驱动程序管理器

JDBC驱动程序 for Oracle

Orcale

SQLserver驱动程序 for DB2

DB2

ODBC连接的数据库

JDBC-ODBC桥驱动程序

JDBC网络驱动程序

…….....

图2.3 JDBC工作原理

8

第三章 系统设计

3.1 需求分析

本系统主要是针对各个学校的学生信息进行管理,本系统满足以下几点要求:

 系统安全性。由于该系统的使用对象多,要求有较好的权限管理。不同权限进入不同的界面,为了防止数据的并发现象的出现,数据的编辑必须由合法用户来操作,并对每个学生的信息进行良好的保密。

 系统内容的全面性。学生信息管理系统不仅是对学生的基本信息进行管理,还包过学生选课管理,成绩管理等,因此,本系统能够很好的满足学校对学生的信息进行完善、统一的管理。

 系统灵活性。要求有良好的人机界面,操作简单(数据的添加、删除、修改、查询等方

便快捷)。

 可扩展性。站点的数据承载量、功能模块的单个或整体调整都可以满足变化的需要,这种适应性称为可扩展性。固定资产管理系统的可扩展性,体现在不同用户群需要处理不同类型的数据、数据与用户之间进行交互、数据要符合个用户的使用需求、多表查询系统化、避免性能下降等方面。

 易维护性。本系统采用B/S结构,系统的升级只需要在服务器端完成,更新软件系统的数据库、文件也只需要更新服务器端即可。在进行系统的维护时,只需要远程登录服务器系统,减少了维护系统的成本和周期。

3.1.1 运行环境

操作系统:Windows 2000 (Advanced) Server/2003 Server/XP Professional

数据库:SQL Server 2000;

JSP服务器:Tomcat;

开发工具:JBuilder X。

3.2 系统总体设计

3.2.1 系统目标设计

系统开发的总体任务是实现学校学生信息管理系统化、规范化和自动化,从而达到学生信息管理高效率的目的。使得教务处人员能够方便快捷地管理学生信息以及学生能够方便快捷的查看修改个人信息,从而提高工作效率和经济效益。计算机的资源是受到限制的,因此要充分利用JSP的功能,设计出功能强大的软件,同时要尽可能减少对系统资源的占用,同时对本系统要求有良好的灵活性和完善性。

3.2.2 系统设计思想

学生信息管理系统主要是对学生的学籍,选课,成绩等的管理。学生信息管理首先就

9

应该有学生,所以系统应该有对学生的添加和删除以及学生信息的修改;选课,固然要有课程让学生选,就应该有添加、删除选修课程的功能,要让学生选就应该有学生查看、添加、修改选修课程;成绩管理就是学生能够在网上平台上快速查询自己的分数,这个功能的实现首先应该有添加、删除基础课程的功能,学生登入界面后能够查询功能。根据所需功能以及数据库、JSP所能提供的功能来设计该系统。

3.2.3 系统功能描述

本系统功能主要包过三大块:学籍维护(管理员添加、删除学生基本信息;学生查看、修改个人附加信息);选课管理(添加、删除选修课表,查看单个学生选课情况以及单门课程被学生选修情况;学生查看、选修课程并可对所选课程进行修改);成绩查询(管理员添加、删除成绩课表,添加学生分数以及查询单人或单课分数情况;学生查看自己所学基础课成绩)。

由于该系统权限有2个,学生和管理员,故这两个权限范围内的都应该具有上述功能,即将上述三大功能模块划分给这2 个权限去具体实现。

信息管理系统

学生

权限管理模块图

学生页面应具有的功管理员

能模块如下:

学生

修改密码 学籍维护 选修课程 查看成绩

学生功能模块

1. 修改密码:学生进入页面后可以修改自己的密码,以达到保密性;

2. 学籍维护:学生可以查看自己的基本信息(基本信息由管理员录入不能修改),并填写修改自己的学籍情况;

3. 选修课程:该功能主要是让学生查看已有的选修课程并进行选修,可以查看自己已选的课程如不满意可以删除重选,每个学生至多能选3门;

4. 查看成绩:学生可以查看自己的必修课成绩。

管理员页面应具有的功能,总括为:

10

管理员

学生管理 选课管理 成绩管理

管理员功能模块

1. 学生管理:该模块主要添加新学生基本信息;查看已有学生基本信息及可对其修改,删除多余或出错学生信息。

2. 选课管理:可以添加新选修课程;查看已有选修课程并对起进行删除修改;查看学生选课情况,可以根据输入学号查看个人选课情况,还可以输入课程号查看该课被选情况;统计每门课程选修的人数以便打印出给任课老师。

3. 成绩管理:可以添加学生所学的基本课程并修改;添加学生成绩;查看学生成绩(根据输入学号和课程号来查看不同的成绩情况);可以对学生成绩进行修改。

下图是学生信息管理系统的总功能模块图:

学生信息管理系统

学籍维护选课管理成绩管理

管理员学生管理员学生管理员学生

添加学生删除学生修改信息修改密码查看信息修改学籍添加课程删除课程修改课程选课情况查看选课选修课程修改选课添加课程删除课程查看成绩添加分数查看成绩

图3.1 系统功能图

11

3.2.4 系统用例图

修改密码

查看选修课表

查看学籍信息

选修课程

修改学籍信息

成绩查询

修改选修课

退出系统

图3.2 学生用例图

查看学生信息

查看选修课

删除选修课

添加新学生

添加选修课

删除学生 查看选课情况

查看必修课

退出系统

添加必修课

查看成绩 添加成绩

图3.3 管理员用例图

12

3.2.5 系统UML活动图

修改密码

13

系统主页

选定登入模块

学生操作

管理员操作

学籍维护 选修课程 查看成绩

学生管理 选课管理 成绩管理

第四章 数据库设计

在本系统中使用的是SQL Server2000数据库管理系统。本系统使用的数据库名为yuqingpeng,下面具体讲解数据库中各数据表的创建和逻辑结构.

4.1 总体表设计

本系统中共用到了6个数据表,如下:

1. admin表:记录管理员信息;

1. student表:记录学生学籍信息;

2. kechengbiao表:记录选修课信息;

3. chegnji表:记录学生基础课信息;

4. 成绩关联表:记录学生基础课成绩信息;

6. 选课关联表:记录学生选课信息。

4.2 数据库表的结构

表1:

admin表的定义:

字段名

admin_id

password

表2:

Student表的定义:

字段名

name

stu_id

password

sex

zy

mz

zzmm

cym

sfz

字段描述

管理员ID

密码

是否主键

数据类型

varchar

varchar

长度

20

20

约束

Not null

Not null

说明

唯一标识

字段描述

学生姓名

学号

密码

性别

专业

民族

政治面貌

曾用名

身份证

是否主键

数据类型

varchar

varchar

varchar

varchar

varchar

char

varchan

varchar

varchar

14

长度

20

20

20

20

20

10

20

20

20

约束

Not null

Not null

Not null

Not null

Not null

Not null

Not null

说明

唯一标识

csrq

jg

jkzk

rxnf

jtdz

jtdh

yzbm

brlxfs

email

qtlxfs

bz

表3:

出生日期

籍贯

健康状况

入学年份

家庭地址

家庭电话

邮政编码

联系方式

邮件

其他联系

备注

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

20

20

20

20

50

20

10

20

20

20

20

Chengji表的定义:

字段名

学期号

课程号

课程名

学分

主讲教师

表4:

Kechengbiao表的定义:

字段名

课程号

课程名

任课教师

星期几

时间

上课教室

字段描述

课程号

课程名

任课教师

星期几

时间

上课教室

是否主键

数据类型

varchar

varchar

varchar

varchar

varchar

varchar

长度

20

20

20

20

20

20

约束

Not null

Not null

说明

唯一标识

字段描述

学期号

课程号

课程名

学分

主讲教师

是否主键

数据类型

varchar

varchar

varchar

varchar

varchar

长度

20

20

20

20

20

约束

Not null

Not null

说明

唯一标识

15

表5:

成绩关联表的定义:

字段名

id

stu_id

课程号

成绩

重修成绩

表6:

选课关联的定义:

字段名

id

stu_id

课程号

4.3 实体及ER图

4.3.1 实体介绍

本系统中的实体共有4 个,分别为:

实体1: 学生(姓名name,学号stu_id,密码password,性别sex,专业zy,民族mz,政治面貌,曾用名cym,身份证sfz,出身日期csrq,籍贯jg,健康状况jkzk,入学年份rxnf,家庭地址jtdz,家庭电话jtdh,邮政编码yzbm,联系方式lxfs,Email

email,备注bz); 关键字为:学号

实体2:选修课(课程号,课程名,任课教师,星期几,时间,上课教室); 关键字为:课程号

实体3:基础课(学期号,课程号,课程名,学分,主讲教师) 关键字为:课程号

实体4:成绩(id,学号,课程号,成绩,重修成绩);

4.3.2 实体的ER图以及各实体之间联系的ER图

实体1的ER图:

字段描述

自动标识

学号

课程号

是否主键

数据类型

int

varchar

varchar

长度

4

20

20

约束

Not null

Not null

Not null

说明

唯一标识

字段描述

自动标识

学号

课程号

成绩

重修成绩

是否主键

数据类型

int

varchar

varchar

varchar

varchar

长度

4

20

20

20

20

约束

Not null

Not null

Not null

Not null

Not null

说明

唯一标识

16

姓名 学号 密码 专业

性别

籍贯

政治面貌

民族

学生

出生日期

曾用名

健康状况

身份证

入学年份

家庭地址 联系方式

图4.1 实体1

实体2的ER图

课程号

课程名

任课教师

选修课

星期几

上课教室

时间

图4.2 实体2

17

实体3的ER图

课程号

学期号

必修课

课程名

主讲教师

学分

图4.3 实体3

实体4的ER图:

学号

ID

成绩

课程号

成绩

图4.4 实体4

重修成绩

实体1与实体2之间的联系:选修(学号,课程号)

学生

选修

选修课

图4.5 实体1与实体2(m:n)关系

18

实体1与实体3之间的关系:学习(学号,课程号,成绩)

学生

学习

必修课

图4.6 实体1与实体3(m:n)关系

4.4 数据库表的关系图

在本系统中共有6个表,其中有些表之间存在着联系,并建立起了关系:

19

4.5 数据库表的视图

4.6 数据库连接

JDBC是Java数据库连接(Java Data Base Connectivity)技术的简称,是为各种常用

的数据库提供无缝连接的技术。JDBC定义了Java语言同各种SQL数据之间的应用程序设计

接口(API),提高了软件的通用性。

JDBC的关键技术是数据库连接驱动程序,针对这点大量的数据库厂商和第三方开发商

支持Java的JDBC的标准,并开发了不同的数据库JDBC驱动程序。这些驱动程序可以分成四种:JDBC-ODBC Bridge驱动程序、JDBC Native Bridge驱动程序、JDBC-Network Bridge驱动程序、Pure Java JDBC Driver。

本系统正是利用JDBC-ODBC Bridge驱动程序来连接数据库的,连接数据库时用到了

JavaBean技术,起代码为:

package yu;

import .*;

import .*;

public class dbconn {

String Sd="bcDriver"; //建立一个联接机

String Sc="jdbc:odbc:yqp"; //建立一个Odbc源

Connection con=null; //Connection对象

ResultSet rs=null; //建立一个记录集

20

PreparedStatement prepstmt = null;

String userName = "sa";

String password = "";

public dbconn(){

try{

e(Sd); //用classforname方法加载驱动程序类

}catch(otFoundException e){ //当没有发现这个加载这个类的时候抛出的异常

n(e); //执行系统的错误打印

}

}

public ResultSet executeQuery(String sql){ //可以执行添加删等操作

try{ con=nection(Sc,userName,password);

Statement stmt = Statement(

_SCROLL_SENSITIVE,

_READ_ONLY);

rs=eQuery(sql);

}catch(SQLException er){

n(sage());

}

return rs;

}

public int executeUpdate(String sql){ //数据库的更新操作

int result=0;

try{ con=nection(Sc,userName,password);

Statement stmt=Statement();

result=eUpdate(sql);

}catch(SQLException ex){

n(sage());

}

return result;

}

public void close(){

21

try{ if(con!=null)

();

}catch(Exception e){

(e);

}try{

if(rs!=null)

();

}catch(Exception e){

n(e);

} }

public PreparedStatement preparedstatements(String sql) {

try{

con=nection(Sc,userName,password);

prepstmt = eStatement(sql);

}catch(SQLException ex){

n(sage());

}

return prepstmt; }

}

在JSP程序中调用这个JavaBean时只需加一条语句:

class=""/> 就与数据库连接上了,可以进行数据调用、修改。

22

第五章 系统具体实现

按照上面所说的学生信息管理系统应具有的具体功能来具体实现该系统,尽量完善系

统的每一个要求,做到精益求精。

5.1 登入界面

由于系统设置了2个不同的权限,所以登入时首先应该对权限进行判断,然后对所属

权限范围内的用户进行用户名和密码验证,验证成功才进入相应的页面。

当用户或密码错误

输入用户名和密码

选择权限

判断用户名和密码

学生界面

系统验证通过

登入系统界面如下:

判断权限

管理员界面

23

当用户输入ID和密码后会根据选择的权限对ID和密码进行验证验证成功时进入下一

页面,判断用户权限及密码正确与否的代码如下:

页面代码:

<%@ page contentType="text/html; charset=GB2312" %>

<%@ page import=".*" %>

<%@ page language="java" %>

<%@ page import=".*" %>

<%@ page import="yu.*" %>

</p><p style="text-indent: 2em;";>身份验证 </p><p style="text-indent: 2em;";>

<% racterEncoding("GBK");

if(("student")){

sql = "SELECT * FROM student where stu_id='"+user+"' and

password='"+pwd+"'";

URL="";

ResultSet rs = eQuery(sql);

if(()){

String a=ing("name");

sion(true);

ribute("name",a);

ribute("id",user);

direct(URL) ;}

else

direct("") ;

}

else if(("admin")){

sql = "SELECT * FROM admin where admin_id='"+user+"' and

24

password='"+pwd+"'";

URL="";

ResultSet rs = eQuery(sql);

if(()){

sion(true);

ribute("id",user);

direct(URL) ;}

else

direct("") ;

}//使用executeQuery执行SQL查询语句

%>

5.2 学生界面

当验证用户名和密码正确后进入学生界面:

学生主页面主要就是显示学生的一些功能,在右边设置了一个frame框来显示学生选择功能后进入的页面。

25

5.3 学生界面功能实现

在学生主页面中有学生所需要的一些功能,如查看公告,修改自己的登入密码,查看学籍并进行修改,查看选修课表并进行选修,查看已选课程并可修改。

5.3.1 查看公告页面

5.3.2 学生修改密码页面

26

修改密码代码:

页面:

<% racterEncoding("GBK");

String pwd="";

String number=(String)ribute("id");

String sql="";

sql="SELECT * FROM student where stu_id='"+number+"'";

ResultSet rs = eQuery(sql);

if(()){

pwd=ing("password");

}

%>

以输入一个密码修改框的table已删,下面是修改后把新密码导入数据库:

Change_ 页面代码:

<% racterEncoding("GBK");

String sql="";

String password=ameter("pwd2");

String number=(String)ribute("id");

sql="update student set password ='"+password+"' where stu_id ='"+number+"'";

eUpdate(sql);

direct("") ;

%>

5.3.3 学生学籍维护页面

学生可以查看自己的信息以及修改自己的学籍信息。

28

学籍维护页面代码主要有两个页面来实现:

页面:用来显示已有信息,并能让学生进行修改提交;change_页面用来把学生新提交信息保存到数据库中:

Change_页面代码:

<% racterEncoding("GBK");

String sql="";

String xuehao=(String)ribute("id");

String cym=ameter("cym");

String sfz=ameter("sfz");

String csrq=ameter("csrq");

String jg=ameter("jg");

String jkzk=ameter("jkzk");

String rxnf=ameter("rxnf");

String jtdz=ameter("jtdz");

String jtdh=ameter("jtdh");

String yzbm=ameter("yzbm");

String brlxfs=ameter("brlxfs");

String email=ameter("email");

String qtlxfs=ameter("qtlxfs");

String bz=ameter("bz");

sql="update student set cym='"+cym+"',sfz='"+sfz+"',

29

csrq='"+csrq+"',jg='"+jg+"',jkzk='"+jkzk+"',rxnf='"+rxnf+"',jtdz='"+jtdz+"',jtdh='"+jtdh+"',yzbm='"+yzbm+"',brlxfs='"+brlxfs+"',email='"+email+"',qtlxfs='"+qtlxfs+"',bz='"+bz+"' where

stu_id='"+xuehao+"'" ;

eUpdate(sql);

direct("") ;

%>

5.3.4 成绩查询

学生可以查看自己以前学期所学课程的成绩,省了寄成绩单的麻烦。该功能主要是跟数据连接,管理员录入的信息给掉出来,显示在页面上,没什么特别之处。

5.3.5 查看学修课表并进行选修

学生可以在该页面进行查看已有的学修课程,并进行选修。每个学生只能选修3门课程。

30

查看已选课程并修改:

这2个功能页面由,,,来具体实现。

页面部分代码: 该页面是主要是实现从数据库中掉课程表及选课保存到选课关联表中去,并限制每人至多能选3门课程。

<% racterEncoding("GBK");

String kechenghao=ameter("id2");

String xuehao=(String)ribute("id");

String sql="";

String sql2="";

String sql3="";

int totalrecord = 0;

sql3= "SELECT count(*) as recordcount FROM 选课关联 where stu_id='"+xuehao+"'";

ResultSet rs = eQuery(sql3);

if (()) totalrecord = ("recordcount");

if(totalrecord<3)

{ sql="SELECT * FROM 选课关联 where stu_id='"+xuehao+"' and 课程号='"+kechenghao+"'";

ResultSet rs1=eQuery(sql);

if(()) {%>

<%}

else

{ sql2=" INSERT INTO 选课关联(stu_id,课程号) values('"+xuehao+"','"+kechenghao+"')";

eUpdate(sql2);

%>

<% }

} else

{%>

<%}%>

5.4 管理员界面

32

该界面是管理员通过验证后进入的页面,管理员可以今选择进行自己所需要的操作。

5.5 管理员界面功能实现

进入管理员界面后,后台工作人员可以选择不同功能进行操作,主要功能有:查看学生基本信息并进行修改、删除;添加新学生信息;查看选修课表并进行修改;查看学生选课情况;添加新选修课;查看必修课表并进行修改;查看学生成绩;添加必修课程;添加学生成绩。

5.5.1 查看学生基本信息

该页面可以对学生进行删除,以及对学生基本信息进行修改。

修改学生基本信息页面:

该功能主要有;;;页面来完成。

33

bordercolordark="#FFFFFF" cellspacing="2">

<% String id2=ameter("id");

String sql="select * from student where stu_id='"+id2+"'";

ResultSet rs = eQuery(sql);

while(()) { %>

<% } ();%>

修改学生信息 姓名:

value=<%=ing(1)%>>

学号:

value=<%=ing(2)%>>

性别:

>

专业:

>

民族:

>

政治面貌:

>

以上是修改页面的代码。

34

5.5.2 添加新学生和选修课

该页面主要是用来添加新的学生及其基本信息。代码主要有和add1_完成。

Add1_部分代码如下:

<% racterEncoding("GBK");

String name=ameter("name");

String stu_id=ameter("stu_id");

String password=ameter("password");

String sex=ameter("sex");

String zy=ameter("zy");

String mz=ameter("mz");

String zzmm=ameter("zzmm");

String sql="";

String sql2="";

sql="SELECT * FROM student where stu_id='"+stu_id+"'";

ResultSet rs=eQuery(sql);

if(())

{%> <% }

35

else {

sql2="INSERT INTO student(name,stu_id,password,sex,zy,mz,zzmm)

values('"+name+"','"+stu_id+"','"+password+"','"+sex+"','"+zy+"','"+mz+"','"+zzmm+"')";

eUpdate(sql2); %>

<% } %>

添加新选修课

该页面有和add2_来完成。

5.5.3 查看学修课表和必修课表

该功能是让管理员能够查看所有选修课程并删除多余的课程,该页面还添加了一个统计每门课程选修人数的功能,让教师能够清楚了解该课选修情况。由页面完成。查看必修课表功能就是查看学生的基础课表,可以对其进行删除,方便添加学生成绩。该功能是由和来完成。

36

统计人数功能实现为一个简单的数据库数据查询语句,如下:

<%

String sql2=””;

sql2 = "SELECT count(*) as recordcount FROM 选课关联 where 课程号='"+kechenghao+"'";

ResultSet bs = eQuery(sql2);

if (()) totalrecord2 = ("recordcount");%>

5.5.4 查看学生选课情况和学生成绩

查看选课该功能分为2个:输入学号查看单个学生的选课情况;输入课程号查看选修该课的学生信息。该功能的实现主要由:,和来实现。

37

根据选择进入不同的界面:

38

页面部分代码2个功能函数,2个form表如下:

function a(){ if(_=="")

{alert("请输入学号在查看");return false;}

}

function b(){ if(=="")

{alert("请输入课程号在查看");return false;}

}

输入学号查看个人选课情况

value="查看" onclick="return a()">


输入课程号查看选修该课学生:

name="chakan" value="查看" onclick="return b()">

查看成绩该功能分为2个:输入学号查看单个学生的成绩情况;输入课程号查看选修该课的所有学生的成绩。该功能的实现主要由:,chakan1_,chakan1_1_

chakan1_1_和chakan1_来实现完成。

输入学号查看个人成绩:

输入课程号查看所学该课所有人成绩:

39

5.5.5 添加必修课表和学生成绩

该功能是添加必修课程,由 和add3_完成

页面代码如下:

  请输入新基础课信息:


40

学期号: 课程号:
课程名: 学分:
主讲教师:



a()">        

name="reset">

该功能是添加学学生成绩,以便学生能方便快捷地知道自己的成绩。由和

add4_来实现。

Add4_页面代码如下:

41

<% racterEncoding("GBK");

String stu_id=ameter("stu_id");

String number=ameter("number");

String sql3="";

sql3="SELECT * FROM student where stu_id='"+stu_id+"'";

ResultSet as=eQuery(sql3);

String sql4="";

sql4="SELECT * FROM chengji where 课程号='"+number+"'";

ResultSet bs=eQuery(sql4);

if(()&&()) {

String cj=ameter("cj");

String cj2=ameter("cj2");

String sql="";

String sql2="";

sql="SELECT * FROM 成绩关联 where stu_id='"+stu_id+"' and 课程号='"+number+"' ";

ResultSet rs=eQuery(sql);

if(()) {%>

<% }

else { sql2="INSERT INTO 成绩关联 values('"+stu_id+"','"+number+"','"+cj+"','"+cj2+"')";

eUpdate(sql2);

%>

<% }

}

else

42

{%>

<%} %>

通过以上功能的实现,该系统也就差不多完成了。以上部分代码已省略,详细代码请查看毕业设计作品。

43

第六章 全文总结

经过测试,系统能够很好的运行实现管理功能,功能模块也能够达到老师所指定的要求。系统可以实现学生信息的集中管理、分散操作、检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是高校的科学化、正规化管理,与世界接轨的重要条件。

通过系统的设计,本人感触最深的是加深了对软件开发过程的理解,熟悉了利用JSP实现各种实用的数据库型软件的开发,以及了解了教务管理的一些流程,也更加深入理解了MIS设计中常见问题和其设计的意义。本文在详细分析了学生信息管理的各功能模块基础上,设计并实现了学生信息管理系统的简易版本。论文的主要工作包括以下几个方面:

1. 详细地分析和总结了学生信息管理的需求,并确定了学生信息管理系统实现的初步方案。

2.分析了系统实现的关键技术原理,和具体描述了各个功能模块,并用图示表示出了系统功能结构图,使得更容易了解本系统。

3.设计并实现了信息管理系统的逻辑模型,并基于SQL Server2000数据库实现了学生信息管理系统数据的物理模型。

4.采用JSP实现了学生信息管理系统的初步版本。

经过两个多月的设计和开发,学生信息管理系统基本开发完毕,但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如班级管理,系统出错处理等一些问题。在我的进一步工作中,我将对这些问题进行完善。

44

致 谢

这篇论文写到这里就即将结束了,在论文结束之前,我要向那些曾经给予我无数关心与帮助的老师、同学和朋友们致以诚挚的谢意。

45


本文标签: 学生 系统 数据库 信息 查看