目 录
摘 要 I
Abstract II
1绪论 1
1.1选题背景及意义 1
1.2国内外研究现状 2
1.3研究主要内容 2
2系统工具 4
2.1 Android平台介绍 4
2.2 Android的系统框架 6
2.2.1 Android的特性 7
2.2.2 Android的开发环境的搭建 8
2.2.3 sqlite数据库 9
2.3 Hbuilder简介 12
3系统分析 13
3.1需求分析 13
3.2系统功能分析 14
3.3系统开发环境 14
4系统设计 16
4.1设计思想 16
4.2系统功能设计 16
4.3数据库设计 17
5系统实现 20
5.1登录系统设计 20
5.2主界面及课表生成设计 22
5.2.1班级管理设计 22
5.2.2班级课程处理设计 23
5.2.3课表生成部分设计 24
5.2.4报表输出功能设计 26
5.4其它模块设计 27
6系统测试 29
6.1软件测试的重要性 29
6.2测试实例的研究与选择 29
6.3系统运行情况 30
6.4 系统评价 33
总 结 34
参考文献 35
致 谢 36
1.3研究主要内容
本题目的主要内容是设计一个高校自动排课系统:本系统基于APP,每位教师能够在手机APP中录入的排课要求,生成满足教师排课要求的课表,最后将课表以图片与文字的方式发送至各教师手机终端中。
高校自动排课APP主要是针对学校的实际排课情况进行设计的。通过对学校的排课情况进行深入了解,并查阅和浏览了相关资料、软件,在此基础上我们对系统需求进行较彻底的分析,考虑到算法的复杂性及开发时间的限制,我们将排课系统定位于算法实现简单,但实用性强且人性化的系统,所以在设计该排课系统时应当满足如下要求:
(1)掌握学校所有课程和教师的信息,包括教室,班级,任课老师及课程时间。
(2)提供灵活的浏览和查询功能,可查看某个班级课程信息。
(3)可对课程信息和教师信息进行删除和编辑。
(4)可对课程进行变动管理和自动排课功能。
(5)在自动排课完成后,将排课异常信息给予反馈。完全依赖自动排课排出的课表不能完全符合客观需求,同时我们在算法及优先级确定的精确度方面的水平也有限,因此,增加手动调节功能,以进一步确保合理性。
3.2系统功能分析
1 掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。
2 针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。
3 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。
4 可以对课程进行变动管理。既可以手工排课,又可以实现自动排序功能。
5 帮助系统维护可以实现:操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。
6 提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。
7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里)。
8用户管理:设置两个级别用户:管理员和普通用户,管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户)。
3.3系统开发环境
(1)操作系统:Windows10
(2)数据库:sqlite
(3)Web 服务器 :IIS 6.0
(4)浏览器:IE 7.0,推荐使用360安全浏览器
4系统设计
4.1设计思想
本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。
数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。
图4.1 数据管理