高校学生管理系统的设计与实现Word格式文档下载.docx
《高校学生管理系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《高校学生管理系统的设计与实现Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
通过学校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。
从经济角度分析采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效率,减少大量人力、物力、财力,由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。
从技术层面分析系统,所采用的语言是Java,应用Web开发的Model1和Model2模式。
数据库与jsp的连接,本系统的链接采用的是JDBC的方法,在Jsp中,后台servlet或者action通过form(表单)获取前台数据,然后连接数据库与之比较进行校验,最后显示结果到前台即Jsp页面上。
2.2需求分析
2.2.1系统设计目标
·
对新生和在校生以及毕业生以的档案信息进行规范化管理。
·
支持高效率完成招生管理、就业管理、学籍管理、成绩管理等。
系统的管理包括各种信息录入,修改,删除等操作。
图形化界面,力求界面友好、美观。
软件操作简单,配备详细的说明文档。
软件由于是java语言开发所以不受平台限制可以在大部分主流操上使用。
2.2.2系统功能分析
本系统需要完成的工作如下:
学生各种信息输入,包括学生基本信息和成绩信息。
学生的各种信息的修改。
对于毕业生、在校生信息进行删除。
按照某种条件,查询、统计符合条件的学生信息。
学生可以通过系统进行选课。
2.3系统概要设计
2.3.1系统功能结构设计
2.4数据库设计
由于本系统有七个功能模块组成,各个模块功能不尽相同,为了操作方便针对每个功能模块分别建立表,系统中使用到的数据表主要有新生表、毕业生表、在校生表、管理员表、课程表、成绩表、档案表。
其中学生表是所有表中最重要的表,很多操作都是根据这张表进行有关的操作,主要的字段有:
学号、姓名、性别、专业、年龄、民族、家庭地址;
成绩表中字段为:
学号、姓名、专业、成绩;
课程表中字段为:
课程编号、课程名称;
管理员表字段包括:
用户账号、密码。
如下表:
stuno
stuname
stusex
stuage
specialty
stuaddr
stupassword
Varchar2
图2-1学生表
Course_no
Course_name
图2-2课程表
grade
Varchar
图2-3成绩表
Manager_no
Manager_name
图2-4管理员表
3.管理信息系统简介
3.1.1MIS的定义
所谓MIS(管理信息系统—ManagementInformationSystem)系统,是由一个人、计算机及其他外围设备等组成的能进行信息的收集、传递、贮存、加工、维护和使用的系统。
它是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。
3.1.2MIS的功能
数据处理:
包括数据收集和输入,数据传输、数据存储、数据加工处理和输出。
它
准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低。
预测功能:
运用现代数学方法,统计方法或模拟方法,根据过去的数据预测未来的情况。
计划功能:
根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,提供相应的计划报告。
控制功能:
根据各职能部门提供的数据,对计划的执行情况进行监测、检查、比较执行与计划的差异,分析产生差异的原因,辅助管理人员及时以各种方法加以控制。
3.2B/S架构
3.2.1B/S架构的定义
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
3.2.2B/S架构的功能
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO),同时它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
3.3Java语言概述
3.3.1Java语言简介
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新
3.3.2Java语言特点
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
3.4Jsp及相关技术
3.4.1JSP简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
3.4.2Jsp设计模式
Jsp的设计模式有2种方式:
Model1和Model2。
Model1是将事务逻辑(businesslogic)和表示代码(presentationcode)融合在一起,即应用程序有许多页面组成,用户与这些页面进行交互操作。
这些页面一般使用一个模型(Model),模型代表的是该应用程序的业务逻辑,Modle1又称为以页面为中心的结构。
Model2是基于MVC架构的设计模式。
在Model2架构中,Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理,然后,调用后端JavaBean来完成实际的逻辑处理;
最后,转发到相应的JSP页面处理显示逻辑。
MVC设计思想:
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
Model就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
View代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
ontroller可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
3.4.3Servlet简介
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。
3.4.5Struts概述
Struts是采用JavaServlet/JavaServerPages技术,开发Web应用程序的开放源码的framework(架构)。
Struts有如下的主要功能:
1.包含一个controllerservlet,能将用户的请求发送到相应的Action对象。
2.JSP自由tag库,并且在controllerservlet中提供关联支持,帮助开发员创建交互式表单应用。
3.提供了一系列实用对象:
XML处理、通过JavareflectionAPIs自动处理
3.5数据库、开发工具和Web服务器
3.5.1Oracle9i
由于本系统采用Jsp技术,所以采用与之匹配的Oracle9i数据库。
Oracle数据库是以查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。
是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。
优点有:
可用性强、可扩展性强、数据安全性强、稳定性强。
3.5.2JDBC技术
JDBC是Java的开发者—Sun的Javasoft公司制定的Java数据库连接(Java
Data
Base
Connectivity)技术的简称,是为各种常用数据库提供无缝联接的技术。
JDBC有一个非常独特的动态连接结构,它使得系统模块化,优点如下:
1.JDBC
API与ODBC十分相似,有利于用户理解。
2.JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以专致程序中的关键地方。
3.JDBC支持不同的关系数据库,使得程序的可移植性大大加强。
4.用户可以使用JDBC-ODBC桥驱动器将JDBC函数调用转换为ODBC。
5.JDBC
API是面向对象的,可以让用户把常用的方法封装为一个类,以保持重用性。
3.5.3MyEclips
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
3.5.4Tomcat
Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat是一个小型的轻量级应用服务器,很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
3.系统功能实现
3.1主窗口设计
主程序界面是应用程序提供给用户访问其他功能模块的平台,根据实际需要,本系统的主界面采用了Web设计中鼠标滑过事件风格。
系统主程序界面如图3-1所示。
图3-1系统主界面
3.2模块功能实现
3.3.1毕业生信息录入功能
图3-2添加学生信息界面
1.实现目标
(1)按条件添加毕业生各种信息。
(2)支持修改功能。
2.设计步骤
向页面中添加7个Lable、7个Text,值得注意的是Text的ID必须唯一;
然后再次添加一个Submit、一个Reset。
3.代码分析
(1)根据所要完成的功能,抽象出form的原型;
(2)当用户单击“提交”按钮时,各个Text的数据将传到数据库;
(3)当用户单击“重置”按钮时,讲改变未提交的数据;
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse){
RecordsFormrecordForm=(RecordsForm)form;
Stringstuname=recordForm.getName();
Stringstusex=recordForm.getSex();
Stringstuage=recordForm.getAge();
Stringstuno=recordForm.getNo();
Stringstuspe=recordForm.getSpecialty();
Stringstuaddress=recordForm.getAddress();
Stringstupwd=recordForm.getPassword();
Stringsql="
insertintostudentvalues('
"
;
sql+=stuno+"
'
'
sql+=stuname+"
sql+=stusex+"
sql+=stuage+"
sql+=stuspe+"
sql+=stuaddress+"
sql+=stupwd+"
)"
DataCondb=newDataCon();
if(db.add(sql)){
returnmapping.findForward("
success"
);
}
else{
returnnewActionForward(mapping.getInput());
}
3.3.2毕业生信息修改功能
修改功能界面如下:
图3-3修改学生信息界面
(1)进入页面时后台的查询功能。
(2)修改各项信息。
(3)提交修改并返回成功信息。
(1).当进入功能页面的时候必须先从数据库查找学生信息。
(2).由于信息很多,必须采用分页技术,然后针对每一条数据进行修改。
(3).设计一个成功返回和失败返回页面,用来验证是否修改成功。
(1)当进入页面时,后台开始查询功能。
(2)当用户单击“修改”连接时,各项数据传到修改页面。
(3)当用户单击“提交”按钮时,将弹出提交信息对话框。
<
divid="
Layer1"
>
tablewidth="
636"
height="
339"
border="
1"
tr>
tdwidth="
62"
<
divalign="
center"
学号<
/div>
/td>
姓名<
性别<
年龄<
专业<
学籍<
密码<
修改<
/tr>
%
if(pagecount>
0)
{
rs.absolute((intpage-1)*pagesize+1);
i=0;
while(i<
pagesize&
&
!
rs.isAfterLast())
Stringstuno=rs.getString("
new_stuno"
Stringstuname=rs.getString("
new_stuname"
Stringstusex=rs.getString("
new_stusex"
Stringstuage=rs.getString("
new_stuage"
Stringspecialty=rs.getString("
specialty"
Stringstuaddr=rs.getString("
new_stuaddr"
Stringstupassword=rs.getString("
new_stupassword"
%>
td>
%=stuno%>
%=stuname%>
%=stusex%>
%=stuage%>
%=specialty%>
%=stuaddr%>
%=stupassword%>
ahref="
newstumodifyservlet?
stuno=<
/a>
当点击修改时将进入修改页面,代码如下:
图3-4添加修改学生信息界面
formname=form1action="
studentsmodifyservlet"
/>
159"
40"
18"
%
Listlist=(List)session.getAttribute("
list"
Iterator<
Students>
it=list.iterator();
while(it.hasNext())
Stringline="
inputtextsize=10name=novalue="
Studentsnewstu=it.next();
line+=newstu.getStuno();
line+="
inputtextsize=10name=namevalue="
line+=newstu.getStuname();
inputtextsize=10name=sexvalue="
line+=newstu.getStusex();
inputtextsize=10name=agevalue="
line+=newstu.getStuage();
inputtextsize=10name=specialtyvalue="
line+=newstu.getSpecialty();
inputtextsize=10name=stuaddrvalue="
line+=newstu.getStuaddr();
inputtextsize=10name=pwdvalue="
line+=newstu.getStupassword();
line