当前位置:   article > 正文

基于JSP的学生学籍管理系统_jsp学生管理系统

jsp学生管理系统

基于JSP的学生学籍管理系统

摘要

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

本文采用JSP和MS SQL-Server等软件为开发工具,以Windows XP(或Windows 2000)为开发平台,设计出一个学籍管理信息系统,对学生的信息、课程、成绩进行统一管理,便于查询、修改和删除。涉及到的主要内容有:体系结构规划、设计平台的搭建以及系统的设计。主要实现的功能模块有管理系统的功能介绍子系统、新生入学子系统、学生成绩管理子系统、在校学生管理子系统、离校学生管理子系统、各种信息查询子系统以及系统维护子系统。

该系统功能完善,可使高校的学籍管理系统从纯手工中解脱出来,实现高校学籍管理系统自动化、规范化、合理化、科学化,其实用性强,用户界面友好,有助于加快高校的信息传递和智能建设,并为高校整体实现信息化管理体系作好铺垫。

关键字:学生学籍管理; B/S;JSP;SQL SERVER 2000;JDBC-ODBC;

引 言

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

本系统运用了B/S结构开发的。

学籍管理是学校教务的一项主要工作,它反映了一个学校的生源情况和学生的在校表现,每一个档案都记录了一个学生在每个学校的一段历史,必须真实可信,所以档案管理工作是一项严肃、认真而又繁琐的工作。本系统在认真研究国内外同类产品的基础上,博取众家之长,并在多年从事学生档案管理专家的指导下开发而成,该系统适合各类中、小学校、职业技术学校的学生学籍管理。 "学籍管理系统"从根本上解决了学校管理学生有关学生档案的烦恼,它不仅让学校能够方便的录入学生学籍的基本信息,还能够方便查询、打印在校学生和历届已经毕业了的学生学籍信息。

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

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

第一章   绪论

1.1选题背景和意义

随着科学技术、管理方法的不断进步,传统的办公方式、方法和手段已经不能适应现代化管理的需要,作为培养高质量合格人才为宗旨的高等学校,总是走在科技的最前沿,学籍管理的计算机化已成为高校管理现代化、决策科学化的一个重要环节,是开创学籍管理工作新局面的必由之路。

学籍管理指学校对学生所获得的学籍资格进行管理。凡经过升学考试或按规定手续被正式录取的学生,入校办理注册手续后即取得该校学籍,它标志着学生取得了参加学习的资格。学籍是组织管理学生的客观依据,但传统的学籍管理模式和管理手段不仅大量地消耗人力、物力,同时,还存在诸多弊端,时常影响教学秩序,阻碍教学改革的深化,难以保证该项工作应具有的严肃性。

当前,学生学籍管理的弊端主要表现在两方面:第一,工作繁杂、工作量大、错误率高;第二,缺乏监督体系和控制手段:学籍管理的政策性很强,应该严格按照上级部门的有关政策和规定办事,然而,由于传统的学籍管理模式缺乏有效的监督措施,使有关部门的政策规定难以得到及时准确的贯彻执行,使学籍管理工作完全失去了应有的严肃性,给学校的人才培养质量带来了严重的影响,也给社会带来了很大的负面影响。

学生学籍管理系统要实现的目标是为该校提供全面的学生学籍管理的解决方案,以解决传统人工管理方式效率低、保密性差,不利于查找、更新和维护的问题,极大地提高学生学籍管理的效率,节约教育经费,以适应学校信息化建设的发展趋势。

具体目标如下:

1、提高学生学籍管理的效率,节约管理成本,增强学生管理的安全性。

2、满足教育管理单位、学生管理人员和学生的不同层次和不同方面的需要。

3、为学校将来的整体信息化建设提供必要的支持。

总之,通过该系统的建设来提高学校学生学籍管理效率,使得学校的发展能够适应当前的教育信息化建设的总体发展趋势。

因此,开发一个功能完善、操作简单、界面友好、有针对性的学籍管理系统对学校、乃至社会都是非常必要,非常有意义的。

1.2研究内容

系统由一台WEB服务器、SQL  Server2000数据库服务器和众多客户端工作站构成,采用为Browse-Server-Database三级框架结构,使用JSP编程,实现学籍管理, 该系统有以下五个功能模块:

1、 系统管理员管理。该模块主要包括系统用户数据的录入、修改、删除等;

2、 学生信息管理。该模块主要包括以下几个子模块。

(1)浏览学生。可以查看学校总人数。

