java -自动排课(遗传算法)包含全部源码以及数据库.

1.0 搭建环境:eclipse + mysql

需要代码的可以加QQ969684301联系,请备注:需要自动排课源码,本博客禁止转载,维权必究):

2  系统分析

2.1  需求分析

对于任何开发系统而言,系统的需求分析是第一步,更是至关重要的一步。任何开发系统都需要通过需求分析来把整个系统的功能与性能的概念描述为详细的全系统需求规格说明,为以后的开发工作打下扎实的基础。当然,具体的说系统需求分析就是在描述系统的需求,目的在于将提出要求的用户与接受系统开发的人员之间达成一种共识,让彼此能够相互理解与沟通[1]。

2.1.1  研究目标

(1)掌握学校所有的课程和教师信息,包括教室,班级,上课老师及上课时间。

(2)提供查询功能,可以查看某个班级所有课程信息。

(3)可以对课程信息和教师信息进行查询和删除。

(4)可以对课程进行手动排课和自动排课功能。

2.1.2  具体模块功能分析

根据上述研究目标,本排课系统的主要功能大致包括:通过计算机可以进行排课管理,实现自动化排课,即无纸化排课,并且能了解、分析学校课程和教师资源的现状,能够充分的利用学校教室、教师等有限资源。考虑到在大学内课程变化较多,灵活性也较大,所以在功能设计上,我们将采取自动与手动相结合进行排课,以达到对课程的安排的相对合理性。

智能排课系统的整体结构:整个系统分为C/S结构的教师与教务管理员登录功能、排课功能、课程管理功能、教室管理功能、教师管理功能、B/S结构的学生查课表功能与选课功能。

登录模块:在C/S结构中,登入系统有对角色的分类与合法性的验证,并且根据不同的类型角色分配不同的权限;在B/S结构中,登入系统中只需要验证用户的合法性即可。

排课模块:包括手动排课、自动排课、查看全部课程信息、调整课程。

其他模块:主要是管理学生本人的信息、教师本人的信息、上课教室的信息、教学课程的信息、各个班级的信息等。大体是对这些信息进行增加、查找、修改、删除等操作。

2.1.3  设计系统时考虑以下各种问题

(1)要求做到每个教师、班级、实验室等各种资源不冲突,这是实验室实验教学排课系统最基本的原则。

(2)学生上课时间分布的均匀性。时间的均匀性是指在一个星期内同一门课程在一周上课天数安排不易过多。

(3)学生课程节数分布的均匀性。这是为了保证一个专业的课程安排在一周内不总是上一天内的第一、二节或者总是上最后一、二节。

(4)可以将课表导出到word 中,并进行打印操作。

(5)可以手工调整课程的时间。

2.2  系统流程分析

智能化的校园排课系统可以用于各大高校完美的解决排课的难题。在高校教务管理问题中常常会有如下几个个方面的目标:掌握学校所有的课程和教师信息,包括教室,班级,上课老师及上课时间;提供查询功能,可以查看某个班级所有课程信息;可以对课程信息和教师信息进行查询和删除;可以对课程进行手动排课和自动排课功能。在本系统将很好的解决这些问题。

本系统分为俩大结构部分:B/S结构的学生操作部分,C/S结构的教职工与管理员的操作部分。

具体B/S结构部分(见图2.1)设计目标如下:

(1)系统界面友好,操作简单,能轻松上手;

(2)实现对院校的课表按条件查询;

(3)实现学生的选修课的报名;

(4)实现按条件导出、打印课表。

    1. 排课问题的描述

3.2.1  排课问题的约束条件

排课问题中即有一定的硬约束条件,也存在一些软的约束条件。硬的约束条件当然都些是要求系统必须满足的条件,而一般的硬约束条件是协调处理好课程、学生、教师、教室、时间之间的多维冲突;软约束条件则是在满足硬约束条件的大前提后要考虑到的系统使用的实际环境的约束条件,多数是由多方面的具体学校实际情况而孕育出来的约束条件。软约束条件也不是要求系统必须满足的,但尽可能多的满足这些条件会使系统排出较优解的课表。这样才可以使排出的课表能够更加合理,更为人性化需求[2]。

常用的硬约束条件有:

(1) 所有的校方开出的课程都必须被安排;

(2) 除了可以合班上的课程以外,在同一时间内,同一个教室只能被一个班级使用;

(3) 除了选修课程以外,在同一时间内,一个班级只能安排一门课程;

(4) 在同一时间内,一个教师只能被安排在一个教室上一门课程;

(5) 同一个教师所上的所有不同的课程不能安排在同一时间上; 

(6) 两个班的不同课程不能在同一个时间被安排在同一个教室;

(7) 教室的类型必须满足课程的要求;

(8) 教室的最大容纳人数必须大于安排在该教室上课的学生人数;

(9) 不同课程对时间段的不同要求,如体育课只能安排在白天上,选修课程只能安排在晚上上等[2]。

常用的软约束条件有:

(1) 同一班级的同一门课程的上课时间尽量间隔均匀些。例如,某班级的高等数学课在一周内需要安排俩次授课。两次授课时间的安排时间就需要尽量间隔一天或者一天以上; 

(2) 每个班级在一周中的课程分布要均匀; 

(3) 要尽量在较好的上课时间段安排课程; 

(4) 对特定的课程、班级、教室、教师的单双周上课时间点尽量匹配,合理安排、节约教学资源[2];  

以下为数据库截图

 

以下为本系统的截图

系统有三个角色登录 : 管理员 ,老师,学生

 

专业录入:

班级列表:

教师列表

课程管理:

 

教师查询:

 

自动排课:

 

排课查询:

 

用户管理:

 (需要代码的可以加QQ969684301联系,请备注:需要自动排课源码,本博客禁止转载,维权必究)

  • 10
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看见太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值