排课系统论文参考Word格式.docx
《排课系统论文参考Word格式.docx》由会员分享,可在线阅读,更多相关《排课系统论文参考Word格式.docx(53页珍藏版)》请在冰豆网上搜索。
2.2技术特点3
2.3Struts2框架介绍4
2.3.1Struts2配置文件4
第3章系统的设计5
3.1系统需求5
3.2功能划分5
3.3构架设计6
3.4模块设计7
3.4.1录入信息模块7
3.4.2排课计划8
3.4.3自动排课8
3.4.4查询并打印课表8
3.5数据库设计8
第4章系统的实现13
4.1各模块的具体实现13
4.1.1登录窗体的设计13
4.1.2系统主界面窗体15
4.1.3排课信息浏览16
4.1.5教师信息添加17
4.1.6教室信息修改18
4.1.6系部信息删除19
4.1.7自动排课20
4.1.8查询课表21
4.2类的定义23
4.2.1用户信息结构23
4.2.2系部信息结构24
4.2.3专业信息结构25
4.2.4专业课程信息结构26
4.2.5自然班信息结构27
4.2.6自然班课程信息结构28
4.2.7课程班课程信息结构29
4.2.8教师信息结构30
4.2.9课表信息结构31
4.2.10教室信息结构32
4.2.11排课计划信息结构33
4.3算法的实现34
4.3.1数据的初始化34
4.3.2算法过程:
35
第5章总结与展望38
5.1总结38
5.2展望38
致谢39
参考文献40
引言
对于每个学校来说,每到一个新学期的开始,首当其冲的任务就是该学期的课程如何安排的问题,而课程安排又涉及年级、班级、教师、课程、学校等方方面面的因素,如何排出一个好并且适用的课程表,是一项复杂的系统工程,充分考验了排课人的智慧。
传统的人工进行排课,最令人担心的问题就是——出现教室资源冲突或教师资源冲突的情况。
而且工作繁琐,工作量巨大。
计算机软件技术应用于学校的课程安排是发展的必然。
充分发挥计算机的优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减负”。
利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。
第1章概论
1.1背景
1.2论文的组织
1.2.1技术基础
主要介绍系统是采用的技术,Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。
1.2.2系统的设计
系统分为四个模块分别是录入信息,设置排课计划,自动排课,查询课表。
录入信息有系部信息,专业信息,自然班信息,专业课程信息,自然班课程信息,课程班课程信息,教室信息,教师信息。
根据教学计划任务书设置排课计划。
自动排课使用回溯算法主要对教室资源信息进行选择,其核心的过程是系统分配一个排课计划信息,根据其教室类型查询对应的教室信息,在分别查询教师时间段,课程班时间段,教室时间段,将三者的时间段进行“或”操作,再找出最优时间片。
如果没有找到最优时间片,就将回溯到上一条记录,依此类推,直到所有的排课计划都找到对应的教室信息。
查询课表分为三个模块,分别是自然班课表,教室课表,教师课表,都是根据其标号查询对应的课表信息,自然班需要根据课程班编号查询对应的课表信息。
1.2.3系统的实现
全部采用struts2的mvc框架来实现功能,其核心是Action,action是mvc框架中的控制层,所有的逻辑操作都在这里实现,Model层主要是java类,本系统有用户类,教学时间段类,系部类,专业类,自然班类,专业课程类,自然班课程类型,课程班课程类,教室类,教师类,排课计划类,课表信息类。
View主要采用jsp作为主要显示页面,使用ext技术制作系统的主界面,jsp页面中的联动菜单主要使用Ajax技术,客户端的验证使用Javascript,服务端的验证在有struts完成。
系统的最难点是自动排课的实现,对自动排课的功能,对其的子功能做了大量的单元测试,以此来保持自动排课的稳定性。
1.2.4系统的总结与展望
由于时间的原因,没有实现手动排课以及排空课的功能。
对与数据库的设计不是很好,还需要改进的地方,使用的面向对象编程所写的类没有实现代码复用的特点,还需要更加深入的了解面向对象的思想,对系统的实用性,可以应用于高校排课(学分制)可以实现合班上课,系统的相比原点排课系统多了合班功能,为了应对学校需求,才制作的改进版排课系统。
通过大量的测试后,能够推广使用。
第2章技术基础
2.1技术介绍
Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。
Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:
WebWork基础上发展起来的。
AJAX即“AsynchronousJavaScriptandXML”(异步JavaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。
2.2技术特点
Struts2核心控制器:
FilterDispatcher
struts2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器并没有与ServletAPI耦合,显然无法处理用户请求。
而Struts2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。
显然,上面的处理过程是典型的AOP(面向切面编程)处理方式。
图2-2-1
AJAX的最大机遇在于用户体验。
在使应用更快响应和创新的过程中,定义Web应用的规则正在被重写;
因此开发人员必须更注重用户。
现在用户已经逐渐习惯如何使用Web应用了。
例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况。
因此用户需要重新体验按钮点击的响应了。
可用性是AJAX令人激动的地方而且已经产生了几种新颖的技术。
其中最引人注目的是一种称为“黄色隐出”的技术,他在数据更新之前时将用户界面变为黄色,更新完成后立刻恢复原来的颜色。
AJAX开发人员将用户从Web应用的负载中解放出来;
小心地利用AJAX提供的丰富接口,不久桌面开发人员会发现AJAX是他们的方向。
2.3Struts2框架介绍
2.3.1Struts2配置文件
当Struts2创建系统的Action代理时,需要使用Struts2的配置文件。
Struts2的配置文件有两份:
—配置Action的struts.xml文件。
—配置Struts2全局属性的struts.properties文件。
struts.xml文件内定义了Struts2的系列Action,定义Action时,指定该Action的实现类,并定义该Action处理结果与视图资源之间的映射关系。
第3章系统的设计
3.1系统需求
本系统完成系部信息管理,专业信息管理,自然班信息管理,专业课程信息管理,自然班课程信息管理,课程班课程信息管理,教师信息管理,教室信息管理,用户信息管理,用户登陆,设置教学时间段,设置排课计划信息,自动排课,查询课表。
3.2功能划分
程序功能表
表3-2-1
子系统名称
程序单元或模块(实现功能需求)
登陆系统
UserAction(login方法)
修改课节数
DayTimeClassesAction(modify方法)
添加系部信息
DepartmentAction(add方法)
删除系部信息
DepartmentAction(delete方法)
修改系部信息
DepartmentAction(modify方法)
添加专业信息
ProfessionAction(add方法)
删除专业信息
ProfessionAction(delete方法)
修改专业信息
ProfessionAction(modify方法)
添加自然班信息
NaturalclassAction(add方法)
删除自然班信息
NaturalclassAction(delete方法)
修改自然班信息
NaturalclassAction(modify方法)
添加专业课程信息
ProfessionCourseAction(add方法)
删除专业课程信息
ProfessionCourseAction(delete方法)
修改专业课程信息
ProfessionCourseAction(modify方法)
添加自然班课程信息
NaturalclassCourseAction(add方法)
删除自然班课程信息
NaturalclassCourseAction(delete方法)
添加课程班课程信息
CourseclassCourseAction(add方法)
删除课程班课程信息
CourseclassCourseAction(delete方法)
添加排课计划信息
ClassesPlanAction(add方法)
删除排课计划信息
ClassesPlanAction(delete方法)
自动排课
AutoClassesAction(autoClasses方法)
查询教师课表
SeeClassesAction(findCourseByTeacherid方法)
查询教室课表
SeeClassesAction(findCourseByRoomid方法)
查询自然班课表
SeeClassesAction(findCourseByNaturalclassid方法)
3.3构架设计
系统的构架如图所示:
图3-3-1
3.4模块设计
3.4.1录入信息模块
1.系部信息
系部编号有2位阿拉伯数字构成,输入系部名称尽量做到见名知义,联系人是指该系部的主要负责人的名称
主要的功能可对信息完成添加,修改,删除信息,退出.。
2.专业信息
专业编号有4位阿拉伯数字构成,其中前2位是对应的系部编号,与之关联的系部名称,输入专业名称尽量做到见名知义,年制。
3.自然班信息
自然班编号有6位阿拉伯数字构成,其中前4位是对应的专业编号。
与之关联的专业名称,输入自然班名称尽量做到见名知义,学生人数,入学年份。
4.专业课程信息
专业名称从专业信息表中得到,课程编号是自动编号,课程名称,周课时是对应的一周上的课时,教室类型是总共分为四种分别是普通教室,多媒体,机房,实验室,考核类型分为两种分别是考试类型,考核类型,学期。
5.自然班课程信息
系部名称是从系部信息表中得到,专业名称从专业信息表中得到,自然班名称从自然班信息表中得到,课程名称是从专业课程信息表。
主要的功能可对信息完成设置自然班课程信息,删除自然班课程信息,退出.。
6.课程班课程信息
课程名称从自然班课程信息表中得到,系部名称是从系部信息表,专业名称是从专业信息表,自然班名称是从自然班课程信息表,课程班编号是自动编号,课程班名称要做到件见名知义。
主要的功能可对信息完成设置课程班课程信息,删除课程班课程信息,退出.。
7.教师信息
教师编号有4位阿拉伯数字构成,输入教师名称尽量做到见名知义。
8.教室信息
教室编号有4位阿拉伯数字构成,输入教室名称尽量做到见名知义,教师类型,容量人数。
3.4.2排课计划
1.设置排课计划信息
系部名称从系部信息表中得到,专业名称是从专业信息表,课程班名称是从课程班课程信息表,课程名称是从专业课程信息表中得到,进而索引出教室类型,考核类型,周课时,通过周课时来设置它的累排类型,累排类型是将周课时分成多次上课,然后在设置教师名称,教师名称从教师信息表中得到。
主要的功能可对信息完成设置排课计划信息,删除排课计划信息,退出.
3.4.3自动排课
自动排课是采用按教室稀缺性优先回溯,采用回溯算法
主要的功能可对信息完成自动设置教室和时间段,退出.
3.4.4查询并打印课表
1.教师查询
通过教师名称查询教师在一周内上课的情况,主要显示课程,班级,教室信息
主要的功能可对信息完成查询和打印,退出.。
2.教室查询
通过教室名称查询教室在一周内上课的情况,主要显示课程,班级,教师信息
3.自然班查询
通过自然班名称查询班级在一周内上课的情况,主要显示课程,教师,教室信息
3.5数据库设计
在设计一个优秀的管理系统的同时,必需有一个优良的数据库,这样才可以提高一个系统的效率,还可以使提高数据的存储效率和数据的完整性、一致性,根据需求分析我们可以列出数据项和数据结构:
(1).用户信息表:
包括用户名和密码
(2).课节时段信息表:
包括学年学期,周天数,上午课时,下午课时,晚上课时。
(3).系部信息表:
包括系部编号,系部名称、联系人。
(4).专业信息表:
包括系部编号、专业编号、专业名称、年制。
(5).自然班信息表:
系部编号、专业编号、自然班编号、自然班名称、入学年份
学生人数。
(7).专业课程信息表:
专业编号、课程编号、课程名称、周课时、教室类型、考核类型、学期。
(8).自然班课程信息表:
系部编号、专业编号、自然班编号、课程编号、课程名称、教室类型、考核类型、学期。
(9).课程班课程信息表:
系部编号、专业编号、自然班编号、课程编号、课程名称、课程班编号、课程班名称、教室类型、考核类型、学期。
(10).排课计划信息表:
自动编号、课程班编号、课程班名称、教室类型、考核类型、学期、课节数、第几次、排课标志。
(11).教室信息表:
教室编号、教室名称、教室类型、容量人数。
(12)教师信息表:
教师编号、教师名称。
(13).排课计划信息表:
自动编号、学期、时间段、教室编号、教师编号、课程班编号、课节数、第几次。
用户信息
user
userid
主键(自动编号)
不能为空
username
字符类型(20)
password
表3-5-1
课节时段表
daytime
id
academicsemeter
字符类型(20)学年学期
am
Int类型
pm
night
weekday
Int类型
表3-5-2
系部信息表
Departemnt
departmentid
departmentname
字符类型(10)
linkman
表3-5-3
专业信息表
Profession
长整型
professionid
professionname
yearsystem
表3-5-4
自然班信息表
naturalclass
naturalclassid
enteryear
naturalclassname
Studentnumber
整形
表3-5-5
专业课程信息表
ProfessionCourse
courseid
coursename
weeklesson
roomtype
investype
yearsemeter
长整型
表3-5-6
自然班课程信息表
naturalclassCourse
主键(长整型)
字符类型(20)
表3-5-7
课程班课程信息表
courseclassCourse
number
courseclassid
(自动编号)
courseclassname
表3-5-8
教师信息表
teacher
teacherid
teachername
表3-5-9
教室信息表
room
roomid
roomname
capacity
表3-5-10
排课计划信息表
classesPlan
numberPlan
lesson
numbertime
classessign
布尔类型
表3-5-11
课表信息表
courseTable
years