学生学籍管理系统设计报告文档格式.docx
《学生学籍管理系统设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计报告文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
查看自己基本信息;
管理员登录后:
增删改学生学籍信息;
增删改老师信息;
增删改课程、班级信息;
升留级管理;
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学籍信息表
记录学生学籍详细信息
1Datatype
IN<
T
|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班级表
记录班级信息
IIDatatjipe
INCT|NULL
l^T0JFlags
|defaultValue
|Comment
id
lt>
✓N)UNSIGNED_
J7ER0ALLcan
Oname
7VARCHARHOJ
vhteachef
7VARCHAR(8)
班主任
qmonitor
OVARCHAR(G)
班丧
Teacher老师表
记录老师信息(字段可以扩充)
ColumnNane
|Datatype
I粘口勰。
頁
|De#aullValue
|Cammenrt
心VARCHAAI8)
yUBINARY
7name
心VARCHAR145)
dLIBINARY
Course课程表
CclumnUame
SSLJSiT0Flags
|DefaultValue
Conmient
INT(IQ)
*/辺UNSIGNED□ZEA0FILL
nun
Q畑me
vVARCHAR(100n
#□BIMAffT
0ctescr
VARCHAE(300J
nnm
Oteacher
©
VARCHAR(B)
□BIHARY
Score分数表
记录学生某课程成绩
INUT
|HUJILL
ISiTC>
JFlags
DefautValue
Cement
stu_id
心VARCHARIG)
d
course^ad
INT(IO)
5UNSIGNED
口ZEROALL
Qscore
XINT(1O)
✓
0UNSUGNED
二|ZEFtOFILL
User用户表
用于用户登录时,其内容由新建学生、老师时自动添加
|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-
+
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:
tea/indexv.jsp"
break;
case3:
tea/index.jsp"
returnnewJspView(rst);
■
/*
查询老师信息
*/
publicJsonViewget()throwsException{
Stringorder=
request.getParameter("
order"
),
page
=request.getParameter("
page"
rows
rows"
sort=
sort"
id=request.getParameter("
id"
name
=request.getParameter(”name"
);
StringBuildercondition=newStringBuilder();
ArrayListvString>
args=newArrayList<
String>
();
if(id!
=null&
!
id.equals("
"
)){condition.append("
id=?
order=sort+"
"
+order;
intlimit=Integer.parseInt(rows);
intoffset=(Integer.parseInt(page)-1)*limit;
List<
Teacher>
teachers
Teacher.findAII(Teacher.class,condition.toString(),args.toArray(),order,limit,offset);
MapvString,Object>
rst=newHashMapvString,Object>
if(request.getParameter("
t"
)!
=null
).equalslgnoreCase("
tree"
)){
returnnewJsonView(teachers);
}else{
rst.put("
teachers);
total"
teachers.size());
returnnewJsonView(rst);
新增老师信息
*/publicJsonViewadd(){
Stringdata=request.getParameter("
data"
JSONParserparser=newJSONParser();
JSONArrayja;
JSONObjectjo=null;
Teacherteacher=nul;
success=newArrayList<
(),failure=newArrayListvString>
rst.put("
code"
"
O"
〃成功
Stringid=null;
try{
ja=(JSONArray)parser.parse(data);
for(inti=0;
i<
ja.size();
i++){
jo=(JSONObject)ja.get(i);
id=(String)jo.get("
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("
添加用户失败,请手动添加用户
sid"
success);
fid"
failure);
*更新指定的老师资料
publicJsonViewupdate(){
JSONParserparser=newJSONParser();
success=newArrayListvString>
(),
failure=newArrayListvString>
"
0"
teacher=Teacher.find(Teacher.class,id);
Teacher.updateModel(teacher,jo);
删除老师信息
publicJsonViewdel(){
JSONArrayja=null;
JSONObjectjo=null;
Teacherteacher=null;
().
if(teacher.destroy()>
0){success.add(id);
Useruser=User.find(User.class,id);
if(user!
=null)user.destroy();
}catch(ActiveRecordExceptionee){
用户删除失败,请手动处理"
}else{
failure.add(id);
}catch(ParseExceptione)
1"
e.printStackTrace();
}catch(ActiveRecordExceptione){
-1"
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)压力测试:
在较多用户并发访问情况下,系统应能够优雅的胜任服务工作在较多用户并发访问情况下,系统应能够优雅的胜任服务工作。