课程设计(自动排课系统)

合集下载

高校公共选修课自动排课系统的设计与实现

高校公共选修课自动排课系统的设计与实现

J 1SHANXI AGRIC 1UNIV 1(N at ural S cience Edition)学报(自然科学版)2009,29(3)002529收稿日期:2008211226 修回日期:2009201205作者简介:韩勇鹏(19782),男(汉),山西太谷人,主要从事计算机监控系统、教务管理方面的研究。

高校公共选修课自动排课系统的设计与实现韩勇鹏(山西农业大学教务处,山西太谷030801)摘 要:为实现教务管理中公共选修课在必修课安排的基础上合理化、智能化的安排,讨论了一个高校公共选修课自动排课系统的结构与功能。

该系统共由输入、排课、输出,查询,统计,以及Web 六个主模块组成。

算法的数据结构实现是以三个类(Teacher ,SelectClass 1Room )组成,其中,主要分析了依据必修课密度进行公共选修课分布以及在自动化排课模块中由教师T 、课程SC 、教室R 组成的三元组与时间H 的匹配问题。

该系统的设计开发为实现高校公共选修课程编排的微机化作业提供了一种有效的新途径。

关键词:排课系统;算法;类中图分类号:TP311111 文献标识码:A 文章编号:167128151(2009)0320281203Design and Implementation of a College Course Arrangement System H AN Y ong 2peng(O f f ice of A cademic A f f ai rs ,S hanx i A g ricutural Universit y ,Tai gu S hanx i 030801,China )Abstract :For the realization of the Senate in the management of public elective courses in the arrangement based on ra 2tionalization and intelligent arrangements ,in the paper ,we discussed the design and implementation of a college course arrangement system.The system is constituted of six components ,namely ,input ,arrangement ,output ,search ,sta 2tistic and web.The core data structures of the arrangement algorithm are the three classes (Teacher ,SelectClass 1Room ).Moreover ,we analyzed the distribution of electives according to the density of the required courses and solved the match problem of the quadruple ,i 1e 1,the teachers T ,the classes SC ,the class rooms R and the timeline H.The system provides an effective way for arranging lessons.K ey w ords :Arrangement system ;Algorithm ;Class 近年来,随着高校的扩招,全国各高校在校学生人数逐年增加,班级的数量也进一步增多,这就给高校的排课工作加大了难度,尤其是公共选修课。

大学自动排课算法设计与实现(课设说明书)

大学自动排课算法设计与实现(课设说明书)

中北大学课程设计说明书软件工程大型实验学生姓名:史东海学号:0706054208 学院: 电子与计算机科学技术学院专业: 软件工程题目: 大学自动排课算法设计与实现系统——登陆及用户管理子系统成绩指导教师:宋礼鹏职称: 讲师2010 年 1 月 21 日1.设计目的该系统并不是所有人都能随便使用的。

系统应该有不同的权限用于排课和课表的查询,通过登陆可以解决权限问题。

而用户是会经常变动的(比如毕业生的离校),所以需要对用户进行相应的管理(如添加、删除及密码的修改),所以需要实现用户管理功能。

2.设计内容在整个系统中本人主要负责登陆和用户管理功能的实现,同时也参加算法的设计与实现。

本系统要涉及到管理人员、教师、学生三个不同的参与者,有两个不同的权限。

管理员可以录入教师、教室、班级等基本的信息然后进行排课,而教师和学生只具有查询课表的权限。

所以在登录的时候要把不同的权限划分出来。

程序在设计好后数据库中有一个默认的管理员的用户名和密码,通过该用户名和密码可以登陆系统,然后通过用户管理模块可以添加教师、学生或管理员。

为了防止用户忘记密码,管理员可以在不知道原始密码的情况下修改用户的密码。

而教师或学生若想修改自己的密码必须输入旧密码。

3.需求描述图1 登陆及用户管理子系统用例图用例描述如下:表1 UserManagement用例描述表表2 Login用例描述表表3 AddUser用例描述表表4 DeleteUser用例描述表表5 ModifyPassword用例描述表4.系统详细分析设计4.1顺序图(1)登陆顺序图:图2 登陆顺序图登陆首先输入用户名和密码,然后程序到数据库中查询用户名是否存在,密码是否正确,如果正确则登陆成功;不正确登陆失败,可以继续登陆或关闭登陆窗口。

