课表编排是一个涉及到多种因素的典型的组合规划问题,它要保证在课程中安排教师,学生,教室不能产生冲突[13](所谓冲突,就是将需要上不同课程的两个或多个班级安排在了同一地点,同一时间,或为同一老师在同一时间安排了两门或多门课程等情况),并且要满足教师的要求和教室资源等约束条件。
目前,国内的部分高校仍然采用手工排课的方法。手工排课工作量大,排出来的课表不宜调节。随着我国教育体制改革的深入,学生人数的不断上升,课程设置不断向深度和广度发展,手工排课的缺点越来越突出。由于计算机具有运行速度快,处理能力强等特点,很自然的运用到这一领域中。用计算机进行排课能够快速的得到满足约束条件的可行结果,具有排课时间短,人力省和质量高的优点,不但能使教务人员从繁杂的排课任务中解脱出来,而且对于推进教学的发展也起到非常重要的作用。
实验排课系统是实验教学管理系统的一部分,它的出现,大大的简化了实验教学人员的排课的工作量。对每一个学校的实验教学而言,新学期开始,首当其冲的任务就是该学期实验课表的安排问题,而课表安排又涉及到班级,教师,实验室,时间等学校方方面面的因素,如何排出一个好且适用的课表,是一项复杂的系统工程,在当今信息技术及计算机网络技术高度发到的今天,充分利用和发挥计算机的优势,将大量复杂的判断和运算交给计算机来做,排课人按照教学计划设置好学校基本情况和排课要求,让计算机排出课表,之后做些适度手工调节。系统主要是解决实验课表的自动编排功能,根据实验教学计划和排课的种种条件,来帮助学校来完成实验课表的编排
传统的在线排课方式是在线下实体进行的,教师需要到线下进行实际的排课信息,而随着学院智能排课的不断普及,其性能、智能排课的透明化,越来越多的学院也开始出于各种各样的理由而热衷网上发展 ,传统的线下排课模式已经无法满足人们的需求了。
互联网的产生,带来了网络的再次高速发展,人们的生活得到了翻天覆地的变化。人们可以随时随地的享受互联网带来的方便快捷,在生活工作中的方方面面的需要都能在网络上实现,比如排课、课程表、班级等等。也就是说网络成了人们目前最直接、最方便、最轻松的接入口。
在当今世界,互联网快速发展的现在,如何利用互联网创造更简单高效的生活,这是我们首要讨论的。需要在线排课信息管理相关网站,一方面使得管理员可以对在线排课的信息进行及时更新和信息化的管理,可以较为容易的获取排课信息、课表信息、教室管理、课程管理、学期管理、班级管理、等等。另一方面教师可以利用互联网更直观的查看排课的相关信息。与传统的排课方式相比,教师排课的方式更加轻松,系统的操作更加的准确,这是一种潜在趋势,或许可以有效加快在线排课的普及情况。
<?php
error_reporting(E_ALL ^ E_NOTICE);
$conn=@mysql_connect("localhost","root","root") or die("数据库链接失败".mysql_error());
mysql_select_db("daizu",$conn) or die("数据库链接失败".mysql_error());
mysql_query('set names utf8');
//设置时区
date_default_timezone_set('asia/shanghai');
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('File_ROOT', SYS_ROOT."/upload/");
define('IMG_ROOT', SYS_ROOT . "/upload/");
@extract($_POST);
@extract($_GET);
function getfirst($sql)
{
$res=mysql_query($sql);
$rows=mysql_fetch_array($res);
return $rows;
}
//
function getcount($sql){
$res=mysql_query($sql);
return mysql_num_rows($res);
}
function get_name($id,$table)
{
$sql="select * from $table where id='$id'";
$rows=getfirst($sql);
return $rows[name];
}
//遍历创建目录
function Remkdir($path) {
if (!file_exists($path)) {
Remkdir(dirname($path));
@mkdir($path, 0777);
}
}
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
$n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$inputname];
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
Remkdir( IMG_ROOT . '/' . "{$type}/" );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
Remkdir( dirname(IMG_ROOT .'/' .$image) );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' .$image;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $image;exit;
return $image;
}
return $image;
}
//获取文件后缀名
function get_extend($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//文件上传实现
function upload_file($inputname, $file=null)
{
$year = date('Y'); $day = date('md');
$z = $_FILES[$inputname];
$file_ext=get_extend($z['name']);
$n = time().rand(1000,9999).".".$file_ext;
if ($z && $z['error']==0) {
if (!$file) {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' . $file;
} else {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' .$file;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $file;exit;
return $file;
}
return $file;
}
//分页函数.
function get_pager($url, $param, $count, $page = 1, $size = 10)
{
$size = intval($size);
if($size < 1)$size = 10;
$page = intval($page);
if($page < 1)$page = 1;
$count = intval($count);
$page_count = $count > 0 ? intval(ceil($count / $size)) : 1;
if ($page > $page_count)$page = $page_count;
$page_prev = ($page > 1) ? $page - 1 : 1;
$page_next = ($page < $page_count) ? $page + 1 : $page_count;
$param_url = '?';
foreach ($param as $key => $value)$param_url .= $key . '=' . $value . '&';
$pager['url'] = $url;
$pager['start'] = ($page-1) * $size;
$pager['page'] = $page;
$pager['size'] = $size;
$pager['count'] = $count;
$pager['page_count'] = $page_count;
if($page_count <= '1')
{
$pager['first'] = $pager['prev'] = $pager['next'] = $pager['last'] = '';
}
else
{
if($page == $page_count)
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = '';
$pager['last'] = '';
}
elseif($page_prev == '1' && $page == '1')
{
$pager['first'] = '';
$pager['prev'] = '';
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
else
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
}
return $pager;
}
?>
摘 要I
ABSTRACTII
目 录III
摘 要I
第1章 导言1
1.1发展现状1
1.2系统开发背景1
1.3本设计的主要内容2
第2章 关键技术介绍3
2.1关于 HTML的简介3
2.2 PHP的技术5
2.2.1 PHP 的简介5
2.2.2 PHP开发平台6
2.2.3 PHP文件的组成7
2.3 进行访问数据库的实现方法7
2.4 MYSQL数据库8
2.4.1 关于MYSQL解释8
2.4.2MYSQL特点特性9
2.4.3 MYSQL数据库应用环境9
2.5APACHE解释10
第3章 系统分析与设计11
3.1概述11
3.2需求的分析11
3.2.1需求的分析概述11
3.3 系统设计11
3.3.1系统功能的设计11
3.3.2系统的用例分析12
3.3.3数据库设计13
第4章 系统实现16
4.1 网站设计16
4.1.1登录模块16
4.1.2管理员主页面模块20
4.1.3首页模块21
第5章系统调试跟系统测试22
5.1 程序的调试22
5.2 一般程序的调试22
5.2.1登录测试22
5.2.2增加测试22
5.2.3测试查询23
5.2.4主页面的登录模块测试23
结 论25
参考文献26
致 谢27