学生学籍管理系统设计报告
作者:您的大名
指导老师:您的老师
时间:二零一零八月十二
学生学籍管理系统设计和实现
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();
ArrayList
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;
List
ng(),y(),order,limit,offt);
Map
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;
ArrayList
failure=newArrayList
Map
("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;
ArrayList
failure=newArrayList
Map
("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;
ArrayList
failure=newArrayList
Map
("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小时内删除。
留言与评论(共有 0 条评论) |