(2)添加用户顺序图:图3 添加用户顺序图管理员输用户名、密码和确认密码。

如果数据库对应表中有所输入的用户名则给出提示;没有则比较两次输入密码是否相同,相同条件成功;不同则给出相应提示。

黄山学院自动排课系统的数据库设计

黄山学院自动排课系统的数据库设计

数据库原理课程设计(2012级)黄山学院自动排课系统的数据库设计姓名:李华阳学号: 21206031023 指导教师:丁丙胜院系:信息工程学院专业:计算机科学与技术提交日期:2014—06—122012级计本数据库原理课程设计目录1. 引言 (3)2. 系统需求分析 (4)2.1 功能需求分析 (4)2.1.1本系统的功能需求分析 (4)2.1.2 排课的基本原则要求 (5)2.2 数据流图 (6)2.3 数据字典 (7)2.3.1 数据项 (7)2.3.2 数据结构 (10)2.3.3 数据流 (10)2.3.4 数据存储 (11)2.3.5 处理过程 (12)3.系统功能设计 (13)3.1 系统功能描述 (13)3.1 系统模块分析 (13)4. 数据库概念模型概念 (14)4.1 概念结构设计的方法 (14)4.2 概念结构设计的步骤 (14)4.3 数据抽象与局部视图设计 (15)4.4 视图集成设计 (15)5. 数据库逻辑结构设计 (16)5.1 数据概念模型的优化 (16)5.2 数据逻辑设计 (17)6. 数据库物理结构设计 (19)结束语 (21)参考文献 (22)22012级计本数据库原理课程设计1.引言随着我国计算机技术、互联网行业的快速发展,计算机的开发应用已渗透到各个领域,成为各行各业必不可少的工具,而且日趋普及。

自动排课管理是学校日常工作中经常要面对的事情,传统的自动排课管理只能是通过手工、分散的管理方式,查找、复核困难,资源不能充分利用,造成资源浪费。

现在相当一部分学校在进行自动排课工作时仍沿用手工方式。

老师为了组织一次排课.不仅要应付课程需要的教师安排、自动排课、学生管理。

人工排课需要经过三个步骤.一是对课程班级人员的选择.二是对课程需求教室的选择,三是根据课程教室分配学生.这些工作浪费了大量的宝贵时间,同时安排位置的工作由于人员多.容易出错.而且安排不具有随机性.不够客观。

基于BS的自动排课系统毕业设计正文

基于BS的自动排课系统毕业设计正文

摘要随着社会的发展,在现在的社会,信息的各种操作都需要通过计算机软件来完成。

当今,素质化教育也在校园内不断地得到深化。

自动排课模式也在许多的学校内开始遍布了,而传统的教学模式渐渐被取代了。

自动化排课系统,可以满足学校教务处对于排课管理的需求,减少教务人员工作量的同时降低排课中的并发和错选等问题。

学生通过网页可以随时随地进行选课,节约了大量统计时间;教务人员通过设置排课规则快速的完成课程的安排,易于调整修改;教师可以快速方便的安排课程信息。

该系统采用数据集中管理、统计分布式管理。

自动排课系统的系统设计是基于JSP技术的,它具有灵活的一体化发展战略,圆满完成了整个系统的全面设计。

自动排课系统,采用一个简单的界面,操作方便,灵活,实用,有效的简化了自动排课管理系统的过程,大大提高了自动排课系统的效率,使之更加系统化体系化、标准化、自动化,具有优良的可用性、可靠性和安全性。

该系统采用标准的MVC三层架构,包括表示层、控制层和业务层三个部分,降低了系统开发的复杂性。

这个项目具体是运用了JSP,提高系统的运行性和安全性,并且方便了后期的维护和操作。

系统主要实现了教师列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表等功能模块,具有良好的实用性。

