1、2.2技术特点 32.3 Struts2 框架介绍 42.3.1 Struts2 配置文件 4第3章 系统的设计 53.1系统需求 53.2功能划分 53.3构架设计 63.4模块设计 73.4.1 录入信息模块 73.4.2 排课计划 83.4.3 自动排课 83.4.4 查询并打印课表 83.5数据库设计 8第4章 系统的实现 134.1各模块的具体实现 134.1.1登录窗体的设计 134.1.2系统主界面窗体 154.1.3排课信息浏览 164.1.5教师信息添加 174.1.6教室信息修改 184.1.6系部信息删除 194.1.7 自动排课 204.1.8 查询课表 214.2类的
2、定义 234.2.1 用户信息结构 234.2.2 系部信息结构 244.2.3 专业信息结构 254.2.4 专业课程信息结构 264.2.5 自然班信息结构 274.2.6 自然班课程信息结构 284.2.7 课程班课程信息结构 294.2.8 教师信息结构 304.2.9 课表信息结构 314.2.10 教室信息结构 324.2.11 排课计划信息结构 334.3算法的实现 344.3.1 数据的初始化 344.3.2算法过程: 35第5章 总结与展望 385.1 总结 385.2 展望 38致 谢 39参考文献 40 引言对于每个学校来说,每到一个新学期的开始,首当其冲的任务就是该学期
3、的课程如何安排的问题,而课程安排又涉及年级、班级、教师、课程、学校等方方面面的因素,如何排出一个好并且适用的课程表,是一项复杂的系统工程,充分考验了排课人的智慧。传统的人工进行排课,最令人担心的问题就是出现教室资源冲突或教师资源冲突的情况。而且工作繁琐,工作量巨大。计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减负”。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。第1章 概论1.1 背景1.2 论文的组织1.2.
4、1 技术基础主要介绍系统是采用的技术, Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。1.2.2 系统的设计系统分为四个模块分别是录入信息,设置排课计划,自动排课,查询课表。录入信息有系部信息,专业信息,自然班信息,专业课程信息,自然班课程信息,课程班课程信息,教室信息,教师信息。根据教学计划任务书设置排课计划。自动排课使用回溯算法主要对教室资源信息进行选择,其核心的过程是系统分配一个排课计划信息,根据其教室类型查询对应的教室信息,在分别查询教师
5、时间段,课程班时间段,教室时间段,将三者的时间段进行“或”操作,再找出最优时间片。如果没有找到最优时间片,就将回溯到上一条记录,依此类推,直到所有的排课计划都找到对应的教室信息。查询课表分为三个模块,分别是自然班课表,教室课表,教师课表,都是根据其标号查询对应的课表信息,自然班需要根据课程班编号查询对应的课表信息。1.2.3 系统的实现全部采用struts2的mvc框架来实现功能,其核心是Action,action是mvc框架中的控制层,所有的逻辑操作都在这里实现,Model层主要是java类,本系统有用户类,教学时间段类,系部类,专业类,自然班类,专业课程类,自然班课程类型,课程班课程类,教
6、室类,教师类,排课计划类,课表信息类。View主要采用jsp作为主要显示页面,使用ext技术制作系统的主界面,jsp页面中的联动菜单主要使用Ajax技术,客户端的验证使用Javascript,服务端的验证在有struts完成。系统的最难点是自动排课的实现,对自动排课的功能,对其的子功能做了大量的单元测试,以此来保持自动排课的稳定性。1.2.4 系统的总结与展望由于时间的原因,没有实现手动排课以及排空课的功能。对与数据库的设计不是很好,还需要改进的地方,使用的面向对象编程所写的类没有实现代码复用的特点,还需要更加深入的了解面向对象的思想,对系统的实用性,可以应用于高校排课(学分制)可以实现合班上
7、课,系统的相比原点排课系统多了合班功能,为了应对学校需求,才制作的改进版排课系统。通过大量的测试后,能够推广使用。第2章 技术基础2.1 技术介绍Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术
8、。2.2技术特点Struts2核心控制器:FilterDispatcherstruts 2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。而Struts 2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action的execute方法来处理用户请求。显然,上面的处理过程是典型的AOP(面向切面编程)处理方式。图2-2-1AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应
9、用的规则正在被重写;因此开发人员必须更注重用户。现在用户已经逐渐习惯如何使用Web应用了。例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况。因此用户需要重新体验按钮点击的响应了。可用性是AJAX令人激动的地方而且已经产生了几种新颖的技术。其中最引人注目的是一种称为“黄色隐出”的技术,他在数据更新之前时将用户界面变为黄色,更新完成后立刻恢复原来的颜色。AJAX开发人员将用户从Web应用的负载中解放出来;小心地利用AJAX提供的丰富接口,不久桌面开发人员会发现AJAX是他们的方向。2.3 Struts2 框架介绍2.3.1 Struts2 配置文件当St
10、ruts 2创建系统的Action代理时,需要使用Struts 2的配置文件。Struts 2的配置文件有两份: 配置Action的struts.xml文件。 配置Struts 2全局属性的struts.properties文件。struts.xml文件内定义了Struts 2的系列Action,定义Action时,指定该Action的实现类,并定义该Action处理结果与视图资源之间的映射关系。第3章 系统的设计3.1系统需求本系统完成系部信息管理,专业信息管理,自然班信息管理,专业课程信息管理,自然班课程信息管理,课程班课程信息管理,教师信息管理,教室信息管理,用户信息管理,用户登陆,设置
11、教学时间段,设置排课计划信息,自动排课,查询课表。3.2功能划分程序功能表表3-2-1子系统名称程序单元或模块(实现功能需求)登陆系统UserAction (login方法)修改课节数DayTimeClassesAction(modify 方法)添加系部信息DepartmentAction(add 方法)删除系部信息DepartmentAction(delete 方法)修改系部信息DepartmentAction(modify 方法)添加专业信息ProfessionAction(add 方法)删除专业信息ProfessionAction(delete 方法)修改专业信息ProfessionAc
12、tion(modify 方法)添加自然班信息NaturalclassAction (add 方法)删除自然班信息NaturalclassAction(delete 方法)修改自然班信息NaturalclassAction(modify 方法)添加专业课程信息ProfessionCourseAction (add 方法)删除专业课程信息ProfessionCourseAction(delete 方法)修改专业课程信息ProfessionCourseAction (modify 方法)添加自然班课程信息NaturalclassCourseAction (add 方法)删除自然班课程信息Natura
13、lclassCourseAction(delete 方法)添加课程班课程信息CourseclassCourseAction (add 方法)删除课程班课程信息CourseclassCourseAction (delete 方法)添加排课计划信息ClassesPlanAction (add 方法)删除排课计划信息ClassesPlanAction (delete 方法)自动排课AutoClassesAction (autoClasses 方法)查询教师课表SeeClassesAction (findCourseByTeacherid 方法)查询教室课表SeeClassesAction (find
14、CourseByRoomid 方法)查询自然班课表SeeClassesAction (findCourseByNaturalclassid 方法)3.3构架设计 系统的构架如图所示:图3-3-13.4模块设计3.4.1 录入信息模块 1.系部信息 系部编号有2位阿拉伯数字构成,输入系部名称尽量做到见名知义,联系人是指该系部的主要负责人的名称主要的功能可对信息完成添加,修改,删除信息, 退出.。2.专业信息 专业编号有4位阿拉伯数字构成,其中前2位是对应的系部编号,与之关联的系部名称,输入专业名称尽量做到见名知义,年制。3. 自然班信息 自然班编号有6位阿拉伯数字构成,其中前4位是对应的专业编号
15、。与之关联的专业名称,输入自然班名称尽量做到见名知义,学生人数,入学年份。4. 专业课程信息 专业名称从专业信息表中得到,课程编号是自动编号,课程名称,周课时是对应的一周上的课时,教室类型是总共分为四种分别是普通教室,多媒体,机房,实验室,考核类型分为两种分别是考试类型,考核类型,学期。5. 自然班课程信息 系部名称是从系部信息表中得到,专业名称从专业信息表中得到,自然班名称从自然班信息表中得到,课程名称是从专业课程信息表。主要的功能可对信息完成设置自然班课程信息,删除自然班课程信息, 退出.。6. 课程班课程信息 课程名称从自然班课程信息表中得到,系部名称是从系部信息表,专业名称是从专业信息
16、表,自然班名称是从自然班课程信息表,课程班编号是自动编号,课程班名称要做到件见名知义。主要的功能可对信息完成设置课程班课程信息,删除课程班课程信息, 退出.。7. 教师信息 教师编号有4位阿拉伯数字构成,输入教师名称尽量做到见名知义。8. 教室信息 教室编号有4位阿拉伯数字构成,输入教室名称尽量做到见名知义,教师类型,容量人数。3.4.2 排课计划1. 设置排课计划信息 系部名称从系部信息表中得到,专业名称是从专业信息表,课程班名称是从课程班课程信息表,课程名称是从专业课程信息表中得到,进而索引出教室类型,考核类型,周课时,通过周课时来设置它的累排类型,累排类型是将周课时分成多次上课,然后在设
17、置教师名称,教师名称从教师信息表中得到。主要的功能可对信息完成设置排课计划信息,删除排课计划信息,退出.3.4.3 自动排课 自动排课是采用按教室稀缺性优先回溯,采用回溯算法 主要的功能可对信息完成自动设置教室和时间段,退出.3.4.4 查询并打印课表1. 教师查询 通过教师名称查询教师在一周内上课的情况,主要显示课程,班级,教室信息主要的功能可对信息完成查询和打印,退出.。2. 教室查询 通过教室名称查询教室在一周内上课的情况,主要显示课程,班级,教师信息3. 自然班查询 通过自然班名称查询班级在一周内上课的情况,主要显示课程,教师,教室信息3.5数据库设计在设计一个优秀的管理系统的同时,必
18、需有一个优良的数据库,这样才可以提高一个系统的效率,还可以使提高数据的存储效率和数据的完整性、一致性,根据需求分析我们可以列出数据项和数据结构:(1).用户信息表:包括用户名和密码(2).课节时段信息表:包括学年学期,周天数,上午课时,下午课时,晚上课时。(3).系部信息表:包括系部编号,系部名称、联系人。(4).专业信息表:包括系部编号、专业编号、专业名称、年制。(5).自然班信息表:系部编号、专业编号、自然班编号、自然班名称、入学年份学生人数。(7).专业课程信息表:专业编号、课程编号、课程名称、周课时、教室类型、考核类型、学期。(8).自然班课程信息表:系部编号、专业编号、自然班编号、课
19、程编号、课程名称、教室类型、考核类型、学期。(9).课程班课程信息表:系部编号、专业编号、自然班编号、课程编号、课程名称、课程班编号、课程班名称、教室类型、考核类型、学期。(10).排课计划信息表:自动编号、课程班编号、课程班名称、教室类型、考核类型、学期、课节数、第几次、排课标志。(11).教室信息表:教室编号、教室名称、教室类型、容量人数。(12)教师信息表:教师编号、教师名称。(13).排课计划信息表:自动编号、学期、时间段、教室编号、教师编号、课程班编号、课节数、第几次。用户信息useruserid主键(自动编号)不能为空username字符类型(20)password表3-5-1课节
20、时段表daytimeidacademicsemeter字符类型(20)学年学期amInt类型pmnightweekdayInt 类型表3-5-2系部信息表Departemntdepartmentiddepartmentname字符类型(10)linkman表3-5-3专业信息表Profession长整型professionidprofessionnameyearsystem表3-5-4 自然班信息表naturalclassnaturalclassidenteryearnaturalclassnameStudentnumber整形表3-5-5专业课程信息表ProfessionCoursecour
21、seidcoursenameweeklessonroomtypeinvestypeyearsemeter 长整型表3-5-6自然班课程信息表naturalclassCourse主键(长整型) 字符类型(20)表3-5-7课程班课程信息表courseclassCoursenumbercourseclassid(自动编号)courseclassname表 3-5-8教师信息表teacherteacheridteachername表 3-5-9教室信息表roomroomidroomnamecapacity表 3-5-10排课计划信息表classesPlannumberPlanlessonnumbertimeclassessign布尔类型表 3-5-11课表信息表courseTableyears
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1