




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20082009 学年度课程设计20082009学年度WEB 程序设计课程设计班级: 05网络3班 学号: 090205338 姓名: 周秋艳 2008年 12月 17日 基于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 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开销。三、 系统功能模块分析(分)详细分析各功能模块之间的关系,以及各功能模块下的子模块构成。1 系统总体模块分析如下2 排课各类基本信息1 信息管理排课所需信息已排课表信息 3 输出排课教师模块登录模块注销模块管理员模块2 登陆子模块分析如下返回到登录页面进入相应的角色页面登录页面登录校验用户输入用户名,密码,并选择自己的角色点击进入用户succeedfailed3 管理员子模块分析如下管理员 教师 班级 1.1 添加 教室需添加信息 课程1.3 删除 详细信息 教学任务查询关键字 1.2 查询 学院 专业系别 教室类型 需删除信息 4 教师子模块分析如下教师查看课程表查看自己被分配的课程课程详细信息5 注销子模块分析如下用户注销点击注销返回到登录页面四、 数据库设计和建立(分)、 与前面功能模块的划分相一致的建立合理的关系数据库,详细说明各关系表的属性与描述(每张关系表适当添加说明)。数据库名称是PK,此数据库包含10张关系表,它们分别是:表1:ChooseCourse表2:ClassInfo表3:CourseGeneral表4:Department表5:RoomInfo表6:Speciality表7:TermInfo表8:TimeInfo表9:Timetabel表10:UserInfo、 建立数据库及表之间的关系图。、 说明系统与数据库的连接方式。 此系统使用的数据库是SQL Server2000,连接数据库时用的方法是在系统配置文件Web.config中添加一连接字符串: 五、 主要界面及相关代码分析(分) 通过系统目标和数据分析创建好数据库后,接下来进行系统功能的开发和实现。该系统流程图如图所示。 系统中采用的主要技术1用ASP.NET打开数据库的方法ASP.NET程序中通过ADO.NET存取数据库的数据ADO.NET是以离线的数据为基础的,你可以在本地的机器上对数据集进行数据的添加、删除或修改,然后更新回真正的数据库。具体实现过程为以下几步: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 ds=new DataSet();mycommand.Fill(ds,reg);数据连接成功后,利用Sql的插入(INSERT)、删除(DELETE)和更新(UPDATE)命令就可以很方便地实现数据库的管理。2.第二种方案当然我们也可以通过配置web.config来实现2异常的捕获与控制为了提高系统的交互性与运行的可靠性,系统对各类操作异常和运行异常进行捕获与控制。操作异常是利用ASP.NET提供的几个验证控件和设置下拉框来实现的,如录入试题时必须先选择章节、知识点、题型,采用下拉框的形式确保试题属于某一知识点;运行异常捕获是使用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 DetectArrangeCollisionSureCourseID int,RoomID int,TimeID int,TermID 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=TimeID ) 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 SureCourseID= 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;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) ;parameters0.Value =UserName;parameters1.Value =password;parameters2.Direction=ParameterDirection.Output;parameters3.Direction=ParameterDirection.Output;parameters4.Direction=ParameterDirection.Output;int rowsAffected;RunProcedure(sp_UserLogin,parameters,out rowsAffected);/ result: NoUser/ success,or nouser,or pswerror,/ Permit, 如果角色还没分配怎么办if (parameters4.Value!=DBNull.Value)Permit= Convert.ToInt32(parameters4.Value);/设没有这个老师,2008.9.26if (parameters2.Value!=DBNull.Value)UserID=Convert.ToString(parameters2.Value);CheckLogin=new string UserID, (String)(parameters3.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.Tables0.Rows.Count; i+)SqlCommand coure = new SqlCommand(select CourseName,Period from CourseGeneral where CourseID= + ds.Tables0.Rowsi0 + , 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()field1j = dr0.ToString();j+; /获得该课程给定时间的每个可用场地,附值给数组field1jdr.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()class1k = dr10.ToString();k+;/获得确定,附值给class1kdr1.Close();Random rnd = new Random();for (int m =0; m10; m+)/随即调换class1数组里面的成员int x = rnd.Next(j);/得0k的随机数r = field1x;field1x = field10;/第一个跟第x个调换field10 = r;for (int n = 0;nk;n+)/下面为更新插入数据库的操作SqlCommand cm=new SqlCommand(DetectArrangeCollision,con);cm.CommandType=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.ParametersSureCourseID.Value=Convert.ToInt32(class1n).ToString().Trim();if(Convert.ToInt32(field1n)!=0)cm.ParametersRoomID.Value=Convert.ToInt32(field1n);elseint n1=rnd.Next(j);cm.ParametersRoomID.Value=Convert.ToInt32(field1n1);cm.ParametersTimeID.Value=rnd.Next(24)+1;cm.ParametersTermID.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()field1j = dr0.ToString();j+; /获得该课程给定时间的每个可用场地,附值给数组field1jdr.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()class1k = dr10.ToString();k+;/获得确定,附值给class1kdr1.Close();Random rnd = new Random();for (int m =0; m10; m+)/随即调换class1数组里面的成员int x =rnd.Next(j);/得0k的随机数r = field1x;field1x = field10;/第一个跟第x个调换field10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 刊物订购合同范例
- 劳务用工协议 合同范例
- 关于给业务合同样本
- 中介赠送服务合同标准文本
- 公园招商转让合同标准文本
- 公司多人股东合同样本
- 关于短期劳务合同样本
- 办公场地购买合同样本
- 劳务派遣工资合同样本
- ktv转让协议合同标准文本
- (2024版)机动车查验员理论知识考试题库及答案
- 铁路机务知识培训课件
- 人工智能在制造业中的应用2024年智能工厂的新范式
- 2024智能AI中台白皮书
- 《万以内数的认识》大单元整体设计
- 铝加工(深井铸造)企业重点事项解读(米)
- 幼儿游戏与社会性的发展
- (医学课件)特应性皮炎
- 2024年安徽合肥文旅博览集团招聘笔试参考题库含答案解析
- 小学各年级 小学一年级 了解自己的优点和弱点 主题班会
- 产后出血预防与处理策略
评论
0/150
提交评论