关键词:自动排课;B/S 模式;MVC;JSPAbstractWith the development of society, in the information society, information acquisition, processing, communication and decision-making needs of high-quality computer software. Today, the quality of education are constantly deepened campus. Smart Scheduling model is also in many schools throughout the beginning, while the traditional teaching model was gradually replaced. Intelligent Scheduling System, arranging to meet the needs of the school management for Academic Affairs, reducing the workload of academic staff while reducing concurrency and arranging the wrong choice and other issues. Student enrollment at any time via the web can save a lot of statistical time; rapid completion of the academic staff by organizing courses set Scheduling rules, easy to adapt and modify; teachers can quickly and easily arrange course information. The system uses a centralized data management, statistical distributed management.Senate elective system design management system is based on JSP technology, it has a flexible integrated development strategy, the successful completion of a comprehensive design of the entire system. Academic course management system that uses a simple interface, easy to operate, flexible, practical and effective management system simplifies the Senate elective process, greatly improving the efficiency of educational administration course management system to make it more systematic system, standardization, automation with excellent availability, reliability and security. The system uses three standard MVC architecture, including the presentation layer, control layer and service layer three parts, reducing the complexity of system development. The main use of JSP technology development, improve the system performance and security, and easy to maintain and operate. System is mainly to achieve the teacher lists, class lists, list of students, teachers, lists, list of courses, arranging the list, the list of administrators and other functional modules, with good usability.Key words : Academic Course management; B / S mode; MVC; JSP目录摘要 (I)Abstract (II)1 绪论........................................................................................................................................ - 1 -1.1 课题研究背景及意义.................................................................................................. - 1 -1.2 课题研究现状.............................................................................................................. - 1 -1.3 本课题主要工作.......................................................................................................... - 2 -2 系统相关技术........................................................................................................................ -3 -2.1 J2EE技术 ...................................................................................................................... - 3 -2.2 MVC模式...................................................................................................................... - 3 -2.3 B/S结构......................................................................................................................... - 3 -2.4 数据库技术.................................................................................................................. - 3 -2.5 本章小结...................................................................................................................... - 3 -3 系统需求分析.................................................................................................................... -4 -3.1 系统总体目标.............................................................................................................. - 4 -3.2 系统可行性分析.......................................................................................................... - 4 -3.2.1 操作可行性分析................................................................................................ - 4 -3.2.2 技术可行性分析................................................................................................ - 4 -3.3 系统功能需求分析...................................................................................................... - 5 -3.4 系统非功能需求分析.................................................................................................. - 5 -3.5 系统开发环境与开发工具.......................................................................................... - 6 -4 系统设计与实现.................................................................................................................... - 7 -4.1 系统设计目标和原则.................................................................................................. - 7 -4.2 系统架构设计.............................................................................................................. - 7 -4.3 数据库设计.................................................................................................................. - 9 -4.3.1 数据库的选定.................................................................................................... - 9 -4.3.2 数据库概念模型设计........................................................................................ - 9 -4.3.3 数据库逻辑设计.............................................................................................. - 12 -5 系统详细设计与实现.......................................................................................................... - 15 -5.1 数据库连接实现........................................................................................................ - 15 -5.2 系统登录实现............................................................................................................ - 16 -5.3 系统功能模块实现.................................................................................................... - 17 -5.3.1 管理员功能模块的实现.................................................................................. - 17 -5.3.2 学生功能模块的实现...................................................................................... - 22 -5.3.3 教师功能模块的实现...................................................................................... - 23 -6 系统测试.............................................................................................................................. - 25 -6.1 软件测试.................................................................................................................... - 25 -6.2 功能检测.................................................................................................................... - 25 -6.3 系统配置要求............................................................................................................ - 25 -6.4 测试内容.................................................................................................................... - 25 -6.5 测试结果.................................................................................................................... - 29 -6.6 本章小结.................................................................................................................... - 29 - 结论.................................................................................................................................. - 30 - 参考文献............................................................................................................................ - 31 - 致谢.................................................................................................................................. - 32 -1绪论1.1课题研究背景及意义20世纪末,计算机的诞生与发展将人类带入到一个全新的领域中,如今已经成为解决很多工程问题的必要途径。

