APP下载

基于B/S模式的课表转换系统的设计与实现

2009-04-03孙立友

中国教育信息化·高教职教 2009年3期
关键词:S模式

李 红 孙立友

摘 要:课表转换系统使用PHP语言,开发出了大课表生成页面、教师课表生成页面、全部教师课表生成页面、教师课表查询界面。本系统大幅度减化了教务部门排课人员的手工劳作,充分使用信息技术的手段架起了教务管理部门和各位教师之间的桥梁。

关键词:课表转换 B/S模式 PHP语言 MySQL数据库系统

中图分类号:TP311.52 文献标识码:B 文章编号:1673-8454(2009)05-0045-04

一、系统目标

课表转换系统的主要目标是高效地实现课表由全院或全系的大课表产生分支,生成各位教师的任课课表、班级课表,并能发送到打印机打印,简化教务管理部门在下发课表时的手工操作。系统同时实现了班级课表、教师课表的局部查询功能,为使用人员提供了便捷的查阅方式。系统还提供了修改的功能,对每班课表的日课程建立了超链接,开通了修改的通道,便于及时发现错误予以纠正。本系统提高了课表生成的效率与质量,大幅度减少了产生错误的几率,将传统的手工劳作提升为质优效高的管理服务。

二、系统的体系结构及主要功能

本课表转换系统基于B/S模式,使用三层结构模型。前端为瘦客户端,安装IE游览器即可,中间层为应用层,放在Apache服务器上,后台数据库使用MySQL,数据信息存放在客户端的专用存储器上。这三层结构模型的系统处理过程如图1所示。

在这种模式下开发课表转换系统,实现了以下三种功能。

1.课程信息采集功能

在全院或全系大课表已经妥善安排的基础上,通过信息采集页面,实现课表信息的获取。本功能在学期初或上学期末执行完成,实现课程信息的一次性批量采集。采集界面如图2所示。

2.错误信息修改功能

对于课程信息采集过程中出现的错误情况,系统提供了补救措施,对于日课程,建立了错误的超链接,可以点击修改页面直接修改错误信息点,界面如图3所示。

3.便捷的查阅功能

本系统查阅项目全面,包括查看班级课表、全部教师课表、某位教师的课表。良好的查询界面与查询功能的实现为使用者提供了很大的便捷。单击相关查询后的查询结果如图4所示。

三、数据库设计

数据库采用MySQL,它提供了强大的数据库管理功能,能够方便、灵活地完成数据库应用中建立数据库和数据表、查询和更新等各种操作。MySQL是PHP开发工具开发网站的有力支持,二者往往并驾齐驱,能开发出内容丰富、界面新颖的页面。本系统使用的数据表有Teacher表和Class表。Teacher表有ID和Name字段。Class表的字段如图5所示。

四、主要存储结构的设计及代码实现

本课表转换系统本着实用、稳定和技术先进性的原则,系统使用PHP语言开发,选用MySQL数据库。

1.大课表的生成

这部分的主要功能用于信息采集。这一部分信息的采集正确与否决定着后面班级、教师课表产生的准确性,模块的代码如下:

<?

include("opendata.php");

$sql="select * from class";

$records=mysql_query($sql);

$lastp=ceil(mysql_num_rows($records)/20);

if ($pageno==0 or $pageno>$lastp)

$pageno=$lastp;

$numf=$pageno*20-19;

$numl=$numf+19;

if($pageno==1)

$prep=1;

else

$prep=$pageno-1;

if($pageno==$lastp)

$nextp=$lastp;

else

$nextp=$pageno+1;

$sql="select * from class where id between '$numf ′ and ′ $numl′ ";

$records=mysql_query($sql);

?>

2.班级课表的生成

本模块通过循环依次将数据库中的数据提取出来,以规范的格式生成班级课表,模块的代码如下:

<?

while(list($class,$teacher,$classroom,$mon1,$mont1,$mon2,$mont2,$mon3,$mont3,$mon4,$mont4,$tue1,$tuet1,$tue2,$tuet2,$tue3,$tuet3,$tue4,$tuet4,$wed1,$wedt1,$wed2,$wedt2,$wed3,$wedt3,$wed4,$wedt4,

$thu1,$thut1,$thu2,$thut2,$thu3,$thut3,$thu4,$thut4,$fri1,$frit1,$fri2,$frit2,$fri3,$frit3,$id,)=mysql_fetch_row($records))

