李 紅 孫立友
摘 要:課表轉(zhuǎn)換系統(tǒng)使用PHP語言,開發(fā)出了大課表生成頁面、教師課表生成頁面、全部教師課表生成頁面、教師課表查詢界面。本系統(tǒng)大幅度減化了教務(wù)部門排課人員的手工勞作,充分使用信息技術(shù)的手段架起了教務(wù)管理部門和各位教師之間的橋梁。
關(guān)鍵詞:課表轉(zhuǎn)換 B/S模式 PHP語言 MySQL數(shù)據(jù)庫系統(tǒng)
中圖分類號:TP311.52 文獻標識碼:B 文章編號:1673-8454(2009)05-0045-04
一、系統(tǒng)目標
課表轉(zhuǎn)換系統(tǒng)的主要目標是高效地實現(xiàn)課表由全院或全系的大課表產(chǎn)生分支,生成各位教師的任課課表、班級課表,并能發(fā)送到打印機打印,簡化教務(wù)管理部門在下發(fā)課表時的手工操作。系統(tǒng)同時實現(xiàn)了班級課表、教師課表的局部查詢功能,為使用人員提供了便捷的查閱方式。系統(tǒng)還提供了修改的功能,對每班課表的日課程建立了超鏈接,開通了修改的通道,便于及時發(fā)現(xiàn)錯誤予以糾正。本系統(tǒng)提高了課表生成的效率與質(zhì)量,大幅度減少了產(chǎn)生錯誤的幾率,將傳統(tǒng)的手工勞作提升為質(zhì)優(yōu)效高的管理服務(wù)。
二、系統(tǒng)的體系結(jié)構(gòu)及主要功能
本課表轉(zhuǎn)換系統(tǒng)基于B/S模式,使用三層結(jié)構(gòu)模型。前端為瘦客戶端,安裝IE游覽器即可,中間層為應(yīng)用層,放在Apache服務(wù)器上,后臺數(shù)據(jù)庫使用MySQL,數(shù)據(jù)信息存放在客戶端的專用存儲器上。這三層結(jié)構(gòu)模型的系統(tǒng)處理過程如圖1所示。
在這種模式下開發(fā)課表轉(zhuǎn)換系統(tǒng),實現(xiàn)了以下三種功能。
1.課程信息采集功能
在全院或全系大課表已經(jīng)妥善安排的基礎(chǔ)上,通過信息采集頁面,實現(xiàn)課表信息的獲取。本功能在學期初或上學期末執(zhí)行完成,實現(xiàn)課程信息的一次性批量采集。采集界面如圖2所示。
2.錯誤信息修改功能
對于課程信息采集過程中出現(xiàn)的錯誤情況,系統(tǒng)提供了補救措施,對于日課程,建立了錯誤的超鏈接,可以點擊修改頁面直接修改錯誤信息點,界面如圖3所示。
3.便捷的查閱功能
本系統(tǒng)查閱項目全面,包括查看班級課表、全部教師課表、某位教師的課表。良好的查詢界面與查詢功能的實現(xiàn)為使用者提供了很大的便捷。單擊相關(guān)查詢后的查詢結(jié)果如圖4所示。
三、數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫采用MySQL,它提供了強大的數(shù)據(jù)庫管理功能,能夠方便、靈活地完成數(shù)據(jù)庫應(yīng)用中建立數(shù)據(jù)庫和數(shù)據(jù)表、查詢和更新等各種操作。MySQL是PHP開發(fā)工具開發(fā)網(wǎng)站的有力支持,二者往往并駕齊驅(qū),能開發(fā)出內(nèi)容豐富、界面新穎的頁面。本系統(tǒng)使用的數(shù)據(jù)表有Teacher表和Class表。Teacher表有ID和Name字段。Class表的字段如圖5所示。
四、主要存儲結(jié)構(gòu)的設(shè)計及代碼實現(xiàn)
本課表轉(zhuǎn)換系統(tǒng)本著實用、穩(wěn)定和技術(shù)先進性的原則,系統(tǒng)使用PHP語言開發(fā),選用MySQL數(shù)據(jù)庫。
1.大課表的生成
這部分的主要功能用于信息采集。這一部分信息的采集正確與否決定著后面班級、教師課表產(chǎn)生的準確性,模塊的代碼如下:
<?
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.班級課表的生成
本模塊通過循環(huán)依次將數(shù)據(jù)庫中的數(shù)據(jù)提取出來,以規(guī)范的格式生成班級課表,模塊的代碼如下:
<?
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>北京信息職業(yè)技術(shù)學院課程表</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節(jié)</td>
<tdalign=center size=2>3-4節(jié)</td>
<tdalign=center size=2>5-6節(jié)</td>
<tdalign=center size=2>7-8節(jié)</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.全部教師課表的生成
教師每學期課程的安排情況,均來自于教務(wù)管理的信息。本課表轉(zhuǎn)換系統(tǒng)能根據(jù)全院或全系的大課表生成全部任課教師的子課程表,本模塊的部分程序代碼如下:
<?
……
$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>北京信息職業(yè)技術(shù)學院課程表</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節(jié)</td>
<tdalign=center size=2>3-4節(jié)</td>
<tdalign=center size=2>5-6節(jié)</td>
<tdalign=center size=2>7-8節(jié)</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.任課教師課表的查詢
查看某位老師的課表,通過表單提交該老師的姓名,在數(shù)據(jù)庫中查找該老師。查到后按規(guī)范格式輸出即可,本模塊的部分代碼如下:
<?
$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>北京信息職業(yè)技術(shù)學院課程表</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節(jié)</td>
<tdalign=center size=2>3-4節(jié)</td>
<tdalign=center size=2>5-6節(jié)</td>
<tdalign=center size=2>7-8節(jié)</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>
…
?>
五、系統(tǒng)的前景展望
本課表轉(zhuǎn)換系統(tǒng)使用PHP語言開發(fā),后臺數(shù)據(jù)庫采用MySQL,明顯的特點就是代碼簡潔,簡單易懂,界面優(yōu)良,人機交互性較好。本程序最大的一個優(yōu)點就是可移植性好,在安裝有Apache服務(wù)器的計算機上均可運行,各院校在使用過程中可據(jù)本校實際需求對代碼稍作修改即可,保證了系統(tǒng)的實效性、可操作性。本系統(tǒng)可以掛接在院校的局域網(wǎng)上,便于教師或管理人員實現(xiàn)信息資源的共享。
參考文獻:
[1]曹軼群,張一江,張永學.PHP高級開發(fā)技術(shù)與應(yīng)用[M].北京:清華大學出版社,2002.5.
[2][美]jeremy allen charles hornberger. PHP 4.1從入門到精通[M].北京:電子工業(yè)出版社,2002.1.