destroy teacher

更新时间:2022-11-24 16:15:49 阅读: 评论:0


2022年11月24日发(作者:叫醒服务)

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

作者:您的大名

指导老师:您的老师

时间:二零一零八月十二

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

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

Databa: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.0作为数据库服务器,并在其上设

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

性。

1.4.3.1:数据字典

student学生表

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

Stu_info学籍信息表

记录学生学籍详细信息

class班级表

记录班级信息

Teacher老师表

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

Cour课程表

Score分数表

记录学生某课程成绩

Ur用户表

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

1.4.3.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下,模型和数据表对应

如下图:

查看考试成绩

管理课程信息

典型代码:

teacher模型,对应数据库表teacher

packagemodles;

;

torType;

;

;

@Table(name="teacher")

publicclassTeacherextendsBaMysql{

@Id(generate=)privateStringid;

@ColumnprivateStringname;

publicStringgetName(){

returnname;

}

publicvoidtName(Stringname){

=name;

}

publicStringgetId(){

returnid;

}

publicvoidtId(Stringid){

=id;

}

}

teacher控制器,teacherController

packagecontrollers;

publicclassTeaControllerextendsApplicationController{

publicJspViewindex(){

introle=nt((String)ribute("_role"));

Stringrst="tea/";

switch(role){

ca1:

rst="?why=auth";

break;

ca2:

rst="tea/";

break;

ca3:

rst="tea/";

break;

}

returnnewJspView(rst);

}

/*

查询老师信息

*/

publicJsonViewget()throwsException{

Stringorder=ameter("order"),

page=ameter("page"),

rows=ameter("rows"),

sort=ameter("sort"),

id=ameter("id"),

name=ameter("name");

StringBuildercondition=newStringBuilder();

ArrayListargs=newArrayList();

if(id!=null&&!("")){

("id=?");

(id);

}el{

if(name!=null&&!("")){

("name=?");

(name);

}

}

order=order==null?"desc":order;

page=page==null?"1":page;

rows=rows==null?"10":rows;

sort=sort==null?"id":sort;

order=sort+""+order;

intlimit=nt(rows);

intofft=(nt(page)-1)*limit;

Listteachers=l(,

ng(),y(),order,limit,offt);

Maprst=newHashMap();

if(ameter("t")!=null&&

ameter("t").equalsIgnoreCa("tree")){

returnnewJsonView(teachers);

}el{

("rows",teachers);

("total",());

}

returnnewJsonView(rst);

}

/*

新增老师信息

*/

publicJsonViewadd(){

Stringdata=ameter("data");

JSONParrparr=newJSONParr();

JSONArrayja;

JSONObjectjo=null;

Teacherteacher=null;

ArrayListsuccess=newArrayList(),

failure=newArrayList();

Maprst=newHashMap();

("code","0");//成功

Stringid=null;

try{

ja=(JSONArray)(data);

for(inti=0;i<();i++){

jo=(JSONObject)(i);

id=(String)("id");

teacher=Model(,jo);

if(()){

(id);

try{

Urur=newUr();

e(id);s(id);e(2);

();

}catch(Exceptionee){

tackTrace();

n("添加用户失败,请手动添加用户

");

}

}el{

(id);

}

}

}catch(ParExceptione){

("code","1");//参数解析错误

(id);

tackTrace();

}catch(Exceptione){

tackTrace();

(id);

("code","-1");//服务器内部错误

}

("sid",success);

("fid",failure);

returnnewJsonView(rst);

}

/**

*更新指定的老师资料

*/

publicJsonViewupdate(){

Stringdata=ameter("data");

JSONParrparr=newJSONParr();

JSONArrayja=null;

JSONObjectjo=null;

Teacherteacher=null;

ArrayListsuccess=newArrayList(),

failure=newArrayList();

Maprst=newHashMap();

("code","0");

Stringid=null;

try{

ja=(JSONArray)(data);

for(inti=0;i<();i++){

jo=(JSONObject)(i);

id=(String)("id");

teacher=(,id);

Model(teacher,jo);

if(()){

(id);

}el{

(id);

}

}

}catch(ParExceptione){

(id);

("code","1");

tackTrace();

}catch(ActiveRecordExceptione){

("code","-1");

(id);

tackTrace();

}catch(Exceptione){

("code","-1");

(id);

tackTrace();

}

("sid",success);

("fid",failure);

returnnewJsonView(rst);

}

/*

删除老师信息

*/

publicJsonViewdel(){

Stringdata=ameter("data");

JSONParrparr=newJSONParr();

JSONArrayja=null;

JSONObjectjo=null;

Teacherteacher=null;

ArrayListsuccess=newArrayList(),

failure=newArrayList();

Maprst=newHashMap();

("code","0");

Stringid=null;

try{

ja=(JSONArray)(data);

for(inti=0;i<();i++){

jo=(JSONObject)(i);

id=(String)("id");

teacher=(,id);

if(y()>0){

(id);

try{

Urur=(,id);

if(ur!=null)y();

}catch(ActiveRecordExceptionee){

n("用户删除失败,请手动处理");

}

}el{

(id);

}

}

}catch(ParExceptione){

(id);

("code","1");

tackTrace();

}catch(ActiveRecordExceptione){

("code","-1");

(id);

tackTrace();

}

("sid",success);

("fid",failure);

returnnewJsonView(rst);

}

}

1.5.2

前端编码设计

为了简化和统一前端界面风格:采用JQuery和基于JQuery的UI框架easyui。

jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML

documents、events、实现动画效果,并且方便地为网站提供AJAX交互。

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

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

1.6运行测试

系统设计完成后,最总要的一步就是系统运行测试。通过对最终软件系统进

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

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

1)系统登录测试:

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

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

