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