基于智能算法的校园自动化排课系统设计与实现

基于智能算法的校园自动化排课系统设计与实现

基于智能算法的校园自动化排课系统设计与实现校园自动化排课系统是一种基于智能算法的新一代教育管理工具,旨在帮助学校高效、准确地进行课程排定。

本文将介绍校园自动化排课系统的设计与实现,以及其所采用的智能算法。

一、系统设计1.需求分析在设计校园自动化排课系统之前,我们需要先进行需求分析。

该系统需要具备以下功能:- 自动识别学校的教学资源和班级数目,并能够根据学校的教学大纲自动生成课程表;- 能够考虑到师资的合理利用,根据教师的特长和排课偏好,分配教师给不同的班级和课程;- 能够处理课程冲突,避免同一时间段内安排了两门课;- 能够根据学生的选修课情况,合理调配教室和时间资源;- 提供灵活的排课参数设置,如考虑到体育课的时间、上课时间段的设置等等。

2.系统架构校园自动化排课系统的架构分为前端和后端两部分。

前端主要负责用户交互和展示,后端负责算法实现和数据处理。

前端采用现代化的Web技术,如HTML、CSS和JavaScript,以实现用户友好的界面;后端使用Java语言开发,并引入各种智能算法实现排课功能。

3.智能算法选择校园自动化排课系统需要选择适当的智能算法来进行排课。

目前,常用的智能算法包括遗传算法、模拟退火算法、禁忌搜索算法等。

在选择算法时,需要考虑到课程数量、教师和教室资源的规模以及排课的灵活性等因素。

针对不同的需求,可以选择合适的算法或者结合多种算法进行优化。

二、系统实现1.数据预处理在实现校园自动化排课系统之前,需要进行数据预处理。

这包括获取学校的教学资源、课程大纲、教师、班级和学生的信息,并进行整理和存储。

同时,也需要收集学生的选修课情况以及教师的排课偏好等额外信息。

2.算法实现基于智能算法的校园自动化排课系统的核心就是算法的实现。

以遗传算法为例,它可以通过模拟生物进化的方式,不断优化课程安排。

遗传算法主要包括初始化种群、评价种群适应度、选择优秀个体、交叉与变异等步骤。

在具体实现中,可以根据实际需求对算法进行调整和优化。

自动排课系统的研究与实现

自动排课系统的研究与实现
! "#$%&’(#)’ *+ ,)+*&(%’-*) .#/0)*1*234 567-%) ,)8’-’6’# *+ 9:6%’-*)4 56;0*6 <=>>?=4 @0-)% A 18’#)(*#9 ,-. +/012+0’3 31/45. +44+(6’(6 5*50.2 ’5 4.+77* + 84197.2 +91/0 180’2’:+0’1( 1; /0’7’:’(6 4.51/45.5 1; 0’2.< 41125 +(= 0.+3-.45> ?0 ’5 1; 64.+0 @+7/. 01 2+A. + 53’.(0’;’3 +44+(6.2.(0 +3314=’(6 01 0-. 31/45. 5.00’(6< 0-. 8.4’1= 1; 0-. 31/45.5 8.4 B..A< 0-. 3/44.(0 37+554112 4.51/45. +(= 0-. 0.+3-.4 4.51/45. +(= 01 841@’=. +( +/012+0’3 31/45. +44+(6’(6 5*50.2 ;14 1/4 .=/3+0’1(+7 +=2’(’504+0’1(> :%7 ;/)+’9 31/45. +44+(6’(6C 180’2’:+0’1(C D.(.0’3 E7614’0-2
K ! L 史忠植 > 知识发现 K M L , 北京: 清华大学出版社, "##F> K " L 朱时银等 > N O O P/’7=.4 G 编程实例与技巧 K M L , 福 北京: 机械工业出版社, "##!>

基于遗传算法的自动排课系统毕业设计【精品毕业设计】(完整版)

