学生学籍管理系统设计报告.docx

上传人:b****6 文档编号:6261979 上传时间:2023-01-04 格式:DOCX 页数:19 大小:320.58KB
下载 相关 举报
学生学籍管理系统设计报告.docx_第1页
第1页 / 共19页
学生学籍管理系统设计报告.docx_第2页
第2页 / 共19页
学生学籍管理系统设计报告.docx_第3页
第3页 / 共19页
学生学籍管理系统设计报告.docx_第4页
第4页 / 共19页
学生学籍管理系统设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生学籍管理系统设计报告.docx

《学生学籍管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

学生学籍管理系统设计报告.docx

学生学籍管理系统设计报告

学生学籍管理系统设计报告

作者:

您的大名

指导老师:

您的老师

时间:

二零一零八月十二

学生学籍管理系统设计和实现

1.1概述

学籍管理是学校教务的一项主要工作,它反映了一个学校的生源情况和学生的在校表现,每一个档案都记录了一个学生在每个学校的一段历史,必须真实可信,所以档案管理工作是一项严肃、认真而又繁琐的工作。

而Internet的发展使得基于web的应用十分普及和成熟。

因此,本系统在在分析学籍管理需求和可行性后,基于B/S模式进行开发,考虑到扩展和技术难点,本人将基于J2ee进行开发。

该系统适合各类中、小学校、职业技术学校的学生学籍管理,提供学生学籍信息、成绩信息的新增、修改、删除、查询统计等功能,并具有良好扩展能力。

1.2系统分析

1.2.1需求分析

学籍管理指学校对学生所获得的学籍资料进行管理。

凡经过升学考试或按规定手续被正式录取的学生,入校办理注册手续后即取得该校学籍,它标志着学生取得了参加学习的资格。

学籍是组织管理学生的客观依据。

传统的学籍管理模式和管理手段不仅大量地消耗人力、物力,同时,还存在诸多弊端,效率低、保密性差,不利于查找、更新和维护的问题,影响教学秩序,阻碍教学改革的深化,难以保证该项工作应具有的严肃性。

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

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

1.2.2可行性分析

在当今的信息化时代,学校具备一定规模的网络环境,已基本拥有自己的Intranet并和Internet相集成;基于web的学生学籍管理系统后台需要一台服务器,前端用户只需要一个浏览器就可以和服务器交互,管理学生学籍信息。

基于以上分析:

基于web的学生学籍管理系统开发是可行的。

1.2.3技术架构

本系统实现了采用B/S模式、基于J2EE平台、采用JSP+MySql5.0

+Tomcat6.0技术方案的在线考试系统

整体架构如下:

 

其中:

Client:

浏览器IE6以上或FireFox3.6以上

HTML,JavaScript,Dom

WebServer:

Tomcat6.0

Database:

MySql5.0

1.3概要设计

1.3.1系统规划

提供三个角色:

学生、老师、管理员。

学生登录后:

查看自己学籍信息;

查看考试成绩

老师登录后:

对所带课程给学生打分;查看所有学生学籍信息;

查看自己基本信息;

管理员登录后:

增删改学生学籍信息;增删改老师信息;增删改课程、班级信息;

升留级管理;

1.3.2功能结构图

1.4详细设计

1.4.1设计目标

此系统的目标就是满足中小型学校基于b/s模式学生学籍管理系统需求。

它应该突破传统学籍管理方式的时空限制,充分利用计算机进行学籍、学习成绩管理、课程打分、升留级管理等功能,可以减轻管理人员和教师手工操作的工作量。

管理员可以通过Web浏览器远程管理学生学籍、老师信息、课程信息等;教师可以通过Web浏览器远程查看学生学籍信息、对课程进行打分;学生可以在线查看考试成绩和学籍信息。

系统基于Web页面,操作简单、数据安全性高;系统要具有良好的可靠性、高效性、完整性、易使用性、可维护性、可扩展性。

1.4.2运行环境

硬件平台:

CPU:

