资源描述
学校排课管理系统
-可行性研究报告
-需求分析报告
-概要设计报告
-详细设计报告
可行性研究报告
1、 引言:
(1)、项目背景
排课是学校教学管理中十分重要、又相当复杂的管理工作之一,是为学校所设置的课程安排时间和地点,使整个教学能够有计划有秩序地进行。课表编排是一个涉及多种因素的组合规划问题,它要保证在课程安排中教师、学生、教室不能产生冲突(所谓冲突,就是将需上不同课程的两个或多个班安排在了同一时间、同一教室,或为同一教师在同一时间段安排了多门课程等情况),并且要满足教师的要求和教室资源等约束条件。
随着我国教育体制改革的深入,学生人数的不断上升,课程设置不断向深度和广度发展,手工排课的缺点就越来越突出。由于计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。用计算机进行排课能够快速地得到满足约束条件的可行结果,具有排课时间短、人力省和质量高的优点,不但能使教务人员从繁杂的排课任务中解脱出来,而且对于推动教学的发展也起到非常重要的作用。排课管理的主要功能是把各系或各授课部门的课程申请进行汇总,然后根据教学计划或教学环节制订全校各班级的课表。由于学校班级数、课程门数较多,每门课又涉及很多信息,如果用手工进行排课,不可避免地出现教室资源冲突或教师资源冲突的情况。为了使课表的编排更准确、合理、快速,学校教务部门用计算机来进行排课管理,并开发出一些适用的排课软件系统。
(2)、问题定义
此排课管理系统需要解决问题如下:
教师信息入库
班级信息入库
课程信息入库
教室信息入库
以管理员身份登录进行排课管理
以管理员身份登录查询排课结果
以教师身份登录查询排课结果
排课结果入库
排课结果打印
2、 系统运行环境简述
此排课管理系统可以在Windows 9x、Windows NT、Windows 2000或Windows XP/2003操作系统下运行。
3、 可选择的系统方案设计
方案一:采用ASP动态网页技术,利用ASP生成和执行站点服务器应用程序。
(1)、经济可行性
作为学校排课系统这样的非商业性质的系统开发,其经济成分考虑较少,重要的是要能方便广大师生,能满足学生老师的应用需求。主要支出的费用包括Web服务器、数据库服务器、软件开发费用、管理和维护费、人员工资和培训费等。由于三个校区实行统一操作,系统共享,人员工资,维护费用相对较少。
软件开发可由学生自愿申请加入,学校从中选取优秀学生组织开发系统,既为学校节省了开支,也给在校学生提供一个锻炼机会。由于系统管理比较简单,维护也不难,因此对原先极少部分物理管理排课这一块的人员进行相关培训,既可以负责管理这个系统了。系统减轻了教务处工作人员的任务,加快了信息的反馈,花费成本之少,带来益处之大,因此在经济上绝对可行。
(2)、技术可行性
由于系统规模小,对软硬件要求都不是很高,现有的技术满足这样一个小小的系统是绰绰有余的,因此技术可行性是很容易解决的。
(3)、操作可行性
系统分为两个用户类别:老师、管理人员。对系统的操作要求很低,教师可以查自己所教课程的班级和上课时间,管理人员只需要在装入数据库之后运行系统可以进行排课,减轻了管理人员的负担,也防止了输入过度疲劳出错,造成数据错误;管理人员具有最高权限,是系统的管理和维护者。
方案二:将此系统作为学生档案管理的一个子系统直接嵌入到原有教学管理系统中
(1)、经济可行性
系统原有的软硬件皆能满足子系统要求,因此不需要做什么更新,也不用购置什么设备。因此只要软件开发的费用(开发仍可像方案一那样),和一些管理维护费用。仍然是像第一种方案一样三个校区实行统一操作,系统共享。管理人员则只需在原管理人员基础上适当增加,主要是在开学排课时增添人力,花销也不大,较之第一种方案,经济上更能节省不少费用。
(2)、技术可行性
要从原有系统中调用子系统,其要解决的主要是一个接口问题,据分析加入这样一个子系统是完全可行的。其它仍可和方案一雷同,要解决的问题更简单,因此更具有可行性。
(3)、操作可行性
原有管理人员对系统管理已比较熟悉,因此对于新加入的系统也一般能很快的掌握。对系统的操作要求简单,界面清楚,与原系统一起,使用方便,操作上完全具有可行性
需求分析规格说明书
1、 数据描述:
教师数据、教室数据、课程数据、班级数据、教师授课任务数据。
2、 功能需求:
根据管理的实际要求,结合课程管理的实际流程,系统需要满足以下需要:
(1)、掌握学校所有的课程和教师信息。包括课程的时间、班级以及任课教师姓名。
(2)、输入用户名和密码,通过认证后,按照人员的类别显示不同的菜单。
(3)、针对教师和学生提供灵活的浏览和查找功能。他们可以查看某个班级所有课程的信息,可以对课程信息提供查找。
(4)、管理员可以对课程进行变动管理,手工排课,并实现尽可能的自动排序功能;也可以对排课结果进行查询。
(5)、在排课在过程当中一定要满足下面的要求:一个老师同一时间只能在一个教室上课;一个老师在同一时间只能教一门课程;一个教室在同一时间只能安排一门课程;一个班级在同一时间只能在一个教室上课;一个班级在同一时间只能上一门课程。
3、 运行需求
运行环境:Windows 9x、Windows NT、Windows 2000或Windows XP/2003操作系统。
4、 系统流程图
(1)、此事务为系统管理员登录进行排课:
图2-1系统管理员登录排课系统流程图
(2)、此事务为系统管理员或者老师、学生登录对排课结果进行查询:
图2-2系统管理员或者老师登录排课查询系统流程图
5、 数据流图
管理员登录进行排课管理:
图2-3系统管理员登录排课数据流程图
管理员、教师或者学生登录查询排课结果:
图2-4系统管理员或者老师登录排课查询数据流程图
数据字典
名字:密码
别名:
描述:保护用户信息
定义:密码=0{字母字符|数字字符}20
位置:用户登录前
名字:用户名
别名:
描述:用户登录的唯一标志
定义:用户名=0{字母字符|数字字符}10
位置:用户登录前
名字:专业代码
别名:专业编号
描述:专业的唯一标志
定义:专业代码=0{数字字符}2
位置:排课结果
教师表
名字:学院代码
别名:学院编号
描述:学院的唯一标志
定义:学院代码=0{数字字符}2
位置:排课结果
教师表
姓名:班级代码
别名:班级编号
描述:班级的唯一标志
定义:班级代码=0{数字字符}4
位置:排课结果
姓名:教室代码
别名:教室编号
描述:教室的唯一标志
定义:教室编号=0{数字字符}4
位置:排课结果
课程表
、
姓名:教师编号
别名:
描述:教师的唯一标志
定义:教师编号=0{数字字符}10
位置:排课结果
教师表、课程表
姓名:课程编号
别名:
描述:课程的唯一标志
定义:课程编号=0{数字字符}5
位置:课程表
姓名:排课结果
别名:
描述:根据班级、教师、教室、课程进行合理的安排以后得到的一个表
定义:排课结果=课程名+班级代码+教师名称+教室名称
位置:显示到显示器或者输出到打印机
6、 E-R图
图2-5数据库E-R图
概要设计规格说明书
1、 软件结构
此排课管理系统可以分为两个大的模块,即排课管理模块和排课结果查询模块,其中排课管理模块只有管理员可以登录,登录系统之后可以根据装载到系统的教师、教室、课程及班级信息进行手工排课或者自动排课;排课结果查询模块管理员或者老师都可以进行登录,然后进行排课结果查询,此外还可以将查询得到在结果打印出来。
图3-1排课管理系统的层次图
IPO表
系统:排课管理系统 作者:袁银行
模块:装载教师信息 日期:2006-11-20
编号:02
注释:
IPO表
系统:排课管理系统作者:袁银行
模块:登录系统 日期:2006-11-20
编号:01
注释:
调用:
被调用:排课、装载信息
调用:
被调用:密码验证
输出:
输入:教师信息
输出:用户信息、登录信息
输入:用户名、密码
处理:将教师信息从数据库中装载到程序里
处理:密码验证及用户登录系统
局部数据元素:
局部数据元素:
IPO表
系统:排课管理系统 作者:袁银行
模块:装载班级信息 日期:2006-11-20
编号:04
注释:
IPO表
系统:排课管理系统 作者:袁银行
模块:装载课程信息 日期:2006-11-20
编号:03
注释:
被调用:排课、装载信息
被调用:排课、装载信息
调用:
调用:
输入:课程信息
输入:班级信息
输出:
输出:
处理:将班级信息从数据库装载到程序中
处理:将课程信息从数据库装载到程序中
IPO表
系统:排课管理系统 作者:袁银行
模块:排课 日期:2006-11-20
编号:06
注释:
IPO表
系统:排课管理系统 作者:袁银行
模块:装载教室信息 日期:2006-11-20
编号:05
注释:
被调用:排课、装载信息
被调用:手动排课、自动排课
调用:四个装载信息模块
调用:
输入:教室信息
输入:教室、教师、课程、班级
输出:
输出:排课结果
处理:对教室、课程进行合理安排
处理:将教室信息从数据库装载到程序中
IPO表
系统:排课管理系统 作者:袁银行
模块:打印结果 日期:2006-11-20
编号:08
注释:
IPO表
系统:排课管理系统 作者:袁银行
模块:结果查询 日期:2006-11-20
编号:07
注释:
调用:结果查询
被调用:
被调用:打印结果
调用:排课
输出:
输入:排课结果表
输入:班级、教室或者教师信息
输出:排课结果表
处理:将排课结果打印出来
处理:将排课结果查询出来
IPO表
系统:排课管理系统 作者:袁银行
模块:手动排课 日期:2006-11-20
编号:10
注释:
IPO表
系统:排课管理系统 作者:袁银行
模块:排课结果入库 日期:2006-11-20
编号:09
注释:
被调用:排课结果查询
调用:排课
调用:排课结果
被调用:
输入:教师、教室、课程、班级信息
输出:排课结果
输出:
输入:排课结果
处理:根据输入信息进行人工手动排课
处理:将排课结果写入数据库
IPO表
系统:排课管理系统 作者:袁银行
模块:自动排课 日期:2006-11-20
编号:11
注释:
被调用:排课结果查询
调用:排课
输入:教师、教室、课程、班级信息
输出:排课结果
处理:根据输入信息进行自动排课
表3-1 IPO表
2、 数据库设计
(1)、教室情况信息表(ClassRoom)的设计
教室库是描述教室信息的数据表,包括以下部分:教室编号(cRoomCode)、教室名称(cRoName)。在数据库中创建一个表,表名为“ClassRoom”,其字段结构如下表所示。其中,cRoomCode(教室编号)字段为该表的主关键字(PrimaryKey,PK),它惟一标识了一条教室记录。
字段名
字段说明
类型
宽度
备注
cRoomCode
教室编号
文本
5
主关键字
cRoName
教室名称
文本
10
(2)、学院情况信息表(SchoolArray)的设计
学院库是描述学院信息的数据表,包括了学院名称(cShName)及学院代码(cShCode),其中学院代码为该表的主关键字。表字段结构如下表所示:
字段名
字段说明
类型
宽度
备注
cShName
学院名称
文本
20
cShCode
学院代码
文本
2
主关键字
(3)、专业情况信息表(SubjectArray)的设计
专业库是描述专业信息的数据表,包括了专业名称(cSuName)及专业代码(cSuCode),其中专业代码为该表的主关键字。表字段结构如下表所示:
字段名
字段说明
类型
宽度
备注
cSuName
专业名称
文本
20
cSuCode
专业代码
文本
2
主关键字
(4)班级情况信息表(ClassArray)的设计
班级库是描述班级信息的数据表,只包括了班级代码(cClassCode)。在数据库中创建一个表,表名为ClassArray,其字段结构如下表所示。
字段名
字段说明
类型
宽度
备注
cClassCode
班级代码
文本
4
主关键字
(5)、教师信息表(Teacher)的设计
教师信息表是描述教师信息的数据表,包括以下部分:教师姓名(cTrName)、教师编号(cTrCode)、职称(cTrPro)等部分。在数据库中创建一个表,表名为Teacher,其字段结构如下表所示。其中,cTrCode(教师姓名)字段为该表的主关键字(PrimaryKey,PK),它惟一标识了一条教师记录。
字段名
字段说明
类型
宽度
备注
cTrName
教师姓名
文本
10
cTrCode
教师编号
文本
10
主关键字
cTrPro
职称
文本
20
(6)、课程信息表(Class)的设计
课程信息表是描述课程信息的数据表,包括课程名(cClName)、课程编号(cClCode)。其中课程编号是该表的主关键字,它唯一的标识了一条课程记录。
字段名
字段说明
类型
宽度
备注
cClName
课程名称
文本
20
cClCode
课程编号
文本
5
主关键字
(7)、教室课程表(RoomClass)的设计
教室课程表是描述课程、教室的分配情况的数据表,包括教室编号、课程编号、上课时间及上课节次。其中教室编号和课程编号一起组成为此表的主关键字。
字段名
字段说明
类型
宽度
备注
cRoomCode
教室编号
文本
10
主关
键字
cClCode
课程编号
文本
5
cRCDate
上课时间
日期
cRCTime
上课节次
文本
4
(7)、教师代课情况表(trClass)的设计
教师代课情况表是描述教师代课信息的数据表,包括以下部分:班级代码(cClassCode)、代课教师(cTrCode)等部分。在数据库中创建一个表,表名为trClass,其字段结构下表所示。
字段名
字段说明
类型
宽度
备注
cClassCode
班级代码
文本
4
主关
键字
cTrCode
教师编号
文本
10
(8)、排课结果信息表(ClassResult)的设计
排课结果信息表是描述排课结果的数据表,包括课程编号、教室编号、教师编号、班级代码。
字段名
字段说明
类型
宽度
备注
cClCode
课程编号
文本
5
主关
键字
cRoomCode
教室编号
文本
5
cTrCode
教师编号
文本
10
cClassCode
班级代码
文本
4
3、 模块功能和接口说明
3.1 排课管理模块
管理员登录系统,登录之后可以进行数据装载、排课、排课结果入库等操作。
(1)、登录系统:验证用户输入的用户名和密码,如正确则进入系统,如不正确则提示用户名不存在或密码错误。
(2)、数据装载:将课程信息、教师信息、教室信息及课程信息从数据库中装载到系统后运行程序。
(3)、排课:根据装载的信息对课程及教室进行合理安排分配。
(4)、排课结果入库:将排课结果由程序通过接口写入到数据库中
3.2 排课结果查询模块
管理员或者教师登录系统,登录之后可以进行结果查询及结果打印等操作。
(1)、 登录系统:验证用户输入的用户名和密码,如正确则进入系统,如不正确则提示用户名不存在或密码错误。
(2)、 查询结果:通过操作可以将数据库中的排课结果显示到屏幕上供教师或者管理员查看。
(3)、打印结果:通过操作可以将数据通过打印机打印出来。
详细设计
一、人机界面设计
此系统可以分为两个大模块:分别是排课管理模块和排课结果查询模块。
控件:排课管理和排课结果查询。
功能:管理员或者老师可以选择任一按钮继续执行相应在操作。
图4-1 系统总界面
模块名:登录排课管理模块 编号:01 控件:用户名、密码、登录、取消
功能:此登录模块是属于排课管理的子模块,用户名唯一,密码唯一,在两者都正确在情况下才可以正常登录,进入下一个界面(连接下一个界面)。否则系统会弹出一个警告对话框,告诉用户输入错误,并重新输入正确在用户名和密码。
图4-2 登录排课管理模块界面
模块名:登录排课结果查询模块 编号:02 控件:用户名、密码、登录、取消
功能:此登录模块属于排课结果查询模块,老师和管理员都可以登录进去,用户名和密码都要正确,否则系统也会弹出警告,提示用户重新输入。完成了用户名、密码检测的功能。
图4-3 登录排课结果查询模块界面
模块名:排课 编号:06
控件:手工排课、自动排课、加载教师信息、加载教室信息、加载班级信息、加载课程信息、排课、保存、修改、退出。
功能:此模块又可以分为两个子模块,代表了两种排课方法,因为手动排课相对比较容易,此次编码主要实现的功能即是手动排课功能。点击手动排课按钮之后,系统会显示到下一界面,提示用户加载教师、教室、课程、班级信息,加载完信息之后,程序会根据加载的数据提示用户进行排课,在排课在过程当中一定要满足下面的要求:一个老师同一时间只能在一个教室上课;一个老师在同一时间只能教一门课程;一个教室在同一时间只能安排一门课程;一个班级在同一时间只能在一个教室上课;一个班级在同一时间只能上一门课程。确定排课之后没有错误,管理员可以点击保存将排课结果导入数据库,如果发现排课有冲突,可以点击修改按钮进行修改,重新排课。排课完毕之后点击退出按钮即可退出系统。
图4-4 排课界面
模块名:查询结果 编号:07 控件:查询
功能:用户正确登录之后就可以看到下面的界面供其进行选择,点击查询按扭之后,系统会自动提示用户是按照什么方式进行查询,一共有三种选择,分别是按照教师、教室、班级进行查询。选择其中一种,系统会返回相应的排课结果。
图4-5排课结果查询界面
模块名:打印结果
编号:08
控件:保存、打印
功能:从数据库中读出排课结果,对结果进行处理,然后输出到打印机上进行打印。
图4-6 打印结果界面
二、各模块的Jackson图及相应的程序结构
图4-7登录排课管理模块的Jackson图
登录排课管理模块
{
flag=0;
while(flag==0)
{
输入用户名、密码;
打开管理员;
比较用户名密码对;
if(有匹配的用户名密码对)
flag=1;
关闭文件;
if(flag==1)
调用排课模块;
else
{ 弹出警告;
if(“退出”按钮不被按下)
重新输入;
else
退出;
}
}
图4-8登录查询结果模块的Jackson图
登录查询结果模块
{
flag=0;
while(flag==0)
{
输入用户名、密码;
打开管理员或者老师文件;
比较用户名密码对;
if(有匹配的用户名密码对)
flag=1;
关闭文件;
if(flag==1)
调用查询结果模块;
else
{ 弹出警告;
if(“退出”按钮不被按下)
重新输入;
else
退出;
}
}
图4-9 装载信息Jackson图
装载信息
{
连接数据库;
将各信息读入程序;
if(信息装载完成)
{
调用排课模块;
}
else
{ if(“退出”按钮没被按下)
{
弹出信息装载没有完成警告;
重新装载信息;
}
else
退出;
}
}
图4-10 排课模块的Jackson图
手工排课
{
分时间段给每一门课程安排一间教室;
If(各时间段一间教室只有一门课程)
为课程安排相应的老师;
Else
重新分配教室;
If(同一时间段一个老师只有一门课程)
将要上课的班级对应到相应的老师;
Else
重新为课程安排相应的老师;
If(一个 班级在同一时间段只上一门课程)
排课结束;
保存排课结果;
Else
重新调整班级和老师之间的对应关系;
}
图4-11 排课结果入库模块的Jackson图
排课结果入库
{ 打开排课结果;
If(排课结果为非空)
{ 打开数据库;
将排课结果依次写入数据库;
}
Else
{ 弹出“没有排课结果”提示;
按“确定”退出;
}}
图4-12 查询结果模块的Jackson图
查询结果
{
打开数据库;
从数据库中读出数据;
处理数据;
选择查询的方法;
以表格的形式输出排课结果到显示器上;
退出;
}
图4-13 打印结果模块的Jackson图
打印结果
{
打开数据库;
从数据库中读出数据;
处理数据;
选择查询的方法;
将排课结果输出到打印机上;
打印;
退出;
}
22
展开阅读全文