{

echo "<font color=red size=4><center>北京信息职业技术学院课程表</font>

<table border=0 width=450>

<tr><tdalign=left><font color=red size=2 >".$class."</font></td>

<tdalign=right><font color=red size=2 >班主任:".$teacher."</font></td></tr>

</table>";

echo"

<table border=1 width=450 >

<tr><td></td>

<tdalign=center size=2>1-2节</td>

<tdalign=center size=2>3-4节</td>

<tdalign=center size=2>5-6节</td>

<tdalign=center size=2>7-8节</td>

</tr>

<tr><td></td>

<tdalign=center size=2>8:10-9:50</td>

<tdalign=center size=2>10:15-11:55</td>

<tdalign=center size=2>13:00-14:40</td>

<tdalign=center size=2>14:50-16:20</td>

</tr><tr><td>星期一 </td>

<tdalign=center size=2><center>".$mon1."<br><center>".$mont1."</td>

<tdalign=center size=2><center>".$mon2."<br><center>".$mont2."</td>

<tdalign=center size=2><center>".$mon3."<br><center>".$mont3."</td>

<tdalign=center size=2><center>".$mon4."<br><center>".$mont4."</td>

</tr><tr><td> 星期二 </td>

<tdalign=center size=2><center>".$tue1."<br><center>".$tuet1."</td>

<tdalign=center size=2><center>".$tue2."<br><center>".$tuet2."</td>

<tdalign=center size=2 bgcolor=red><center>".$tue3."<br><center>".$tuet3."</td>

<tdalign=center size=2 bgcolor=red><center>".$tue4."<br><center>".$tuet4."</td>

</tr><tr><td>星期三 </td>

<tdalign=center size=2><center>".$wed1."<br><center>".$wedt1."</td>

<tdalign=center size=2><center>".$wed2."<br><center>".$wedt2."</td>

<tdalign=center size=2><center>".$wed3."<br><center>".$wedt3."</td>

<tdalign=center size=2><center>".$wed4."<br><center>".$wedt4."</td>

</tr><tr><td>星期四</td>

<tdalign=center size=2><center>".$thu1."<br><center>".$thut1."</td>

<tdalign=center size=2><center>".$thu2."<br><center>".$thut2."</td>

<tdalign=center size=2 bgcolor=red><center>".$thu3."<br><center>".$thut3."</td>

<tdalign=center size=2 bgcolor=red><center>".$thu4."<br><center>".$thut4."</td>

</tr><tr><td>星期五</td>

<tdalign=center size=2><center>".$fri1."<br><center>".$frit1."</td>

<tdalign=center size=2><center>".$fri2."<br><center>".$frit2."</td>

<tdalign=center size=2><center>".$fri3."<br><center>".$frit3."</td>

<tdalign=center size=2></td>

</tr>

</table>";

}

?>

3.全部教师课表的生成

教师每学期课程的安排情况,均来自于教务管理的信息。本课表转换系统能根据全院或全系的大课表生成全部任课教师的子课程表,本模块的部分程序代码如下:

<?

……

$sql="select * from class where mont1=′$name′ ";

$records=mysql_query($sql);

$records=mysql_query($sql);

while(list($class,$teacher,$classroom,$mon1,$mont1,$mon2,$mont2,$mon3,$mont3,$mon4,$mont4,$tue1,$tuet1,$tue2,$tuet2,

$tue3,$tuet3,$tue4,$tuet4,$wed1,$wedt1,$wed2,$wedt2,$wed3,$wedt3,$wed4,$wedt4,$thu1,$thut1,$thu2,$thut2,$thu3,$thut3,

$thu4,$thut4,$fri1,$frit1,$fri2,$frit2,$fri3,$frit3,$id,)=mysql_fetch_row($records))

$monn1=array("$mont1","$mon1","$class");

……