1.5GHz以上

内存:

256Mb以上;

软件平台:

服务器:

操作系统:

MicrosoftNT系列windowsXP/2000/98

Jdk1.6;

Tomcat6.0;

客户端:

IE6.0以上;fireFox3.6以上

1.4.3数据库设计

数据库担当着存储业务数据,提供数据查询服务的重任;因而良好的数据库设计对整个系统运行效率和成败起着至关重要的作用。

针对学生学籍管理系统的系统需求和学习成本,作者采用了MYSQL5.C作为数据库服务器,并在其上设

计了一系列表,定义它们之间关联关系,成功支持了系统各种功能并有良好扩展性。

143.1:

数据字典

student学生表

记录学生基本信息,详细信息在stu_info,表关联键为学生ID

ColumnName

|Oa(atype

1瓢|制叮Fl郵

|DefaullValue|Comment

dVARCHAR[E)

匕□BINARY

■jname

bVARCHAR|45)

✓口BINARY

◎sex

■>INT(IO)

V0unsigned二I

在RUF1LL0

Jage

二INT(1O)

a◎UNSIGNED□

ZEROALL

Stu_info学籍信息表

记录学生学籍详细信息

ColumnName

1Datatype

IN

|HILL

SPIFl»i

IDefaultValue

Comment

stupid

dVARCHAR(6)

y

[BINARY

QWthd申

FDATE

llid・

0rativepldce

八ARCHAR[1Q0|

二|BINARY

*class_id

&>INT(11)

J

□UNSIGMED□7ER0FILL

0address

bVARCHAR(IOO)

□BINARY

||迎“・

Qphone

7VARCHAR[20)

LJBINARY

class班级表

记录班级信息

ColumnName

IIDatatjipe

INCT|NULL

l^T0JFlags

|defaultValue

|Comment

id

lt>INT(IO)

✓N)UNSIGNED_

J7ER0ALLcan

Oname

7VARCHARHOJ

二|BINARY

vhteachef

7VARCHAR(8)

□BINARY

班主任

qmonitor

OVARCHAR(G)

□BINARY

班丧

 

Teacher老师表

记录老师信息(字段可以扩充)

ColumnNane

|Datatype

I粘口勰。

|De#aullValue

|Cammenrt

id

心VARCHAAI8)

yUBINARY

7name

心VARCHAR145)

dLIBINARY

Course课程表

CclumnUame

|Datatype

SSLJSiT0Flags

|DefaultValue

Conmient

id

INT(IQ)

*/辺UNSIGNED□ZEA0FILL

nun

Q畑me

vVARCHAR(100n

#□BIMAffT

0ctescr

&VARCHAE(300J

□BINARY

nnm

Oteacher

©VARCHAR(B)

□BIHARY

Score分数表

记录学生某课程成绩

ColumnName

|Datatype

INUT

|HUJILL

ISiTC>JFlags

DefautValue

Cement

stu_id

心VARCHARIG)

d

□BINARY

course^ad

INT(IO)

y

5UNSIGNED

口ZEROALL

Qscore

XINT(1O)

0UNSUGNED

二|ZEFtOFILL

 

User用户表

用于用户登录时,其内容由新建学生、老师时自动添加

ColumnName

|Oatalvpe

[闍l丨arI冋郵

|DefaultVakie|匚omment

name

iVARCHARIB)

yLIBINARY

0pass

IVARCHARIE)

✓LJBINARY

Qrde

丄誌INT(10)

Y/UNSIGNED:

JZEROALL1

143.2:

数据流图

一个应用系统在发生业务活动时,会产生大量的不同类型的业务数据,对这些数据的存储、分类和展现是实现系统目标的基础。

上节设计了一系列数据表,在此系统运行中将产生的数据写于数据库,并根据添加查询出来展现。

1.4.4系统流程设计

1)普通学员系统流程

 

2)老师系统流程

 

图-5

3)管理员系统流程

管理学籍信息

管理课程信息查看考试成绩

