java开发学生信息管理系统_第1页
java开发学生信息管理系统_第2页
java开发学生信息管理系统_第3页
java开发学生信息管理系统_第4页
java开发学生信息管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要Struts框架是基于MVC模式的开源项目,经过几年的发展已逐渐成为一个稳定、成熟的框架,并且占有MVC框架中最大的市场份额。Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。

本论文对系统的整个设计实现过程进行了分析和探讨:首先概要性的介绍了Struts的基本理论;又介绍了系统的需求分析,包括需求分析、可行性分析、业务流程分析等;然后就该学生信息管理系统设计过程中,对设计要点的理论进行了叙述;最后介绍了该学生信息管理系统的功能模块划分,简要列举了各功能模块的功能,并列出了一些程序代码以说明该学生信息管理系统应用程序设计中所采用的技术。本系统界面友好,操作简单,比较实用。关键字:学生信息管理,MVC模式,Struts框架第一章概述1.1课题概述随着Internet及全球信息网应用的快速发展对Web的应用不再仅仅要求具有发布静态信息的简单功能,而且要求具有实时动态处理交互信息的能力,这些要求还在不断地变化和提高。因此,如何方便、快捷地开发具有高效、灵活和可扩展的Web应用系统成为一个倍受关注的课题。MVC模式凭借其具有的模型、清楚显示事务逻辑分离和由控制器进行流程控制等特点,符合当前Web应用系统开发的基本要求,已逐渐成为开发Web应用系统的主流架(framework)。MVC模式就是模型-视图-控制器(Model-View-Controller)模式就是为那些需要为同样的数据提供多个视图的应用程序而设计的。它很好地实现了数据层与表示层的分离,特别适用于开发与用户图形界面有关的应用程序模式中基本结构定义为:控制器用来处理用户命令以及程序事件的;模型维护数据并提供数据访问方法;视图数据的显示。而struts是MVC模式的一种实现,它将servlet和JSP标记(属于J2EE规范)用作实现的一部分,她继承了MVC模式的各项特性,并根据J2EE做了相应的修改。这就是具有现代气息的编程思想。

当今,我国教育产业化飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,尤其是对一个学校能够具有一整套完善的教学管理软件提出了更多的要求。为了适应这种形式,教育系统尤其是大学不仅首先要有坚实的硬件基础,还要有一整套完善的教学管理软件管理系统。而要实现这一功能,就要求学校管理者配备一套高效的教育管理网络系统,以便在学校内实施良好的一整套完善的管理且以最快地速度响应教师和学生的需求,及时为他们提供服务,为他们提供一个高效、便捷的环境。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过学生信息管理系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学、科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平。1.2Struts概述1.2.1MVC介绍.模型-视图-控制器(Model-View-Controller)是80年代出现的一种软件设计模式,现在已经被广泛的使用。它强制的把应用程序的输入、处理、输出分开,三个核心模块M-V-C分别负担不同的任务。并在系统运行时将其结合,这样使得开发的耦合度很低.模型(Model)

模型是应用程序的主体部分。模型表示业务数据和业务逻辑,一个模型可以为多个视图提供数据,提高了应用的可重用性。视图(View)视图是应用程序中用户界面相关的部分,视图向用户显示数据,并能接收用户的输入数据,但它并不进行任何实际的业务处理。控制器(controller)

控制器工作就是根据用户请求,调用相应的模型组件处理请求,然后调用相应的视图显示模型返回的数据。图1.1

MVC结构

图1.2JSPModel1图1.3JSPModel2model2容易使系统出现多个Controller,并且对页面导航的处理比较复杂,有些人觉得model2仍不够好,于是CraigR.McClanahan2000年5月提交了一个WEBframework给JavaCommunity。这就是后来的Struts。

1.2.2Struts体系结构Struts由一组相互协作的类、Serlvet以及丰富的标记库(jsptaglib)和独立于该框架工作的实用程序类(Validator)组成。

Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和ObjectRelationBridge。在视图层,Struts能够与JSP,VelocityTemplates,XSL等等这些表示层组件想结合。从视图角度(View)

主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。目前包括:BeanTags,HTMLTags,LogicTags,NestedTags,TemplateTags这几个Taglib。有关它们的详细资料请参考struts用户手册从模型角度(Model)