{

echo "<font color=red size=4><center>北京信息职业技术学院课程表</font>

<table border=0 width=450>

<tr>

<tdalign=left><font color=red size=2 >".$name."老师</font></td></tr>

</table>";

echo"

<table border=1 width=450 >

<tr><td></td>

<tdalign=center size=2>1-2节</td>

<tdalign=center size=2>3-4节</td>

<tdalign=center size=2>5-6节</td>

<tdalign=center size=2>7-8节</td>

</tr>

<tr><td></td>

<tdalign=center size=2>8:10-9:50</td>

<tdalign=center size=2>10:15-11:55</td>

<tdalign=center size=2>13:00-14:40</td>

<tdalign=center size=2>14:50-16:20</td>

</tr>

<tr><td>星期一 </td>

<tdalign=center size=2><center>".$monn1[1]."<br><center>".$monn1[2]."</td>

<tdalign=center size=2><center>".$monn2[1]."<br><center>".$monn2[2]."</td>

<tdalign=center size=2><center>".$monn3[1]."<br><center>".$monn3[2]."</td>

<tdalign=center size=2><center>".$monn4[1]."<br><center>".$monn4[2]."</td>

……

?>

4.任课教师课表的查询

查看某位老师的课表,通过表单提交该老师的姓名,在数据库中查找该老师。查到后按规范格式输出即可,本模块的部分代码如下:

<?

$name=$name;

include("opendata.php");

$sql="select * from class where mont1='$name'";

$records=mysql_query($sql);

$records=mysql_query($sql);

while(list($class,$teacher,$classroom,$mon1,$mont1,$mon2,$mont2,$mon3,$mont3,$mon4,$mont4,$tue1,$tuet1,$tue2,$tuet2,

$tue3,$tuet3,$tue4,$tuet4,$wed1,$wedt1,$wed2,$wedt2,$wed3,$wedt3,$wed4,$wedt4,$thu1,$thut1,$thu2,$thut2,$thu3,$thut3,

$thu4,$thut4,$fri1,$frit1,$fri2,$frit2,$fri3,$frit3,$id,)=mysql_fetch_row($records))

$monn1=array("$mont1","$mon1","$class");

……

{

echo "<font color=red size=4><center>北京信息职业技术学院课程表</font>

<table border=0 width=450>

<tr>

<tdalign=left><font color=red size=2 >".$name."老师</font></td></tr>

</table>";

echo"

<table border=1 width=450 >

<tr><td></td>

<tdalign=center size=2>1-2节</td>

<tdalign=center size=2>3-4节</td>

<tdalign=center size=2>5-6节</td>

<tdalign=center size=2>7-8节</td>

</tr>

<tr><td></td>

<tdalign=center size=2>8:10-9:50</td>

<tdalign=center size=2>10:15-11:55</td>

<tdalign=center size=2>13:00-14:40</td>

<tdalign=center size=2>14:50-16:20</td>

</tr>

<tr><td>星期一 </td>

<tdalign=center size=2><center>".$monn1[1]."<br><center>".$monn1[2]."</td>

<tdalign=center size=2><center>".$monn2[1]."<br><center>".$monn2[2]."</td>

<tdalign=center size=2><center>".$monn3[1]."<br><center>".$monn3[2]."</td>

<tdalign=center size=2><center>".$monn4[1]."<br><center>".$monn4[2]."</td>

?>

五、系统的前景展望

本课表转换系统使用PHP语言开发,后台数据库采用MySQL,明显的特点就是代码简洁,简单易懂,界面优良,人机交互性较好。本程序最大的一个优点就是可移植性好,在安装有Apache服务器的计算机上均可运行,各院校在使用过程中可据本校实际需求对代码稍作修改即可,保证了系统的实效性、可操作性。本系统可以挂接在院校的局域网上,便于教师或管理人员实现信息资源的共享。

参考文献:

[1]曹轶群,张一江,张永学.PHP高级开发技术与应用[M].北京:清华大学出版社,2002.5.

[2][美]jeremy allen charles hornberger. PHP 4.1从入门到精通[M].北京:电子工业出版社,2002.1.

猜你喜欢

S模式
基于B/S模式的数据结构实验平台设计