一、题目摘要
题目简要说明:
选排课系统功能的设计上,选排课系统可以分为登录、排课和选课3个子系统。登录子系统区分排课者(也即系统的管理者)、教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的功能来使用这套系统。排课子系统主要供排课者使用,排课者可以在这里进行一切与排课有关的活动。选课系统主要供学生选课使用,在这里可以进行与选课有关的活动;教师可在教师反馈系统中对排课者提出反馈意见,供排课者在排课时可参考使用。
二、题目背景
1、国内国外发展
随着Internet的逐步发展,网络不仅仅是科研部门学术交流的平台,在其他的方面上也得到了很大的发展,尤其是在校园网的分支教务管理上,同时在教务管理的主要分之选课排课系统的应用上得到了较大的发展,国外针对此问题展开的研究较早。1963年C C Gotlieb 在他的文章《The Construction of Class-Teacher Time-Tables》中提出了课表编排的数学模型。这篇文章引起了人们对于选排课问题的重视。1976年S Even在其论文《The Complexity of Timetable And Multi Commodity Flow Problem 》中,第一次证明了课表问题是NP完全的。S Even的论证进一步地将人们对课表问题复杂性的认识提高到理论高度。
而国内对排课问题的研究较晚。1984年,清华大学在《清华大学学报》上发表了林漳希和林尧瑞在该课题上的实验性研究成果《人工智能技术在课表编排中的应用》。
如今国内软件市场上也有很多通用型的排课软件,例如“排课无忧” 、“排课高手”等等。这些通用软件往往无法满足学校的某些特殊要求。因此,针对学校的一些特殊要求,我设计并开发了基于校园网之子系统选排课系统。
2、需求背景分析
网上选排课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等学校开始实行的是学生的自主选课模式,而传统的教学模式:学生按照学校安排好的课程上课已经不能适应新型的教学方式,如果按照传统方式宣科,一方面浪费了大量的人力和物力;另一方面浪费时间以及在人为的统计过程中不可避免出现的差错的情况。从教师的角度来说,由于教师提出代课申请完成课程发布的工作,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,只要通过自己的电脑来操作即可,不必于奔波在教务处和办公室之间。基于此等原因从而提出网上选排课系统的研究进行实施与探讨。
3、主要技术JSP语言和Oracle数据库
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。 在传统的网页HTML文件中加入Java程序片段(Script let)和JSP标记(tag),就构成了JSP网页(扩展名为.jsp)。
Oracle数据库相对于其他数据库也有很多优点:
(1)无范式要求,可根据实际系统需求构造数据库。
(2)采用标准的SQL结构化查询语言。
(3)具有丰富的开发工具,覆盖开发周期的各阶段。
(4)支持大型数据库,数据类型支持数字、字符、大至4GB的二进制数据,为数据库的面向存储提供数据支持。
(5)具有第四代语言的开发工具(SQLformS、SQLREPORTS、SQL*MENU等)。
(6)具有字符界面和图形界面,易于开发。
(7)通过SQL*DBA控制用户权限,提供数据保护功能,监控数据库的 运行状态,调整数据缓冲区的大小。
(8)分布优化查询功能。
(9)具有数据透明、网络透明,支持异种网络、异构数据库系统。并行 处理采用动态数据分片技术。
(10)支持客户机/服务器体系结构及混合的体系结构(集中式、分布式、 客户机/服务器)。
(11)实现了两阶段提交、多线索查询手段。
正因于此,所以采用此数据库编程语言。
4、题目所采用的主要技术
服务器系统为Linux系统,前台采用JSP语言,后台采用sqlserver2000/Oracle数据库。
5、所应用技术的难点
(1) 选课系统设计
根据功能的不同可以将本系统划分为三个主模块,九个子模块:
一、用户登录子系统
操作对象:学生、教师、管理员。
用户登录子系统功能:用户登录时,首先要选择自己登录的类型,才能实现自己所需求的服务功能。即用不同身份登录系统会拥有不同的权限。
用户登录操作流程:首先用户应先输入账号(学号、教师号、管理员号)和密码,再选择登录的类型,如果相应的账号和密码正确,则顺利进入系统,如果账号或密码不正确,则提示用户登录失败。
二、学生选课子系统
操作对象:学生。
学生选课子系统功能:学生可以查询课表、查询课程详细信息(课程,教师)、选课和退课等操作。
学生选课操作流程:学生登录验证成功后,进入学生选课子系统,点击相应的课程号就可以直接选课。如果输入课程号或教师号,可以进行可选课程查询,同时,自己的选课表会显示出来,在选课版面还可以进行密码修改,退出系统。除此之外,学生还可以进入课表查询、课程查询和选课查询版面进行相应操作。
三、课程管理子系统
操作对象:管理员。
课程管理子系统功能:管理员可以进入排课系统,还可以进行课表查询、课程查询、选课查询,但不具有学生拥有的选课功能。
管理员操作流程:管理员登录验证成功,进入系统,即可以进行相应的操作,如进入排课系统,可以进行排课、发布选课信息、对学生的选课信息进行确认。
(2)排课系统编码与实现
首先,排课时设置了排课优先级:优先级最高的是公共课,因为公共课一般合班上课的班级个数较多,最容易产生时间冲突,优先级次之的是每周平均课时最多的课程,同样,因为平均课时多,选择时间时进行排课冲突的机会就大,最后是总课时最多的课程。
其次,产生的时间是在教师和所有上课的班级共同的空闲时间集合中产生,并且尽量保证时间选择上的均匀性,防止一周几次课集中于某一段时间。
再次,对教师的选择,一方面考虑到教师的时间限制(由教师确定一学期中第几周,每周哪天哪节课没空),另一方面,对教师设置排课级别,随着排课时间的增多,级别值就增大,从而再次被选择排课的几率就减小(此时要求同一门课程有多个教师讲授)。
最后,教室也设置了排课级别,同教师类似,这样便可以保证教室资源会得到合理而均匀有效地利用。
流程图如下:
(3)设计及连接数据库
数据库设计是本系统的起点,它的分析结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。它的基本任务是回答“系统必须做什么”的问题。至此,本阶段的主要任务有明确系统的开发目的,分析系统功能的具体要求,由此画出系统的数据库的E-R图。
三、题目任务
1、主要要求
开发一个校园网门户网站其中一个子系统之学生选课排课系统,由选课信息、教室信息根据排课原则生成。
选课信息数据库中包含:学生姓名、课程名称、每周所需课时、所在班级、任课教师姓名
教室信息数据库包含:教室名称、教室容纳人数
要求生成的课程表需要包含:班级名称、课程名称、上课时间、教室名称、任课教师姓名
2、时间要求
3月12日至3月16日。提交开题报告。
3月16日至5月中旬,完成毕业设计。
六、题目需求分析
1、功能需求分析
A、根据学生的所学专业、学校的教学大纲(开设的课程)、生成每个学生的选课信息;
B、学生的选课信息要求符合课程体系的实际需求,即先开课没有选修完成时,不允许选修后序课程,选修课程在专业方向上要根据专业类别设置课程的连带关系;
C、学生在累积有5门课,没拿到学分时,不允许选择新课。
D、学生未缴纳学费超过两门次时,不允许选课;
E、排课系统要根据教室情况、学生人数、每个学生选课的情况、教师的授课情况等条件自动排课、手动排课、半自动排课;可以设置不同的排课优先级。
2、生成结果标准
有良好的交互界面
1)新用户可以成功注册(以学号注册)
2)用户可以成功登陆
3)用户可以成功进行相关操作(选课操作)
4)管理员可以成功登陆管理员界面(及相关操作)
3、所需开发工具
JSP语言(掌握程度一般)
Eclipse,JBuild (熟练掌握)
Oracle数据库SQL语言(一般了解)
Linux系统web服务器(初步了解)
4、需要的主要测试条目
(1)用户登录界面(题目:学生选课排课系统)
(2)学生登录功能
(3)管理员登录功能
(4)学生选课功能
(5)管理员对学生选课信息进行修改与删除功能
(6)管理员上传选课信息
(7)根据选课信息进行排课
七、题目计划安排
1、开发进度,以周为单位进行安排。(只需安排系统开发阶段的内容,论文写作不算在内)
开发时间 开发内容 完成情况
第一周(3.12—3.18) 开题报告
第二周(3.19—3.25) 需求分析、概要设计、数据库设计
第三周(3.26—4.1) 总体设计开始
第四周(4.2—4.8) (选课系统实现阶段)用户登录模块
第五周(4.9—4.15) (选课系统实现阶段)学生选课子系统
第六周(4.16—4.22) (选课系统实现阶段)课程管理子系统
第七周(4.23—4.29) (排课系统实现阶段) 教师管理子系统
第八周(4.30—5.6) (排课系统实现阶段)教室管理子系统
第九周(5.7—5…13) (排课系统实现阶段)课程安排子系统
第十周(5.14—5.20) (排课系统实现阶段)排课管理子系统
第十一周(5.21—5.27) 测试
第十二周(5.28—6.3) 论文
2、测试计划(测试内容条目,时间,测试结果)
测试条目 时间 测试结果
用户登录模块
学生选课子系统
课程管理子系统
教师管理子系统
教室管理子系统
课程安排子系统
排课管理子系统
八、参考文献
1、主要的参考书籍和资料