模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在Struts中,系统的状态主要有ActiomFormBean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便的与数据库操作从控制器角度(Controller)

在Strutsframework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。1.2.3Struts实现的MVC框架1.视图视图是通过一组JSP程序实现的.这些JSP程序中不能包含业务逻辑,也不能包括模型的信息.模型的信息是通过控制器传递的.在Struts中ActionForm也被看成是视图的一部分.它其他更新视图,以及视图查询模型状态的桥梁.2.模型模型是程序的状态表示,其状态包括,消息中传递的状态,以及共享状态或一次回话中的状态,以及持久状态.而操作这些状态的流程也同样包括在模型中.这些模型也就是业务的总体运作流程和数据.3.控制器控制器部分由ActionServlet和Action来实现.ActionServlet也就是Struts框架用来和Web容器交互的接口.该类是Struts框架的核心组件.ActionServlet继承了HttpServlet类.它在MVC模型中扮演中央控制器的角色.当Web容器一接收到客户请求就会交割ActionServlet该类更加struts-config.xml文件的配置信息选择合适Action来处理请求.并传递请求过程中的数据,这些数据是通过ActionForm传递的.Action本身也并不包含业务逻辑的处理代码.它只是负责调用业务的处理代码的.图1.4struts实现的MVC框架调用这些代码的方法在execute()方法中.该方法在调用业务处理以后会放回一个ActionForward对象来选择对应的视图.一般而言我们的Action必须直接或间接的继承该类.然后重写excecute()方法以完成我们自己的处理消息.其实我们自己也可以实现类似于Struts的框架,那为什么要使用Struts呢?Struts是一个开放原代码的应用框架,在最近几年得到了飞速的发展,在JSPWeb应用开发中应用得非常广泛,有的文献上说它已经成为JSPWeb应用框架的事实上的标准。下面列举的这些理由是显而易见的:首先,它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到了包括它的发明者CraigR.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性。如,现在,它已经与tiles融为一体,可以展望,它很快就会与JSF等融会在一起1.3系统需求分析经过调查、研究、分析、计算,在学生信息管理中的应用已经条件成熟,我们将从以下几个方面总结系统开发的可行性,具体情况如下:1.技术可行性以Windows为操作系统,运用SQLSERVER2000的数据库技术,开发以WindowsXP为用户的操作平台,界面友善、功能齐全的《学生信息管理系统》。新系统的运行硬件环境PC机,当用户使用系统时,通过正确的口令进入系统,进行数据库的维护操作和运用。2.经济可行性一方面,新系统中友好的人机界面和更强劲的功能支持,会使教务人员的工作进一步提高,从而节省人力、物力,进而提高经济效益;另一方面系统开发成本低,现有PC机即可提供该系统开发工作需要的所有硬件设备环境,至于人员主要以现有教师为指导,学生为主体进行完成。3.操作可行性操作上是对IE浏览器的引用,该浏览器的使用,主要凭借使用浏览操作技术即可完成数据录入、报表打印,方便简单。使用前只要对用户进行简单的说明或阅读帮助文件即可使用该系统。在对现有系统和现状认真调查分析的基础上,明确了学生信息管理工作本身存在的问题和建立管理信息系统的初步要求,进一步研究确定新系统的目标如下:(1)按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持中学学生管理的全过程,加强成绩表中信息资源的管理和应用,提高教务工作的效率。(2)针对现代计算机广泛应用的情况以及数据的封闭性,学生信息管理系统基于Windows系统研制、设计和开发。(3)考虑经费等的原因,新系统使用PC机和现有其他打印设备以节省资金、降低成本。功能需求通过调查,要求系统需要有以下功能:=1\*GB2⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;=2\*GB2⑵由于该系统的使用对象多,要求有较好的权限管理;=3\*GB2⑶原始数据修改简单方便,支持多条件修改=4\*GB2⑷方便的数据查询,支持多条件查询;=5\*GB2⑸在相应的权限下,删除数据方便简单,数据稳定性好;=6\*GB2⑹数据计算自动完成,尽量减少人工干预;性能需求分析(1)硬件环境CPU:Pentium4C2.6D内存:512M硬盘:80G(2)软件环境WindowsXP系统SQLServer2000Ecelipse6.0第二章总体设计2.1系统功能描述本系统主要分成三个部分:学生信息管理,成绩管理,及用户管理。1.学生信息管理为每位在校学生就其中学号、性别、姓名、出生日期、出生地、备案,以同一年入学的学生为单位,资料来源为入学档案。其中,学号为唯一标志(每一名学生为4位号码)。在该系统中多为浏览和查询之用打印作用很少用,而且以中考成绩作为分班的依据,可以对学生信息进行添加,删除,修改。2.成绩管理每个学期组织期末考试,并对每个学生的各门成绩进行登记、汇总、排名。涉及的主要数据是每个班每个学期一张成绩单,内容是学生的学号、姓名及成绩,在该管理中主要完成成绩的浏览、查询、分数的计算、打印的功能,而且成绩作为学生学习状况的主要依据和教师教学质量考核的主要依据之一。3.用户管理该模块的主要功能是实现对用户的各种权限管理工作,包括登记新用户、老用户找回信息、修改用户密码、修改用户注册信息、删除用户帐号等功能,从而方便于对用户的管理。根据以上的系统功能描述,《学生信息管理系统》从功能上可以做出如下系统的划分:学生信息管理系统信息管理学生信息管理系统信息管理成绩管理用户管理添加学生信息显示学生信息修改学生信息删除学生信息学生成绩查询学生成绩查询用户注册用户修改图2-1功能设计图2.2数据流图与数据字典数据流图是在对系统分析调查的基础上,以系统的科学性、管理的合理性、技术的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确地描述应具有的数据加工功能、数据输入、数据输出、数据存储及数据的来源和去向。学生信息管理系统经过划分出各子系统及其各自的功能,以及相互联系,绘制出数据流图如下:学生信息管理系统学生信息管理系统管理员用户图2-2顶层数据流图管理员1.检查管理员1.检查合法性3.系统维护4.学生信息管理用户系统管理员2.显示系统主要功能图2-3第0层数据流图检查登录名检查密码检查登录名检查密码检查登录系统管理员登录名,密码图2-4第一层数据流图显示系统主要功能显示学生基本信息显示系统主要功能显示学生基本信息修改学生基本信息删除学生基本信息查询学生成绩添加学生基本信息学生成绩录入学生信息表学生信息表更换界面学生成绩表图2-5第一层数据流图修改学生检查学生信息合法性修改学生检查学生信息合法性学生信息表修改学生信息检查成功图2-6第二层数据流图(修改学生信息)添加学生检查学生信息合法性添加学生检查学生信息合法性学生信息表添加学生信息检查成功图2-7第二层数据流图(添加学生信息)删除学生检查学生信息合法性删除学生检查学生信息合法性学生信息表删除学生信息检查成功图2-8第二层数据流图(删除学生信息)查询成绩检查学生信息合法性查询成绩检查学生信息合法性学生成绩表显示学生成绩检查成功图2-9第二层数据流图(查询学生成绩)2. (1)学生信息管理模块:学生信息管理要求=[新生数据处理要求|班级数据管理要求|添加数据要求|数据删除要求|数据备份要求]新生数据处理要求=[新生数据|班级数目|起始学号|班级名称|专业]班级数据管理要求=[班级名称|修改要求]添加数据要求=[单个学生数据单|成批数据单]数据删除要求=[起止学号|班级名称|所有学生数据]数据备份要求=[班级名称|学期数]新生数据=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分起始学号={数字}15班级名称=[会计05(1)|会计05(2)|会计05(3)|计算机通信工程05(1)|会计06(1)|会计06(2)|会计06(3)|计算机通信工程06(1)|会计07(1)|会计07(2)|会计07(3)|计算机通信工程07(1)|网络技术07(1)|网络技术07(1)|机电07(1)|机电08(1)|机电08(1)|网络技术08(1)|网络技术08(1)]修改要求=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+专业+班级+是否住宿单个学生数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+班级+是否住宿成批数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+班级+是否住宿性别=[男|女]政治面貌=[团员|非团员]是否住宿=[住宿|通学](2)成绩管理模块:成绩管理要求=[成绩录入要求|总分计算要求|成绩备份要求]成绩录入要求=班级名称+成绩数据总分计算要求=班级名称+成绩数据成绩备份要求=班级名称+学期数成绩数据=姓名+课程名称+分数成绩表=学号+姓名+期中成绩总分+期末成绩总分+期中名次+期末名次(3)课程信息管理模块:课程管理要求=[课程表维护要求|教师课程表维护要求|排课要求]课程表维护要求=课程名称+年级+专业教师课程表维护要求=教师姓名+任教班级+课程名称+周课时数年级=[一年级|二年级|三年级](4)查询模块:查询要求=[查询条件]查询结果=[学生信息统计表|学生成绩统计表|学生总分名次统计表|教师信息统计表|备份信息统计表]2.3数据库设计2.本系统涉及到的信息主要有5类:学生信息、成绩信息、教师信息后备信息。由于成绩信息和教师信息与学生信息关系密切,因此将这二类信息存放在同一数据库中,以提高多种信息同时读取的速度。按以上分析,将系统的数据库设计为二个:一、学生数据库:该数据库为中包含有以下各表:1、学生表:记录学生的基本信息,是进行学生及其它各类信息处理的基础。2、成绩表:记录学生的期中、期末及总评的各科成绩。3、总分表:记录学生的期中、期末及总评的总分及名次。4、课程表:记录各专业各年级开课情况,在添加学生记录时,可根据该表的情况决定在成绩表添加学生记录的个数。二、后备数据库:该数据库主要保存两类信息:学生信息、成绩信息。其数据表是按用户的要求在运行过程中动态建立的。2.1、学生表结构:表1编号字段名称字段类型字段宽度1学号CHAR152姓名CHAR103性别CHAR24出生日期DATE85电话CHAR106家庭住址CHAR507班级CHAR208原毕业学校CHAR509是否住宿CHAR410政治面貌CHAR611入学总分LONG412专业char202、课程表结构:表2编号字段名称字段类型字段宽度1课程名称CHAR152年级CHAR103专业char203、成绩表结构:表3编号字段名称字段类型字段宽度1学号CHAR152课程名称CHAR153期中成绩LONG44期末成绩LONG45总评成绩LONG46班级char204、总分表结构:表4编号字段名称字段类型字段宽度1学号CHAR152期中总分LONG43期末总分LONG44期中名次LONG45期末名次LONG46班级char20第三章详细设计根据系统的主要功能及上一章的总体设计,系统开发进入第二个阶段:详细设计。在这一阶段的工作中,主要任务有以下几项:1、根据原型化的开发原则,为系统的每个模块功能进行界面设计,作为进一步优化的基础。2、进行系统的流程分析,为模块的细化做好准备。3、对每个模块进行详细的算法设计。3.1系统模块设计本系统的用户名和密码保存在Admins表中,可以用admin;admin为用户名和密码来登陆本系统,其登录界面如下:登录页面主要是根据用户输入的用户名和密码,去查找管理员表中是否存在这样的合法的用户,找到则登录成功;未找到则提示用户登录错误。其系统流程图如下所示:退出出退出出开始用户登录成功之路查询信息管理自己和学生的信息错误重试管理用户普通用户户<html>