基于遗传算法的自动排课系统毕业设计【精品毕业设计】(完整版)
课程表问题又称时间表问题,是一个多因素的优化决策问题,也是组合规划中的典型问题,是NP完全的[1]。对于排课问题的解决,研究人员己经使用了各种不同的算法,但由于该问题的复杂性,所求解也只能是较为合理、较为满意的解。
随着人工智能的发展,特别是在计算智能领域的拓展,借鉴于生物界进化思想和遗传算法,由于其超强的并行搜索能力,以及在解决优化问题中表现出来的高度鲁棒性,它已经被广泛应用于各个领域。目前,很多研究人员已使用遗传算法来求解排课问题,如文献[20]使用遗传算法优化教室的合理利用,文献[21]的用自适应的遗传算法求解大学课表安排问题,文献[22]的基于遗传算法排课系统的设计与实现等等。这些应用说明,使用遗传算法来解决排课问题,其结果还是令人较为满意的。
1.
回溯算法也叫试探法.它是一种系统地搜索问题的解的方法,可以被认为是一个有过剪枝的DFS(深度优先搜索)过程。它按优先条件向前搜索,以达到目标,但当搜索到某一步时.发现原先的选择并不优或达不到目标。就退回一步重新选择。而满足回溯条件的某个状态点称之为回溯点。具体到计算机智能排课系统中,选优条件即为排课数学模型中的约束条件群(需求集中的元素特征与资源集中的元素特征相互作用形成的数学关系)若不满足约束条件群,该选择即为不优或达不到目标当遍历该步骤的所有可能仍未满足约束条件群.则该状态满足了回溯条件,该状态点即为回溯点。
关键词:遗传算法、自动排课、Java。
Abstract
Along with science technical and community information technical increases continuously,calculator science is gradually mature, its mighty function has behaved deep cognition, and it has entered the human social each realm erupts to flick the more and more important function, bringing our life biggest of convenience.Curriculum arrangement is an important and complicated workinginschool,so solving the problem is of great importance for teaching programming.Investigatedand studied the algorithm existed,determinethatadoptgenetic algorithm.ThroughDesign ImplementationtheAutoCourseArrangementManagementSystemBaseonGeneticAlgorithm,researched theapplicationofgenetic algorithmin theCourseArrangementManagementSystem.

基于遗传算法的学校自动排课系统的设计

基于遗传算法的学校自动排课系统的设计

1 7 0 ・
信息产业
基于遗传算法的学校 自动排课 系统 的设 计
王 建 秋
( 中国传媒 大学南广学院 , 江苏 南京 2 1 1 1 0 0 ) 摘 要 : 排课 , 是给学校教 学计划 中设置 的课程安排合适 的时 间和地点, 也就是给每个班的课程安排时间、 地点、 任课教 师等 。 排课 工
作在教 学管理 中很重要求解及优化。
关键词 : 排课 ; 遗传算法 ; 人工智能
Ab s t r a c t :C o u r s e s c h e d u l i n g .i s t o t h e s c h o o l t e a c h i n g p l a n c o u r s e s a r r a n g e a c o n v e n i e n t t i me a n d p l a c e 。i s t o g i v e e a c h c l a s s c u 卜 r i c u l u m t i me ,p l a c e ,t e a c h e r .Ro w o f c l a s s wo r k i n t e a c h i n g ma n a g e me n t i s v e r y i mp o r t a n t a n d a l s o v e y r c u mb e r s o me .T h i s p a p e r ma i n l y U S e S t h e ‘ ‘ g e n e t i c a l g o r i t h m” t o c a r r y o u t a u t o ma t i c t i me — f u n c t i o n c a l c u l a t i o n a n d o p t i mi z a t i o n . Ke y wo r d s :C o u r s e s c h e d u l i n g g e n e t i c a l g o r i t h m Ar t i i f c i a l i n t e l l i g e n c e
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2008~2009学年度《WEB 程序设计》课程设计班级:05网络3班学号:姓名:周秋艳2008年12月17日2008—2009 学年度<<WEB 程序设计>>课程设计周秋艳1 基于WEB 的高校教师排课系统一、 用户需求分析(10分)学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。

其中,作为学校教务重点环节之一的排课系统也尤为重要。

先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。

既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系统。

此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。

系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。

该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。

本系统界面友好,操作简单,使用方便。