(2)修改信息。填写个人信息出错,可以通过该功能修改基本信息(可录入)。

(3)添加学生。管理员通过该功能对新生的录入。

(4)删除学生。对历届毕业生(已毕业)的信息,先进行保存档案,再删除。

3、 课程信息管理模块。

(1)显示所有课程:该页面可以进行修改和删除。

(2)添加课程:管理人员对新加的课程进行录入。

(3)课程成绩查询:学生页面直接点查看成绩,就能显示个人成绩。管理员通过输入学号查看成绩。

4、 选课情况管理。 该模块主要包括以下几个子模块:

(1)显示选课:学生直接通过查看页面添加选修课(最多只能选3门课)。管理员通过查看选课可以进行修改和删除。

(2)查看选课:学生进入个人页面直接可以查看选修的课程。管理员通过输入选修课的课程号来查看选课情况。

(3)添加选修课:管理员对新添加的课进行录入。

1.3系统开发技术

本系统的设计综合应用了B/S体系结构、SQL Server 2000、JSP、ODBC、JDBC等技术。

由于客户服务器两层结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,Browse/Server(简称B/S)结构已成为取代Client/Server(简称C/S)结构的一种全新技术。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。

1.3.1 B/S体系结构

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

图1.3.1 三层体系结构

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

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

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

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

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

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

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

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

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

1.3.2 SQL Server 2000 

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页面

1.3.3  JSP技术

JSP(Java Server Pages)是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的。作为采用Java技术家族的一部分,JSP技术能够支持高度复杂的基于Web的应用。

JSP通过以下几个方面加以实现的:

1、简便性和有效性:JSP动态网页的编写与一般的静态HTML的网页的编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序。这样,熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不亲自编写脚本程序,而只是通过JSP独有的标签利用别人已写好的部件来实现动态网页的编写。这样,不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。这在其他的动态网页开发中是不可思议的。

2、程序的独立性:JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性,换句话说,就是拥有程序的对平台的独立性。即:Write once, Run anywhere!