<head>

<title>学生信息管理系统</title>

<style

type="text/CSS">...

<!--

.style1

{...}{

font-size:

18px;

font-weight:

bold;

}

.style2

{...}{font-size:

24px}

.style5

{...}{font-size:

16px}

-->

</style>

</head>

<body

bgcolor="papayawhip"

width="300"

height="300">

<center>

<table

border="2"

bordercolor="black"

bgcolor="lightgreen">

<tbody>

<tr>

<td><div

align="center"

class="style1

style2">系

</div></td>

</tr>

<form

action="login.jsp"

method="post">

<tr>

<td

height="28"><span

class="style5">用户名</span>

<input

type="text"

name="uid"

maxlength="20"

style="width:150"></td></tr><br>

<tr>

<td><span

class="style5">密

码</span>

<input

type="password"

name="upwd"

maxlength="20"

style="width:150"></td></tr><br>

<center>

<tr><td><div

align="center">

<input

type="submit"

value="登录"

>

<input

type="reset"

value="取消">

</div></td></tr>

</center>

</form>

</tbody>

</table>

</center>

</body>

</html>将登录用户输入的信息提交到login.jsp页面机型处理,这里为了方便,不执行数据库的访问操作,直接使用amdim作为登录用户名和密码,但在实际中是要从数据库中读取的,该jsp页面代码实现如下:<%...@