二、 系统总体设计(15分) 1.系统功能描述1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;1.2 数据处理:自动排课、课表修改、删除功能;1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;1.4 帮助:指导用户使用该系统及其他相关说明。

2 系统功能设计分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。

在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:2.1 怎样的合班组合能避免冲突?目前采取的方式是相同或相近的专业的班级组合。

2.2 什么地方有空能排课?对教室和班级而言是查空,对教师而言是有无排课需求。

2.3 有两个以上的空哪一个更好?是要考虑离散和平衡问题。

2.4 排课前如何考虑教师宏观利用问题?例如:多媒体大班课:大学英语、高等数学尽量排在上午,思想道德修养、马克思主义哲学原理等尽量排在下午。

2.5 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开销。

三、系统功能模块分析(25分)详细分析各功能模块之间的关系,以及各功能模块下的子模块构成。

22008—2009 学年度<<WEB 程序设计>>课程设计周秋艳31 系统总体模块分析如下2 登陆子模块分析如下3 管理员子模块分析如下教师4 教师子模块分析如下5 注销子模块分析如下返回到登录页面四、数据库设计和建立(15分)1、与前面功能模块的划分相一致的建立合理的关系数据库,详细说明各关系表的属性与描述(每张关系表适当42008—2009 学年度<<WEB 程序设计>>课程设计周秋艳5 添加说明)。

数据库名称是PK ,此数据库包含10张关系表,它们分别是: 表1:ChooseCourse表2:ClassInfo表3:CourseGeneral表4:Department表5:RoomInfo表6:Speciality表7:TermInfo表8:TimeInfo表9:Timetabel表10:UserInfo2、建立数据库及表之间的关系图。

62008—2009 学年度<<WEB 程序设计>>课程设计周秋艳7 3、说明系统与数据库的连接方式。

此系统使用的数据库是SQL Server2000,连接数据库时用的方法是在系统配置文件Web.config 中添加一连接字符串: <add key="dsn"value="server=(local);database=Paike;User ID=sa;password=123;Max Pool Size=1000" />五、 主要界面及相关代码分析(35分)通过系统目标和数据分析创建好数据库后,接下来进行系统功能的开发和实现。

该系统流程图如图所示。

系统中采用的主要技术1用打开数据库的方法程序中通过存取数据库的数据是以离线的数据为基础的,你可以在本地的机器上对数据集进行数据的添加、删除或修改,然后更新回真正的数据库。

具体实现过程为以下几步:1.第一种方案1)首先要导入名称空间<%@ Import namespace="System" %><%@ Import namespace="System.Data" %><%@ Import namespace="System.Data.SqlClient "%>2)建立与数据库的连接SqlConnection myconnection;myconnection=new SqlConnection("server=localhost;uid=sa;pwd=;database=数据库名称");3)在此数据连接上,执行SQL语句,返回所需的数据集Stringc md="select * from数据表名称";SqlDataAdapter mycommand = new SqlDataAdapter ( cmd,myconnection);DataSet ds=new DataSet();mycommand.Fill(ds,reg);数据连接成功后,利用Sql的插入(INSERT)、删除(DELETE)和更新(UPDA TE)命令82008—2009 学年度<<WEB 程序设计>>课程设计周秋艳9 就可以很方便地实现数据库的管理。

2.第二种方案当然我们也可以通过配置web.config 来实现<add key="dsn" value="Data Source=(local); UID=sa; PWD=jianglian; DATABASE=tkxt"/>2 异常的捕获与控制为了提高系统的交互性与运行的可靠性,系统对各类操作异常和运行异常进行捕获与控制。

操作异常是利用 提供的几个验证控件和设置下拉框来实现的,如录入试题时必须先选择章节、知识点、题型,采用下拉框的形式确保试题属于某一知识点;运行异常捕获是使用try()…catch()的结构实现的。

如对数据库进行操作时,对用户输入的题目进行判断,若该题目存在,则提示数据已存在。