图-6

1.5编码设计

编码一种艺术。

好的编码首先要逻辑正确、清晰,只有这样编码要更成功实现系统功能;其次要书写规范、流畅、注释要写清楚,让人达到赏心悦目的感受。

原因主要是:

写过的代码,在系统升级完善时可能需要修改,而修改人很有可能不是程序的编写者;如果逻辑不清,书写混乱,没有足够的注释,那将是一种灾难,将大大增加系统维护升级的开销。

1.5.1后台编码设计

采用模型(Model),视图(View)和控制Controller)模型。

MVC模式的目的就是实现Web系统的职能分工。

Model层实现系统中的业务逻辑,通常可以用

JavaBean或EJB来实现。

View层用于与用户的交互,通常用JSP来实现。

Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

本系统中,控制器位于包controllers下,控制页面流程跳转,调用modle

模型位于包modles下,模型和数据表对应

如下图:

-;bcontrollers

|_£|]AeppliratioiiCi&Tktfoll^r.javaEl-丄CJa'ssControlltx.jaLV*SJ_CourseCoatroiltr.jitv@lttl-iJMlgeCQutroiler-java

!

iI~~L.

1+1-J.ScoreContrcllw.java+-[TStuController.java+]_J_Symltrailer.javsL+ITesjCooitrq11er.」ava+EVsarCcntroiler,javt

1-1l£jeptIon

