文档库 最新最全的文档下载
当前位置:文档库 › 教务管理系统

教务管理系统

2008级计算机科学与技术专业

B/S系统

案例分析报告

2010-2011学年第一学期

项目名称:

理工院教务管理系统

姓名:熊雅平学号:080308104成绩:

指导教师:曾玉珠

本系统运用J2EE中的JSP MODEL2的MVC (MODEL+VIEW+CONTROL)模型,运用Eclipse3.1.8 + Tomcat5.0 + JDK5.0 + MSSQL 的组合开发平台开发测试。B/S架构,在系统设计、实施上运用软件工程的

思想,完全依照瀑布模型来编写设计文档。利用流程图,UML图等工具来设计程序,以避免逻辑上的错误。运用PowerDesigner工具进行数据库的设计,运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了自动排课算法,可以完成特定需求的排课。优雅的分层设计、美观的页面设计、功能间低耦合、SQL及算法语句的优化让系统增色不少。

MVC架构简介:MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller)。MVC

模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

MVC(Model View Controller)模型-视图-控制器MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC copyright: Apple Inc.的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion 和PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。

本案例的MVC结构图如下所示:

基于一个简单的管理系统的MVC架构都要用到VIEW+CONTROL+MODEL

1、数据库的设计

分析:作为一个信息管理系统,数据库设计的好坏决定了系统的性能好坏。一个好的数据库可以带来更高的数据访问效率。

本案例数据库的设计优点是设计的非常详细。方方面面都能够考虑进来,是非常难能可贵的。

但是管理系统一般功能较繁杂。这样一来就会导致数据库的过分复杂,对设计者要求比较高。这个案例数据库的缺点就是设计了几个冗余的表,还需要改进。

2、权限模块

具体代码实现如下:

height=400>

>

 

width=478>      在线人数:

<%=Count.getOnline()%>,额定数:100

你是第

color=#ff0000>28位登录本系统的用户

color=#ff0000size=2> 

color=blue>

href="https://www.wendangku.net/doc/f516216321.html,">

color=red>

face="Verdana, Arial, Helvetica, sans-serif" size=-1>用户名 

 

class="INPUT_text"name=userName

value="">

 

face="Verdana, Arial, Helvetica, sans-serif"

size=-1>密码 

 

class="INPUT_text"type=password

name=userPassword value="">

 

face="Verdana, Arial, Helvetica, sans-serif" size=-1>登录类型 

 

face="Verdana, Arial, Helvetica, sans-serif" size=-1>

 
  

name=submit onclick="return check()">

 
 
  

程序调试通过by:双鱼林 QQ:287307421 手机:135******** 更多系统请到双鱼林的淘宝店:

target='_blank'>https://www.wendangku.net/doc/f516216321.html,查询

      

color="#800080"size="2">测试环境为:windows

xp+jdk1.5+Tomcat6.0+MyEclipse5.5+SQLServer2000

分析:权限问题有多种解决方案,最系统的比如Windows的用户组分类。为了减轻工作量和复杂度,这里没有给每个权限编号并为用户设定用户组。因为页面的独立,这里使用页面权限和登录权限。

理学院权限分析:

1.页面权限可以通过JSP中的过滤器(Filter)来实现;

2.登录权限可以用JA V A代码实现;

3.这样不同类型用户登录的是不同的页面,并且用户不能访问其它类型用户的页面。

3、自动排课功能

具体代码实现如下:

排课第一步-选择班级和第几阶段

排课第一步-选择班级和第几阶段


${warnMessage}

排课第二步-为这个班级选择老师和课程


在一个班里老师和课程是一对一的关系

班级:${className} 阶段:${phase}
选择必修课程:
对应的老师:

编号老师课程班级删除
${info}

href="CautoMakeScheme_deleteClassAndTeacherForClasses?action=${clt}">删除

test='${(warnMessage != null)|| (warnMessage != "") || (warnMessage != "null") || (warnMessage != "NULL") }'>

color="red">${warnMessage}

理学院自动排课解决方案.

1. 简化五维关系,在自动排课之前,要求用户选择班级和阶段,再为班级的特定阶段规定(课程—老师)