具体实现如下:try{ mycommand.ExecuteNonQuery(); lblout.Text="插入成功"; //插入成功 }catch(SqlException exc) { if (exc.Number==2627)lblout.Text="数据已存在"; //数据已存在 elselblout.Text =" error number is:" + exc. Number + exc.Message; //其它错误 }其中lblout 为一个label 控件。

3 自动排课的算法分析用户在自动排课时,可对排课提出多方面的要求,如从教师,教室,时间,课时数目等方面,同时满足多方面的要求并非易事;另外在数据量不是很大的时候要实现自动排课的成功率难度较大,因此排课的算法的优劣直接影响到所排课程的好坏,本系统采用随机排课方式,但是解决了排课算法中的冲突问题。

(排课的具体实现代码在界面与代码分析中)4 排课算法冲突解决方法分析排课算法中的主要的冲突是教室冲突和教室冲突。

我将再通过存储过程的来解决这样的冲突,下面介绍一学期16周,某一门课程32课时为例。

存储过程名为DetectArrangeCollisionCREATE PROCEDURE DetectArrangeCollision @SureCourseID int, @RoomID int, @TimeID int, @TermID int asdeclare @Arrange_id int declare @UserID char(10)select @UserID=erID from Timetabel inner joinChooseCourse on Timetabel.SureCourseID=ChooseCourse.SureCourseID where ChooseCourse.SureCourseID=@SureCourseIDselect @Arrange_id=Arrange_id from Timetabel where ( (RoomID=@RoomID and TimeID=@TimeID ) or ( Timetabel.SureCourseID in ( selectSureCourseID from ChooseCourse where UserID=@UserID)and TimeID=@TimeID )) /*检查教室和教师冲突*/if @Arrange_id <>nullbeginselect * from Timetabel where Arrange_id=@Arrange_id /*查询出数据*/endelsebegindeclare @currentID intselect @currentID=count(*)from Timetabelwhere SureCourseID= @SureCourseID and TermID= @TermIDif ( @currentID <=0)/*查看数据库中是否有重复*/insert into Timetabel values (@TermID,@SureCourseID,@RoomID ,@TimeID)select * from Timetabel where Arrange_id=0endGO1.登录界面login.aspxpublic string[] UserLogin(string UserName,string password){String[] CheckLogin;int Permit=0;string UserID="";SqlParameter[] parameters={new SqlParameter("@UserName",SqlDbType.VarChar ,50),new SqlParameter("@UserPassword",SqlDbType.VarChar ,50),new SqlParameter("@UserID",SqlDbType.Char ,10),new SqlParameter("@result",SqlDbType.Char ,10),new SqlParameter("@Permit",SqlDbType.Int ,4) };parameters[0].Value =UserName;parameters[1].Value =password;parameters[2].Direction=ParameterDirection.Output;parameters[3].Direction=ParameterDirection.Output;parameters[4].Direction=ParameterDirection.Output;int rowsAffected;RunProcedure("sp_UserLogin",parameters,out rowsAffected);// result: NoUser// success,or nouser,or pswerror,// Permit, 如果角色还没分配怎么办if (parameters[4].Value!=DBNull.Value){Permit= Convert.ToInt32(parameters[4].Value);}//设没有这个老师,2008.9.26if (parameters[2].Value!=DBNull.Value)2008—2009 学年度<<WEB程序设计>>课程设计{UserID=Convert.ToString(parameters[2].Value); }CheckLogin=new string []{ UserID, (String)(parameters[3].Value), Convert.ToString(Permit) };return (CheckLogin);}2.自动排课界面GenerateTimeTable.aspxprivate void PK_Click(object sender, System.EventArgs e){int j;int k;string r;con.Open();SqlCommand del = new SqlCommand("delete Timetabel where TermID='"+Convert.ToInt32(ddl1.SelectedValue.ToString().Trim())+"'", con);del.ExecuteNonQuery();//清空Timetabel表里面所有教师任课的信息DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter("SELECT CourseID FROM CourseGeneral",con);da.Fill(ds, "CourseID");for (int i = 0; i < ds.Tables[0].Rows.Count; i++){SqlCommand coure = new SqlCommand("select CourseName,Period from CourseGeneral where CourseID='" + ds.Tables[0].Rows[i][0] + "' ", con);SqlDataReader reader1 = coure.ExecuteReader();if(reader1.Read()){string cr = reader1.GetValue(0).ToString();pr = reader1.GetValue(1).ToString();}reader1.Close();if(int.Parse(pr)/16==2){SqlCommand cmd = new SqlCommand("select RoomID from RoomInfo", con);//调用存储过程,筛选出某门课程某个班级上SqlDataReader dr = cmd.ExecuteReader();j = 0;k = 0;while (dr.Read()){field1[j] = dr[0].ToString();j++;} //获得该课程给定时间的每个可用场地,附值给数组field1[j]dr.Close();SqlCommand cmd1 = new SqlCommand("SELECT SureCourseID FROM ChooseCourse where CourseID in (select CourseID from CourseGeneral where CourseGeneral.Period=32) ", con); SqlDataReader dr1 = cmd1.ExecuteReader();while (dr1.Read()){class1[k] = dr1[0].ToString();k++;}//获得确定,附值给class1[k]dr1.Close();Random rnd = new Random();for (int m =0; m<10; m++)//随即调换class1数组里面的成员{int x = rnd.Next(j);//得0~k的随机数r = field1[x];field1[x] = field1[0];//第一个跟第x个调换field1[0] = r;}for (int n = 0;n<k;n++)//下面为更新插入数据库的操作{SqlCommand cm=new SqlCommand("DetectArrangeCollision",con);mandType=CommandType.StoredProcedure;cm.Parameters.Add(new SqlParameter("@SureCourseID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@RoomID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TimeID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TermID",SqlDbType.Int,4));cm.Parameters["@SureCourseID"].Value=Convert.ToInt32(class1[n]).ToString().Trim();if(Convert.ToInt32(field1[n])!=0){cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n]);}else{int n1=rnd.Next(j);2008—2009 学年度<<WEB程序设计>>课程设计cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n1]);}cm.Parameters["@TimeID"].Value=rnd.Next(24)+1;cm.Parameters["@TermID"].Value=Convert.ToInt32(ddl1.SelectedValue.ToString().Trim()); cm.ExecuteNonQuery();}}else if(int.Parse(pr)==64){SqlCommand cmd = new SqlCommand("select RoomID from RoomInfo", con);//调用存储过程,筛选出某门课程某个班级上SqlDataReader dr = cmd.ExecuteReader();j = 0;k = 0;while (dr.Read()){field1[j] = dr[0].ToString();j++;} //获得该课程给定时间的每个可用场地,附值给数组field1[j]dr.Close();SqlCommand cmd1 = new SqlCommand("SELECT SureCourseID FROM ChooseCourse where CourseID in (select CourseID from CourseGeneral where CourseGeneral.Period=64) ", con); SqlDataReader dr1 = cmd1.ExecuteReader();while (dr1.Read()){class1[k] = dr1[0].ToString();k++;}//获得确定,附值给class1[k]dr1.Close();Random rnd = new Random();for (int m =0; m<10; m++)//随即调换class1数组里面的成员{int x =rnd.Next(j);//得0~k的随机数r = field1[x];field1[x] = field1[0];//第一个跟第x个调换field1[0] = r;}for (int q = 0;q<k;q++)//下面为更新插入数据库的操作{for(int n= 0;n<k;n++){SqlCommand cm=new SqlCommand("DetectArrangeCollision1",con);mandType=CommandType.StoredProcedure;cm.Parameters.Add(new SqlParameter("@SureCourseID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@RoomID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TimeID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TermID",SqlDbType.Int,4));cm.Parameters["@SureCourseID"].Value=Convert.ToInt32(class1[n]).ToString().Trim();if(Convert.ToInt32(field1[n])!=0){ int z= rnd.Next(j);cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[z]);}else{int n1=rnd.Next(j);cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n1]);}cm.Parameters["@TimeID"].Value=rnd.Next(24)+1;cm.Parameters["@TermID"].Value=Convert.ToInt32(ddl1.SelectedValue.ToString().Trim()); cm.ExecuteNonQuery();}}}}Response.Write("<script>alert('排课完毕!')</script>");con.Close();}。

相关文档
最新文档