3、程序的兼容性:因为 JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务:从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(如移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。

4、程序的可重用性:在 JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。

JSP语言的优点不言而喻,它对于用户界面的更新,其实就是由Web Server进行的,给人的感觉更新很快;所有的应用都是基于服务器的,所以它们可以时刻保持最新版本;客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。因此,本系统采用JSP语言开发。

1.3.4  ODBC数据访问接口

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

图1.3.2 ODBC 工作原理

1.3.5 JDBC数据访问接口

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

JDBC工作原理如图3所示。

图1.3.3 JDBC工作原理

1.3.6 JavaScript

JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:

是一种脚本编写语言

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

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

基于对象的语言

JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

简单性

JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。

安全性

JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

综合所述JavaScript 是一种新的描述语言,它可以被入到 HTML 的文件之JavaScript语言可以做到回应使用者的需求事件 (如: form 的输入) ,而不用任何的网路来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给伺服端 (server)处理,再传回来的过程,而直接可以被客户端 (client) 的应用程式所处理

第二章 系统设计

2.1需求分析

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

  1. 系统安全性。由于此系统中的操作都是由用户操作的,所以对于用户的权限设置比较严格。对于数据库,设置了不同用户的权限,不同权限进入不同的界面,为了防止数据的并发现象的出现,数据的编辑必须由合法用户来操作,并且对于管理员来说,只允许对自己管理的信息进行编辑,无权对其他用户管理的信息进行编辑。
  2. 系统内容的全面性。学生学籍管理系统不仅是对学籍的一些基本管理,而且还对学籍的维修、删除各方面都有很好的管理,并且不同的管理权限可操作的内容也是不同的,因此,本系统能够很好的满足管理人员的需要,使个人用户可以快捷、简便、安全地使用本系统。
  3. 可扩展性。站点的数据承载量、功能模块的单个或整体调整都可以满足变化的需要,这种适应性称为可扩展性。学籍管理系统的可扩展性,体现在不同用户需要处理不同类型的数据、数据与用户之间进行交互、数据要符合个人用户的使用需求、多表查询系统化、避免性能下降等方面。
  4. 易维护性。本系统采用B/S结构,系统的升级只需要在服务器端完成,更新软件系统的数据库、文件也只需要更新服务器端即可。在进行系统的维护时,只需要远程登录服务器系统,减少了维护系统的成本和周期。

2.1.1运行环境

硬件配置:

CPU:2.26GHZ;

        内存:256M;

        硬盘:80G;

软件配置:

        操作系统:Windows XP/Windows 2000;

        数据库:SQL Server 2000;

        JSP服务器:Tomcat;

        开发工具:JBuilder X。

2.2系统总体设计

2.2.1 系统目标设计

学籍管理信息系统以计算机为工具,把学籍管理系统更完善,通过对教务管理所需的信息管理,减轻行政人员的工作负担,使教学办公室对学生档案的管理更方便,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。计算机的资源是受到限制的,因此要充分利用JSP的功能,设计出功能强大的软件,同时要尽可能减少对系统资源的占用,同时对本系统要求有良好的保密

2.2.2 系统设计思想

学籍管理系统主要实现的是对学生的学籍、选修课、基础课程和成绩的管理。首先,对用户设置不同的权限,根据不同的权限进入不同的页面。其次,对于所输入的用户名和密码进行判断。最后,成功登录的话:1、如果是学生页面,登录到个人管理页面,其中包括学籍维护、选修课表、所选课程、成绩查询、密码修改。2、如果是管理员页面,管理员可以对出错学生信息进行修改,对选修课程的添加、修改、删除,以及对基础课程的添加、修改、删除。也可以通过查看成绩,显示所有学生成绩,或所有选修了该课程的学生。

2.2.3 系统功能描述

本系统功能主要划分学生操作管理、管理员操作管理2大模块。其中学生操作模块包括学籍维护、选课管理、成绩查询、修改密码这几个小模块。管理员操作包括后台学生信息管理、选修课程信息管理、基础课程信息管理、成绩这几个小模块。系统根据登录用户的身份,进入不同的界面,进行不同的功能操作。系统的2个大模块划分如图2.1所示。

  1. 学生操作管理包括以下几个模块,如下图所示:

在学生操作管理系统中,方便学生在网上查询个人信息、成绩、查看公告以及维护个人信息。下面具体介绍每个子功能模块。

  1. 学籍维护:该模块包括不可录入的基本信息和可录入的基本信息,学生可以核对不可录入的信息,对于有错的信息可以通过管理员来修改。其它可录入的信息,学生可以进行修改,提交后数据库更新相关信息。此模块完成的就是学生个人信息的查询、更新这些维护管理操作。
  2. 选课管理:该模块又包括选修课表和所选课列表。选修课表列出了所有开设的课程,同时列出授课教师,上课时间,教室等这些数据项信息。学生点课程列表前面的添加,就可以添加自己喜欢的课程,每位学生最多只能选3门课,超过3门或者重复选课都会弹出错误提示框,学生如果想换课程,可单击所选课程前面的删除,重新选择课程。
  3. 成绩管理:添加此模块,可以方便学生在网上直接查看自己的成绩,不用特意到学校去咨询,或等待邮寄信。这样不紧方便了学生,也减轻了教务处的负担,也正是该系统方便、快捷、及时的特点。
  4. 修改密码:由于一开始,所有学生的密码都是统一的,为了维护个人信息,每个学生可以通过该功能进行密码修改。
  1. 管理员操作管理包括下面几个子模块,如下图所示:

   在管理员操作管理中,管理员对学生信息的修改、添加、删除,对课程的修改、添加、删除。下面具体介绍各个功能模块。

  1. 学生信息管理:在该页面,管理员可以进行添加、修改、删除,具体为对出错学生信息的修改,对新生的录入,对已经毕业了的学生,删除有关他们的相关信息。
  2. 选修课程管理:管理员根据每个学期的变动,添加或删除相应的课程,也可以对出错信息进行修改。在该模块,管理员还可以查看学生选课情况,输入学号查看该学生选课情况,输入课程号查看选修了该课程的所有学生。
  3. 基础课程管理:根据每个学期所学课程的不同,管理员可以对课程进行添加、修改、删除操作。
  4. 查看成绩管理:可以精确查找学生成绩,也可以通过输入课程,查看该课程所有学生的成绩,以便进行学生的排名。

通过上面的介绍,基本确定了系统总功能结构图,如下图所示:

2.2.4系统用例图

用例图确定系统中所包含的参与者、用例和两者之间的对应关系,用例图描述的是关于系统功能的一个概述。系统分为学生登录和管理员登录,下面分别对其进行用例分析。

1、学生用例分析以及下图

登录:学生登录后才能进行关于本人信息等的一些操作。

密码修改:每位学生的初始密码都是相同的,因此学生登录后要修改系统登录密码。

任选课表:网上选修自己感兴趣的课程。

查看已选课程:查看自己选修的课程,并可以退选。

学籍维护:网上维护和管理自己的信息,当信息有变更时可以及时的更新。

成绩查询:及时的了解到自己每学期的学习成绩。

2、管理员用例图以及下图

登录:输入正确的用户ID和密码后才可以登录到后台进行管理操作。

密码修改:管理员修改自己的密码。

学生信息管理:对学生信息进行修改、删除操作。

学生信息添加:对新生的录入。

课程列表管理:增添、修改、删除课程。

选课学生查询:查询每门课程被选修的具体的学生信息。

学生成绩管理:查看个人成绩,也可查看该课程所有学生成绩。

第三章 数据库设计

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

3.1总体表设计

该系统中共需要创建6个数据表,依次是:

  1. admin表:记录管理人员信息
  2. student表 :记录学生信息
  3. chengji表:记录基础课程信息
  4. kecheng表:记录选课信息
  5. 成绩关联表: 记录学生基础课程成绩
  6. 选课关联表:记录学生选课信息

3.2 数据库表的结构

表3-1 admin表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

name

管理员姓名

char

20

Not null

惟一标识

sex

性别

char

10

age

年龄

char

10

tel

电话

char

20

email

邮箱

50

address

地址

50

ad_password

密码

50

Not null

表3-2 student表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

stu_name

姓名

不是

char

20

Not null

stu_id

学号

char

10

Not null

惟一标识

stu_password

密码

varchar

50

Not null

sex

性别

char

10

Not null

dept

专业

char

25

Not null

mz

民族

char

25

Not null

zzmm

政治面貌

char

20

Not null

zym

曾用名

char

25

sfz

身份证

varchar

50

age

年龄

char

20

jg

籍贯

varchar

50

jkzk

健康状况

char

25

rxdate

入学时间

char

20

jtdz

家庭地址

varchar

50

jtdh

家庭电话

char

20

yzbm

邮政编码

char

15

brlsfs

本人号码

char

15

email

邮箱

varchar

50

qtlxfs

其他联系

char

50

bz

备注

char

50

表3-3 chengji表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

xqh

学期号

不是

char

20

Not null

kch

课程号

varchar

50

Not null

惟一标识

kcm

课程名

char

20

Not null

xf

学分

char

20

zjjs

主讲教师

char

20

表3-4 kecheng表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

kch

课程号

varchar

50

Not null

惟一标识

kcm

课程名

varchar

20

Not null

rkjs

任课教师

varchar

20

Not null

xqj

星期几

varchar

20

sj

时间

varchar

20

skjs

上课教室

varchar

20

表3-5成绩关联表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

id

自动编号

int

4

Not null

惟一标识

stu_id

学号

varchar

50

Not null

外键

kch

课程号

varchar

50

Not null

外键

成绩

成绩

char

20

重修成绩

重修成绩

char

20

表3-6选课关联表的定义

字段名

字段描述

是否为主键

数据类型

长度

约束

说明

id

自动编号

int

4

Not null

惟一标识

stu_id

学号

varchar

50

kch

课程号

varchar

50

3.3 实体及ER图

3.3.1 登录管理

实体介绍

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

实体1: 学生(姓名stu_name,学号stu_id,密码stu_password,性别sex,专业dept,民族mz,政治面貌zzmm,曾用名cym,身份证sfz,出身日期age,籍贯jg,健康状况jkzk,入学年份rxnf,家庭地址jtdz,家庭电话jtdh,邮政编码yzbm,联系方式lxfs,Email email,备注bz);   关键字为:学号stu_id

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

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

实体4:成绩(id,学号stu_id,课程号kch,成绩,重修成绩);关键字为:id

各个实体之间的关系图:

3.4 数据库表的关系图

  在学籍产管理系统中,涉及到5个数据表的操作,其中有些表会与多个表有关联,但结构比较明晰,各表的关系如下图:

3.5 数据库表的视图

系统通过建立视图来进行查询,如下是查看的视图:

第四章 系统具体实现

4.1 关键应用

4.1.1数据库连接

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驱动程序来连接数据库,步骤如下:

1、将SQL Server 2000改为“SQL Server和Windows”方式登录;

2、建立访问系统dsn112数据库用户;

3、建立ODBC数据源(系统数据源名称为dsn112);

4、编写JSP程序连接数据库代码: 

  1. package proj112;
  2. import java.io.*;
  3. //import javax.servlet.http.*;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.sql.Statement;
  10. public class dbconn {
  11.                //建立一个联接机
  12.           String url="jdbc:odbc:dsn112";                      //建立一个Odbc源
  13.           Connection con=null;                               //Connection对象
  14.           ResultSet rs=null;           //建立一个记录集
  15.           PreparedStatement prepstmt = null;
  16.           String userName = "sa";
  17.           String password = "";
  18.           public dbconn(){
  19.                   try{
  20.                           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                  //用classforname方法加载驱动程序类
  21.                   }catch(java.lang.ClassNotFoundException e){ //当没有发现这个加载这个类的时候抛出的异常
  22.                           System.err.println(e);              //执行系统的错误打印
  23.                   }
  24.           }
  25.           public ResultSet executeQuery(String sql){         //可以执行添加删等操作
  26.                   try{
  27.                        con=DriverManager.getConnection(url,userName,password);
  28.                           Statement  stmt = con.createStatement(
  29.                                           ResultSet.TYPE_SCROLL_SENSITIVE,
  30.                                           ResultSet.CONCUR_READ_ONLY);
  31.                           rs=stmt.executeQuery(sql);
  32.                   }catch(SQLException er){
  33.                           System.err.println(er.getMessage());
  34.                   }
  35.                   return rs;
  36.           }
  37.           public int executeUpdate(String sql){              //数据库的更新操作
  38.                   int result=0;
  39.                   try{
  40.                        con=DriverManager.getConnection(url,userName,password);
  41.                           Statement stmt=con.createStatement();
  42.                           result=stmt.executeUpdate(sql);
  43.                   }catch(SQLException ex){
  44.                           System.err.println(ex.getMessage());
  45.                   }
  46.                   return result;
  47.           }
  48.           public void close(){
  49.                   try{
  50.                           if(con!=null)
  51.                                   con.close();
  52.                   }catch(Exception e){
  53.                           System.out.print(e);
  54.                   }try{
  55.                           if(rs!=null)
  56.                                   rs.close();
  57.                   }catch(Exception e){
  58.                           System.out.println(e);
  59.                   }
  60.           }
  61.           public PreparedStatement preparedstatements(String sql) {
  62.                   try{
  63.                   con=DriverManager.getConnection(url,userName,password);
  64.                   prepstmt = con.prepareStatement(sql);
  65.                   //PreparedStatement prepstmt = null;
  66.           }catch(SQLException ex){
  67.                   System.err.println(ex.getMessage());
  68.           }
  69.           return prepstmt;
  70.           }
  71. /*          public static void main(String[] args) {
  72.                 try {
  73.                         ConnDB db = new ConnDB();
  74.                         //db.executeQuery("select * from student_info";
  75.                         ResultSet rs = db.executeQuery("select * from student_info");
  76.                         while(rs.next()) {
  77.                                 System.out.println(rs.getShort(1));
  78.                                 System.out.println(rs.getString(2));
  79.                         }
  80.                         //System.out.println("连接数据库成功!");
  81.                 }catch(Exception e) {
  82.                         e.printStackTrace();
  83.                 }
  84.         }*/
  85. }

4.2 登录管理

说明:用户只需要填写登录帐号和密码,后台会判断用户的权限从而进入不同的操作页面。

当输入的用户名或密码有错,显示提示框,如下图所示:

   

4.3 菜单界面

登录用户设置了两个权限(系统管理员、学生用户),不同的权限进入不同的操作界面。下面是系统管理员的操作界面,分为三个功能模块:

1、学生模块:该模块包括三个子模块,管理员可以对新生的录入,对在校学生信息的修改,以及对毕业学生的删除。要精确查找学生,可以输入学号,查找到相应学生信息。在查看成绩这一子模块,你可以输入学号,查看该学生所有课程成绩,或输入课程号,查看该课程所有学生成绩情况。

2、课程模块:该模块包括五个子模块。在查看选修课表页面,管理员可以对课程进行修改,对每个学期所选课程的不同,进行添加、删除操作。在选课情况页面,进行两个操作,输入学号可以查看该学生选课情况;输入课程号,可以查看选修了该课程的所有学生,以便进行统计。基础课表页面显示所有课程信息,根据每个学期课程的变动,进行添加、修改、删除操作。

3、帮助中心:包含两个子模块。管理员可以对个人登陆的密码进行修改,或退出该管理员页面。

 

4.4 系统管理

4.4.1学生信息显示页面

在此页面既可以查询到学校所有学生信息,也可以在此编辑学生的一些信息,比如增加修改删除学生信息。

以下为修改代码:change.jsp

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

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

<%@ page language="java" %>

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

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

<jsp:useBean id="a" scope="page" class="proj112.dbconn"/>

  <% request.setCharacterEncoding("GBK"); %>

<FORM Action="edit.jsp" Method="post" name="edit">

<table align="center" border="2" width="100%" bordercolorlight="#CC99FF" cellpadding="2" bordercolordark="#FFFFFF" cellspacing="2">

  <%

  String id2=request.getParameter("id");

  //out.print(id);

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

  ResultSet rs = a.executeQuery(sql);

  while(rs.next()) { %>

  <tr> <td align=center colspan=2><font color=blue size=5><b>修改学生信息</font></td>

<tr align=center><td>姓名:</td><td><INPUT TYPE="text" NAME="stu_name" value=<%=rs.getString(1)%>></td>`</tr></tr>

  <tr align=center>

  <td>学号:</td><td><INPUT TYPE="text" NAME="stu_id" value=<%=rs.getString(2)%>></td>

 </tr>

<tr align=center><td>

  性别:</td><td><INPUT TYPE="text" NAME="sex" value=<%=rs.getString(4)%>></td>

  </tr>

  <tr align=center><td>

  专业:</td><td><INPUT TYPE="text" NAME="dept" value=<%=rs.getString(5)%>></td>

  </tr>

  <tr align=center><td>

  民族:</td><td><INPUT TYPE="text" NAME="mz" value=<%=rs.getString(6)%>></td>

  </tr>

  <tr align=center><td>

  政治面貌:</td><td><INPUT TYPE="text" NAME="zzmm" value=<%=rs.getString(7)%>></td>

  </tr>

  <% } rs.close();%>

<tr><td align=center  colspan=2>

<INPUT align=center TYPE="submit" value="提交"> </td>

</tr></table></form>

edit.jsp

<body>

  <% request.setCharacterEncoding("gb2312"); %>

  <%

String id2=request.getParameter("stu_id");

String stu_name = request.getParameter("stu_name");

String stu_id = request.getParameter("stu_id");

String sex = request.getParameter("sex");

String dept = request.getParameter("dept");

String mz = request.getParameter("mz");

String zzmm = request.getParameter("zzmm");

//int age2 = Integer.parseInt()

String sql = "update student set stu_name='"+stu_name+"', stu_id='"+stu_id+"', sex='"+sex+"',dept='"+dept+"',mz='"+mz+"', zzmm='"+zzmm+"' where stu_id='"+id2+"'";

//rs2.close();

a.executeUpdate(sql);

response.sendRedirect("std.jsp");

%>

</body>

4.6.4所选的课程

显示该学生选修的课程,如果有自己误选的课程,可以点前面的删除,就可以删掉。

 

图 4.6.7  删除页面

4.6.5修改个人密码

 

 

图4.6.8  密码修改页面

以上代码部分为了节省空间,有些是删掉了JavaScript对话框代码,但是在系统实现代码中是有写入的。

这样,整个学籍管理系统的所有功能全部都实现了。

第五章 全文总结

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

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

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

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

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

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

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

致  谢

这篇论文写到这里就即将结束了,在论文结束之前,我要向那些曾经给予我无数关心与帮助的老师、同学和朋友们致以诚挚的谢意。并感谢南昌大学和南昌大学科学技术学院对我的培养,感谢南昌大学科学技术学院给了我无限的知识。    

本文是在吴英培老师的精心指导下完成的,正是有他的耐心辅导,系统才能够比较完善的设计下去,在此谨向导师致以最诚挚的谢意。

同时也要感谢所有关心和支持我成长的老师们,他们在工作、学习、生活等各方面都给予了我关怀和鼓励。教于了我一生都受用的人生哲理。在这道一句:您们辛苦了!

感谢四年以来同学对我的关心和照顾。

同组的同学同样给与我不少帮助,这里一并表示感谢。

参考文献:

[1]朱俊炎 WEB开发技术[M]  2006.6

[2]岑玲 基于Browser/Server结构的办公自动化系统[M]. 计算机与现代化 2001.2

[3]丁宝康、董健全  数据库实用教程[M]. 清华大学出版社2003.6

[4]石志国 、薛为民  JSP应用教程[M]. 清华大学出版社;北京交通大学出版社2004.10

[5]胡艳洁   HTML标准教程[M]. 中国青年出版社   2004.9

[6]王明福  基于三层C/S结构办公自动化系统的研究与实践[M]. 电子计算机, 2001.6

    

关注博主下篇更精彩

一键三连!!!

一键三连!!!

一键三连!!!
感谢一键三连!!!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号