在同一班级同一学期的课程和老师

三维: (班级---学期---课程---老师) --- 时间--- 教室

2. 为排课定制约束

1.如果取出的教室不为空,则给班分配一个随机的教室. 如果为空,这节课就不上了.

2.如果取出的(老师-课程)都有课,则这节课不上.

3.如果前6节课有同样的课上过了,选其它的课

4.如果排到的课超过了当周应上课数,选其它的课

5.如果当天前三节课都上了,这节课不上.

1,2为自动排课的硬性约束,---------3,4,5,为自动排课的软性

4、学生考试功能

具体代码实现如下:

必修考试

action="Cexam_giveCompulsoryScore"target="mainFrame">

课程号:${courseId}
${sessionScope.student.s_name

}你的学号是:${sessionScope.student.s_id }

单选:${countOfChoose1}个,多选:${countOfChoose2}个,填空:${countOfText}个,剩余时间:

name="Btime"type="text"id="Btime"readonly="readonly"

align="bottom"size="5"/>

一、单选题 :(每题 2分)

<%int i = 0;

int j = 0;

int k = 0;

%>

items="${compulsoryPaper}" var="Choose1">

align="center">

<%i++;

%>

题目<%=i%>: ${Choose1.ch_question}
A选项: ${Choose1.keya}
B选项: ${Choose1.keyb}
C选项: ${Choose1.keyc}
D选项: ${Choose1.keyd}

value="${Choose1.ch_id}"/>

二、多选题:(每题 4分)

begin="${countOfChoose1}" items="${compulsoryPaper}"

var="Choose2">

align="center">

<%j++;

%>

value="${Choose2.ch_id}"/>

题目<%=j%>: ${Choose2.ch_question}
A选项: ${Choose2.keya}
B选项: ${Choose2.keyb}
C选项: ${Choose2.keyc}
D选项: ${Choose2.keyd}

value="${Choose2.ch_id}"/>

三、填空题:(每题 4分)

items="${compulsoryPaper}" var="Text">

<%k++;

%>

value="${Text.text_id}"/>

题目<%=k%>: ${Text.text_question}

size="80"/>

分析:使用MVC架构编写的学生考试模块。教师进行出题操作后,通过servlet进行业务逻辑处理后,学生可以看见试题。学生进行问题回答后数据提交给servlet。Servlet访问数据库测试答案是否正确,返回分数给学生。MVC的架构非常清晰。有很好的学习价值。

5、登陆、注册模块

具体代码实现如下:

欢迎光临理学院教学管理信息系统-用户登录

height=400>

>

 

width=478>      在线人数:

<%=Count.getOnline()%>,额定数:100

你是第

color=#ff0000>28位登录本系统的用户

color=#ff0000size=2> 

color=blue>

href="https://www.wendangku.net/doc/f516216321.html,">

color=red>

face="Verdana, Arial, Helvetica, sans-serif" size=-1>用户名 

 

class="INPUT_text"name=userName

value="">

 

face="Verdana, Arial, Helvetica, sans-serif" size=-1>密码 

 

class="INPUT_text"type=password

name=userPassword value="">

 

face="Verdana, Arial, Helvetica, sans-serif" size=-1>登录类型 

 

face="Verdana, Arial, Helvetica, sans-serif" size=-1>

 
  

name=submit onclick="return check()">

 
 
  

程序调试通过by:双鱼林 QQ:287307421 手机:135******** 更多系统请到双鱼林的淘宝店:

target='_blank'>https://www.wendangku.net/doc/f516216321.html,查询

      

color="#800080"size="2">测试环境为:windows

xp+jdk1.5+Tomcat6.0+MyEclipse5.5+SQLServer2000

分析:非常实用的登陆、注册模块。定义了三种登陆模式:管理员、教师、学生,通过参数判断登陆者的级别进行相应的登陆。登陆过程也是典型的MVC架构模式。

整个案例中贯彻了MVC架构的思想,这是一大优点。唯一的缺点就是有太多的冗余代码存在,可读性较弱。

相关文档 最新文档