[+|-JSysExcapti^U-Java

-.+r

:

E-

iit

ii±i-

i

+

Iij-

Bas-feAccess.javaE^.s^MyEql-javaClassBjsysCourse,javaManager,javaS^ore.javaStudsntjBvaStulnfo.javaTeacher・javaUser,java

典型代码:

teacher模型,对应数据库表teacher

packagemodles;

importcom.et.ar.annotations.Column;

importcom.et.ar.annotations.GeneratorType;

importcom.et.ar.annotations.ld;

importcom.et.ar.annotations.Table;

@Table(name="teacher")

publicclassTeacherextendsBaseMysql{

ld(generate=GeneratorType.NONE)privateStringlumnprivateStringname;

publicStringgetName(){returnname;

}

publicvoidsetName(Stringname){this.name=name;

}

teacher控制器,teacherController

packagecontrollers;

publicclassTeaControllerextendsApplicationController{publicJspViewindex(){

introle=Integer.parseInt((String)session.getAttribute("_role"));Stringrst="tea/indexv.jsp";

switch(role){

case1:

rst="error.jsp?

why=auth"

break;

case2:

rst="tea/indexv.jsp";break;

case3:

rst="tea/index.jsp";break;

returnnewJspView(rst);

/*

查询老师信息

*/

publicJsonViewget()throwsException{

Stringorder=

request.getParameter("order"

),

page

=request.getParameter("page"),

rows

=request.getParameter("rows"),

sort=

request.getParameter("sort"),

id=request.getParameter("id"),

name

=request.getParameter(”name");

StringBuildercondition=newStringBuilder();

ArrayListvString>args=newArrayList();

if(id!

=null&&!

id.equals("")){condition.append("id=?

");

order=sort+""+order;

intlimit=Integer.parseInt(rows);

intoffset=(Integer.parseInt(page)-1)*limit;

Listteachers

Teacher.findAII(Teacher.class,condition.toString(),args.toArray(),order,limit,offset);

&&

MapvString,Object>rst=newHashMapvString,Object>();

if(request.getParameter("t")!

=null

request.getParameter("t").equalslgnoreCase("tree")){

returnnewJsonView(teachers);

}else{

rst.put("rows",teachers);

rst.put("total",teachers.size());

returnnewJsonView(rst);

/*

新增老师信息

*/publicJsonViewadd(){

Stringdata=request.getParameter("data");

JSONParserparser=newJSONParser();

JSONArrayja;

JSONObjectjo=null;

Teacherteacher=nul;

ArrayListvString>success=newArrayList(),failure=newArrayListvString>();

MapvString,Object>rst=newHashMapvString,Object>();rst.put("code","O");〃成功

Stringid=null;

try{

ja=(JSONArray)parser.parse(data);

for(inti=0;i

jo=(JSONObject)ja.get(i);

id=(String)jo.get("id");

teacher=Teacher.createModel(Teacher.class,jo);

if(teacher.save()){

success.add(id);

try{

Useruser=newUser();

user.setName(id);user.setPass(id);user.setRole

(2);

user.save();

}catch(Exceptionee){

ee.printStackTrace();

System.out.println("添加用户失败,请手动添加用户

);

rst.put("sid",success);

rst.put("fid",failure);

returnnewJsonView(rst);

*更新指定的老师资料

*/

publicJsonViewupdate(){

Stringdata=request.getParameter("data");JSONParserparser=newJSONParser();

ArrayListvString>success=newArrayListvString>(),

failure=newArrayListvString>();

MapvString,Object>rst=newHashMapvString,Object>();rst.put("code","0");

Stringid=null;

try{

ja=(JSONArray)parser.parse(data);

for(inti=0;i

jo=(JSONObject)ja.get(i);

id=(String)jo.get("id");

teacher=Teacher.find(Teacher.class,id);

Teacher.updateModel(teacher,jo);

if(teacher.save()){

success.add(id);

returnnewJsonView(rst);

删除老师信息

*/

publicJsonViewdel(){

Stringdata=request.getParameter("data");JSONParserparser=newJSONParser();

JSONArrayja=null;JSONObjectjo=null;Teacherteacher=null;

ArrayListvString>success=newArrayListvString>().

if(teacher.destroy()>0){success.add(id);

try{

Useruser=User.find(User.class,id);if(user!

=null)user.destroy();

}catch(ActiveRecordExceptionee){

System.out.println("用户删除失败,请手动处理");

}

}else{

failure.add(id);

}catch(ParseExceptione)

failure.add(id);

rst.put("code","1");

e.printStackTrace();

}catch(ActiveRecordExceptione){

rst.put("code","-1");

failure.add(id);

e.printStackTrace();

rst.put("sid",success);rst.put("fid",failure);

IreturnnewJsonView(rst);

}l

}

1.5.2前端编码设计

为了简化和统一前端界面风格:

采用JQuery和基于JQuery的UI框架easyui

jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocumentsevents、实现动画效果,并且方便地为网站提供AJAX交互。

easyu基于JQuery可以方便的创建风格统一的UI,是小型系统快速开发的不错选择。

可以创建window,datagrid,commbox,button等常见控件。

1.6运行测试

系统设计完成后,最总要的一步就是系统运行测试。

通过对最终软件系统进行全面的测试,可以确保最终软件系统满足产品需求并且遵循了既定系统设计。

对于在线考试系统:

作者制定了对系统功能的以下简单测试:

1)系统登录测试:

1•要求能够实现学员、老师、管理员的登录功能;

2•在用户名或密码错误时候有必要提示;

ra.E0

失败提示

图-14

◎.a.niltsvid]aiiHr

r_t±*s

S*n¥S

flsuf

勺毎音辔

■Al]址i#vLfnrwaJ.,

StILTl*41DIQ/QT

登录成功进入主页面

图-15

2)学籍信息管理测试:

1•管理员登录后可以管理学籍信息;

2•系统对一些非法输入能够监测并处理;

新增000005学生信息

t«b

«1T

It111ki■孑tr1-39*-?

1^

肌MHrTl-hiIQLQ^T

新增000005学生信息成功提示

tzai册电amtMWjass*

IA矗W

»ju田剛]mjxhi^r^M

二・4草]旳审k时.些呈刊SK軼如

*Allheilrtcer»edl

WZ3.Tiv-歩IWM

删除000005学生信息成功

3)压力测试:

在较多用户并发访问情况下,系统应能够优雅的胜任服务工作在较多用户并发访问情况下,系统应能够优雅的胜任服务工作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1