学生学籍管理系统设计报告.docx
- 文档编号:6261979
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:19
- 大小:320.58KB
学生学籍管理系统设计报告.docx
《学生学籍管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
学生学籍管理系统设计报告
学生学籍管理系统设计报告
作者:
您的大名
指导老师:
您的老师
时间:
二零一零八月十二
学生学籍管理系统设计和实现
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; List 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 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)压力测试: 在较多用户并发访问情况下,系统应能够优雅的胜任服务工作在较多用户并发访问情况下,系统应能够优雅的胜任服务工作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 系统 设计 报告