page

contentType="text/html;charset=GB2312"%>

<%...

if(request.getParameter("uid").equals("sky2098")&&request.getParameter("upwd").equals("sky2098")){

session.setAttribute("login","ok");

session.setMaxInactiveInterval(-1);

%>

<jsp:forward

page="main.jsp"/>

<%...

}else{

out.println("用户名或密码输入错误!");

}

%>如果登录成功,则设定login的值为ok,提交到下一步验证页面,则进入main.jsp页面,否则,如果输入的用户名和密码不合法就打印错误信息,main.jsp页面代码如下:<%...@

page

contentType="text/html;charset=GB2312"%>

<%...@

include

file="checkvalid.jsp"

%>

<html>

<head>

<title>~WELCOME

TO

MY

HOMEPAGE~</title>

</head>

<body>

<center>

~WELCOME

TO

MY

HOMEPAGE~

</center>

</body>

</html>

这个页面使用<%

@

include

file="checkvalid.jsp"

%>包含了一个jsp页面checkvalid.jsp为了验证输入信息的合法性:<%...

if(session.getAttribute("login")==null||!session.getAttribute("login").equals("ok")){

response.sendRedirect("login.htm");

}

%>

如果输入信息有误,则回到登录页面,重新输入登录信息。本模块是本系统的主功能界面,在本界面上集成了本系统的所有功能,共有个功能菜单,从而实现了本系统从信息管理、成绩管理、页面管理等系统的具体功能,同时,在系统管理模块中可以完成对本系统的安全性管理。列出系统的所有功能:显示学生信息:index.jsp修改学生信息:modifystudent.jsp添加学生信息:addstudent.jsp删除学生信息:studentdelete.jsp查询学生成绩:lookscore.jsp老师成绩录入:inputscore.jsp更换界面:checkchange.jsp模块一:查询学生信息模块import.*;importjava.io.*;importjava.awt.*;import;importjava.applet.*;publicclassstuFindextendsAppletimplementsRunnable,ActionListener{TextField输入查询内容;Choicechoice=null;Checkbox完全一致,前方一致,后方一致,中间包含;CheckboxGroupgroup=null;Button查询;TextArea显示查询结果;Label提示条;Socketsocket=null;DataInputStreamin=null;DataOutputStreamout=null;PrintWriterpw=null;;//又添加Threadthread;publicvoidinit(){输入查询内容=newTextField(18);查询=newButton("查询");choice=newChoice();choice.add("学号");choice.add("姓名");choice.add("入学年份");choice.select(0);group=newCheckboxGroup();完全一致=newCheckbox("完全一致",true,group);前方一致=newCheckbox("前方一致",false,group);后方一致=newCheckbox("后方一致",false,group);中间包含=newCheckbox("中间包含",false,group);显示查询结果=newTextArea(20,100);提示条=newLabel("正在连接到服务器,请稍等...",Label.CENTER);提示条.setForeground(Color.red);提示条.setFont(newFont("TimesRoman",Font.BOLD,24));Panelbox1=newPanel();box1.add(newLabel("输入查询内容:",Label.CENTER));box1.add(输入查询内容);box1.add(choice);box1.add(查询);Panelbox2=newPanel();box2.add(newLabel("选择查询条件:",Label.CENTER));box2.add(完全一致);box2.add(前方一致);box2.add(后方一致);box2.add(中间包含);Panelbox3=newPanel();box3.add(newLabel("查询结果:",Label.CENTER));box3.add(显示查询结果);add(提示条);add(box1);add(box2);add(box3);查询.addActionListener(this);}publicvoidstart(){if(socket!=null&&in!=null&&out!=null){try{socket.close();in.close();out.close();}catch(Exceptionee){}}try{socket=newSocket(this.getCodeBase().getHost(),6664);in=newDataInputStream(socket.getInputStream());out=newDataOutputStream(socket.getOutputStream()); pw=newPrintWriter(out,true);}catch(IOExceptionee){提示条.setText("连接失败");}if(socket!=null){InetAddressaddress=socket.getInetAddress();提示条.setText("连接:"+address+"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论