系统设计 3.1实现功能 1 掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。 2 针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。 3 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。 4 可以对课程进行变动管理。既可以手工排课,又可以实现自动排序功能。 5 帮助系统维护可以实现:操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。 6 提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。 7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里) 8用户管理:设置两个级别用户:管理员和普通用户,管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户) 3.2功能与模块的设计 3.2.1 设计思想 本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。 数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。 3.2.2 各模块设计与分析 此处中各模块的设计与分析在以下各模块数据流图与程序中同步讲解。 3.2.3 系统ER图 系统E -R图说明: 本系统是一个排课管理系统,主要是根据班级为单位,利用班级与课程来进行排课。 班级与课程是一对多的关系,班级不能重复,但是课程可以随意出现任何班级。 班级与班级课程信息之间也是一对多的关系,一个班级,可以有很多不同的课程。 班级与临时生成课表是一对多的关系,一个班级,只能有一个课程表,而排列的方式都同样由班级获得。 其余的数据库建立都是在让系统方便使用的基础上建立的,还有一个无需用户手动添加数据的,做为内部参数来使用的表,这里就不用标出的了。 3.2.4 数据字典 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实完善的。明确地需求收集和分析作为数据库设计的第一阶段是十分重要的。这一阶段收集到的基础数据(用数据字典来表达)和一组数据流程图(Data Flow Diagram,简称DFD)是下一步进行概念设计的基础。 以下是本系统的数据结构,因实现使用方便的特点,数据库中的各字段列表直接用中文来表示,所以数据字典在以下数据库设计中已经没有什么太大的必要。 详见数据库的设计: 3.3数据库设计 数据库的概念数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,像记录、域等。新建一个数据库创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。创建一个数据库的大体思路如下: 1. 标识需要的数据; 2. 收集被标识的字段到表中; 3. 标识主关键字字段; 4. 绘制一个简单的数据图表; 5. 规范数据; 6. 标识指定字段的信息; 7. 创建物理表。 3.2修改已建的数据库 数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Jsp 创建的程序来完成,下面的章节将详细描述实现的具体方法。实现数据库之间的联系数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述数据库表示什么以及在数据库中如何与其它的库建立关系。 在众多的数据库中,Microsoft 的Sqlserver是操作最简单,使用最为广泛的一种数据库软件,在单机上运行有着方便、实用、操作员要求低等特点。在这里,我选择了使用Sqlserver数据库管理系统,来开发一个小型的销售管理系统。 在系统的数据库设计中,应遵守以下的原则: ①数据结构的合理性。即数据文件的合理组织,数据元素的合理归类和划分,以及数据项的合理描述。 ②数据存储的安全性。提高安全性的最为有效的措施是增加数据的冗余,而数据的大量冗余往往为维护数据的一致性带来了困难。对此,根据实际需要进行合理取舍,在尽量降低冗余的前提下,确保数据的安全性和可靠性。 ③维护和管理方便。存储结构的设计,首先应保证对数据进行管理和维护上的方便,它是提高系统运行效率的基础。 3.4数据表设计 在使用Sqlserver创建“排课管理系统”数据库系统中需要建立的数据表有: 1 登陆 字段 数据类型 字段大小 必填字段 索引 允许为空 用户名 文本 50 是 无 否 密码 文本 50 否 有(无重复) 否 权限 文本 50 是 无 否 2 课程名 字 段 数据类型 字段大小 必填字段 索引 允许为空 课程名 文本 4 否 有(无重复) 是 教师姓名 文本 50 是 无 否 3 课程信息表 字 段 数据类型 字段大小 必填字段 索引 允许为空 课程名 文本 50 否 有(无重复) 否 课节数 数字 长整型 是 无 是 每周课数 数字 长整型 是 无 否 需要周数 数字 长整型 是 有(有重复) 否 任课老师 文本 50 否 无 否 两节课累排 文本 50 否 无 否 课程分布 文本 50 否 无 否 所属班级 文本 50 否 无 否 4 临时生成表 字段 数据类型 字段大小 必填字段 索引 允许为空 时间段 文本 50 是 无 是 星期一 文本 50 否 无 是 星期二 文本 50 否 无 是 星期三 文本 50 否 无 是 星期四 文本 50 否 无 是 星期五 文本 50 否 无 是 星期六 文本 50 否 无 是 星期日 文本 50 否 无 是 所属班级 文本 50 否 无 是 自动编号 自动编号 是 无 否 5 课程占用表 字段 数据类型 字段大小 必填字段 索引 允许为空 班级 文本 50 是 无 否 占用 文本 50 否 有(无重复) 否 6 系统日志 字段 数据类型 字段大小 必填字段 索引 允许为空 用户名 文本 50 是 无 否 时间 文本 50 否 无 否 操作记录 文本 255 否 无 否 7 系统设定 字段 数据类型 字段大小 必填字段 索引 允许为空 每天课数 数字 长整型 是 无 否 8 占用 字段 数据类型 字段大小 必填字段 索引 允许为空 教师姓名 文本 50 是 无 否 占用 文本 50 否 无 否 系统实现 设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程: (1) 检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入. (2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面 (3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体. 4.2 主界面中课表生成部分流程图 4.2.1 班级管理流程图 模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。 4.2.2 班级课程处理流程图 模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。 注:已生成课程表的返回:由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。 4.2.3 课表生成部分流程图 模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。 (1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。 (2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。 (3)穷举法列出以上两者之间的共通点,可用点。 (4)最后通过循环随机选择来实现课程的定位与排列。 (5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。 模块设计说明:此处采用了两种输出方式,第一种是普通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。 4.3其它模块设计说明(用户管理模块,时间段模块,课程管理模块) 此处几个模块是经过资源优化将其与班级管理整合在一起的,此处工作流程基本上与班级管理的流程相同。 4.4 调课功能实现及设计说明 由系统自动排课生成的并不一定能完全达到用户所想需要的效果,虽然在程序中解决了系统冲突的出现,但是因为某些原因而出现临时的原因都需要进行调课,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整,也便如使用. 此处调课是事先获取系统有用资源空间,并在图表中进行背景色变色显示,提示用户该门课程可以调动至变色显示的地方,主要是通过班级的课程占用与该教师的排课占用情况进行对比,寻找有利和适用的位置,并等待用户进行调课操作. 执行调课:在进行以上操作后,计算机自动等待用户选择系统列出的调课点,在选择某调课点后,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况,并同时清除图表中的资料,将其重新放置到新位置,并修改新地点的资源占用情况,最后将图表的可调位置背景色还原回正常状态. 源文件
版权所有© 帮我毕业网 并保留所有权利