失败提示

图-14

登录成功进入主页面

图-15

2)学籍信息管理测试:

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

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

新增000005学生信息

新增000005学生信息成功提示

删除000005学生信息成功

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

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

1.7系统手册

部署方法:

1:安装mysql-5.0.18-win32

2:运行脚本:

3:安装Jdk1.5或1.6

4:安装Tomcat6.0

5:部署应用:

6:启动tomcat服务器

7:打开浏览器访问:rverip:port/et

1.8开发体会

该系统完成了简单的学籍管理功能,实现了在线添加、修改、删除学籍;课

程打分,学生查分等核心功能;同时提供了课程、班级、老师信息管理功能;能

够满足小型教育机构内部的学籍管理需求。但对一些高级主题:信息加密传输、

系统压力测试等尚未考虑;同时一些系统扩展功能:在线交流、细粒度权限控制、

方面等都还有待进一步完善。针对这些系统缺陷,作者将在以后日子里不断通过

学习不断改进和完善。

回想从最初构思系统时的无从下手,到现在系统基本功能实现,作者经历了

一次深刻的体验。在技术上,作者已经较为全面的理解了J2EE平台下主要开发

技术、对软件工程系统开发流程有了更清晰的认识、同时自己的编程能力有了很

大提高;在思想认识上,作者认识到态度和毅力的重要性,好的态度和坚韧的毅

力是完成事业和成功的基石。

致谢

在文章的最后,我怀着一颗感恩的心,感谢曾经帮助过我的老师、朋友和网

友们:亲临指导的导师,感谢您提出了许多宝贵的意见和建议,感谢您严谨治学

风范的熏陶,这些我都将终身受益;优秀书目的作者们,感谢你们以辛勤劳作完

成的丰盛精神食粮,感谢你们拨开我思想的迷雾,引领我不断前进;网络论坛的

热心网友们,感谢你们对我在技术上热心支持和帮助。

最后,再此表示衷心的感谢和诚挚的谢意!

本文发布于:2022-11-24 16:15:49,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/12899.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:i kissed a girl
标签:destroy teacher
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图