课程设计(自动排课系统)(共15页).doc
《课程设计(自动排课系统)(共15页).doc》由会员分享,可在线阅读,更多相关《课程设计(自动排课系统)(共15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上20082009学年度WEB 程序设计课程设计班级: 05网络3班 学号: 姓名: 周秋艳 2008年 12月 17日基于WEB的高校教师排课系统一、 用户需求分析(10分)学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。其中,作为学校教务重点环节之一的排课系统也尤为重要。先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系
2、统。 此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。本系统界面友好,操作简单,使用方便。二、 系统总体设计(15分)1.系统功能描述1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;1.2 数据处理:自动排课、课表修改、删除功
3、能;1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;1.4 帮助:指导用户使用该系统及其他相关说明。2 系统功能设计分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:2.1 怎样的合班组合能避免冲突? 目前采取的方式是相同或相近的专业的班级组合。2.2 什么地方有空能排课? 对教室和班级而言是查空,对教师而言是有无排课需求。 2.3 有两个以上的空哪一个更好? 是要考虑离散和平衡问题。2.4 排课前
4、如何考虑教师宏观利用问题? 例如:多媒体大班课:大学英语、高等数学尽量排在上午,思想道德修养、马克思主义哲学原理等尽量排在下午。 2.5 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开销。三、 系统功能模块分析(分)详细分析各功能模块之间的关系,以及各功能模块下的子模块构成。1 系统总体模块分析如下2 排课各类基本信息1 信息管理排课所需信息已排课表信息 3 输出排课教师模块登录模块注销模块管理员模块2 登陆子模块分析如下返回到登录页面进入相应的角色页面登录页面登录校验用户输入用户名,密码,并选择自己的角色点击进入用户succeedfailed3 管理员子模块分析如下管理员 教师
5、班级 1.1 添加 教室需添加信息 课程1.3 删除 详细信息 教学任务查询关键字 1.2 查询 学院 专业系别 教室类型 需删除信息 4 教师子模块分析如下教师查看课程表查看自己被分配的课程课程详细信息5 注销子模块分析如下用户注销点击注销返回到登录页面四、 数据库设计和建立(分)、 与前面功能模块的划分相一致的建立合理的关系数据库,详细说明各关系表的属性与描述(每张关系表适当添加说明)。数据库名称是PK,此数据库包含10张关系表,它们分别是:表1:ChooseCourse表2:ClassInfo表3:CourseGeneral表4:Department表5:RoomInfo表6:Speci
6、ality表7:TermInfo表8:TimeInfo表9:Timetabel表10:UserInfo、 建立数据库及表之间的关系图。、 说明系统与数据库的连接方式。 此系统使用的数据库是SQL Server2000,连接数据库时用的方法是在系统配置文件Web.config中添加一连接字符串: 五、 主要界面及相关代码分析(分) 通过系统目标和数据分析创建好数据库后,接下来进行系统功能的开发和实现。该系统流程图如图所示。 系统中采用的主要技术1用ASP.NET打开数据库的方法ASP.NET程序中通过ADO.NET存取数据库的数据ADO.NET是以离线的数据为基础的,你可以在本地的机器上对数据集
7、进行数据的添加、删除或修改,然后更新回真正的数据库。具体实现过程为以下几步:1.第一种方案1)首先要导入名称空间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
8、ds=new DataSet();mycommand.Fill(ds,reg);数据连接成功后,利用Sql的插入(INSERT)、删除(DELETE)和更新(UPDATE)命令就可以很方便地实现数据库的管理。2.第二种方案当然我们也可以通过配置web.config来实现2异常的捕获与控制为了提高系统的交互性与运行的可靠性,系统对各类操作异常和运行异常进行捕获与控制。操作异常是利用ASP.NET提供的几个验证控件和设置下拉框来实现的,如录入试题时必须先选择章节、知识点、题型,采用下拉框的形式确保试题属于某一知识点;运行异常捕获是使用try()catch()的结构实现的。如对数据库进行操作时,对用
9、户输入的题目进行判断,若该题目存在,则提示数据已存在。具体实现如下: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自动排课的算法分析用户在自动排课时,可对排课提出多方面的要求,如从教师,教室,时间,课时数目等方面,同时满
10、足多方面的要求并非易事;另外在数据量不是很大的时候要实现自动排课的成功率难度较大,因此排课的算法的优劣直接影响到所排课程的好坏,本系统采用随机排课方式,但是解决了排课算法中的冲突问题。(排课的具体实现代码在界面与代码分析中)4排课算法冲突解决方法分析排课算法中的主要的冲突是教室冲突和教室冲突。我将再通过存储过程的来解决这样的冲突,下面介绍一学期16周,某一门课程32课时为例。存储过程名为DetectArrangeCollisionCREATE PROCEDURE DetectArrangeCollisionSureCourseID int,RoomID int,TimeID int,TermI
11、D intasdeclare Arrange_id intdeclare UserID char(10) select UserID=ChooseCourse.UserID from Timetabel inner joinChooseCourse on Timetabel.SureCourseID=ChooseCourse.SureCourseIDwhere ChooseCourse.SureCourseID=SureCourseIDselect Arrange_id=Arrange_id from Timetabel where ( (RoomID =RoomID and TimeID=T
12、imeID ) or ( Timetabel.SureCourseID in ( select SureCourseID from ChooseCourse where UserID=UserID)and TimeID=TimeID ) /*检查教室和教师冲突*/if Arrange_id nullbeginselect * from Timetabel where Arrange_id=Arrange_id /*查询出数据*/endelse begin declare currentID int select currentID=count(*) from Timetabel where S
13、ureCourseID= SureCourseID and TermID= TermID if ( currentID =0)/*查看数据库中是否有重复*/ insert into Timetabel values (TermID,SureCourseID,RoomID ,TimeID) select * from Timetabel where Arrange_id=0endGO1登录界面 login.aspx public string UserLogin(string UserName,string password)String CheckLogin;int Permit=0;stri
14、ng 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) ;parameters0.Value =UserName;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 自动 系统 15
限制150内