วันพุธที่ 13 มกราคม พ.ศ. 2553

โค้ดสำหรับสร้างตารางสอบอย่างง่าย (เจ้าค้า)

if (!isset($_POST['regist'])) {
echo "ระบบจัดตารางสอบอย่างง่าย ของนักเรียน 3 คนที่ลงทะเบียนคนละ 3 วิชา";
echo "
";
echo "
";
echo "
";
exit;
}
// แสดงข้อมูลที่รับมาจาก form
echo "
แสดงรายวิชาที่นักเรียนแต่ละคนลงทะเบียนเรียน \n";

$student = split("\n",$_POST['regist']);
foreach($student as $one) {
$subj = split(",",$one);
for($i=0;$i}
// นำข้อมูลแต่ละคน มาแยกเก็บแยกวิชา เช่น a,1,2 ลงตัวแปร $s เพื่อใช้ในการจัดตารางสอบ
foreach($student as $one) {
$subj = split(",",$one);
for($i=1;$i if (!isset($s[$subj[$i]])) $s[$subj[$i]] = $subj[$i] . ",";
$s[$subj[$i]] = $s[$subj[$i]] . $subj[0] . ",";
}
}
// อ่าน $s มาจัดลงตัวแปร $sub เพื่อใช้อ้างวิชาที่ได้ เช่น $sub[0] หมายถึงวิชา "A"
echo "
แสดงชื่อนักเรียนที่ลงทะเบียนในแต่ละวิชา";
$i = 0;
foreach($s as $sepsubj) {
$sepagain = split(",",$sepsubj);
$sub[$i] = $sepagain[0];
$i = $i + 1;
echo $sepsubj . "\n"; // $sepsubj เก็บรหัสนักศึกษาในแต่ละวิชา
}
// จัดกลุ่มตามวัน โดยใช้ while ซ้อน for และตรวจสอบความซ้ำซ้อน
$end = 0;
$i = 0;
while ($end == 0) {
$outday = 0;
for($j=0;$j if (strlen($s[$sub[$j]]) > 2 && $outday == 0) {
$day[$i] = $sub[$j].",";
$base = $s[$sub[$j]];
$s[$sub[$j]] = "";
$outday = 1;
}
}
for($j=1;$j $sbase = $s[$sub[$j]];
$ssubj = split(",",$sbase);
$found = 0;
for($k=1;$k if (stristr($base,$ssubj[$k])) $found = 1;
}
if ($found == 0 && count($ssubj) > 1) {
$s[$sub[$j]] = "";
$day[$i] = $day[$i] . $sub[$j] . ",";
}
}
$i++;
$end = 1;
foreach ($s as $checksubj) {
if (strlen($checksubj) > 2 ) $end = 0;
}
}
echo "
";
// แสดงผลการจัดตารางแล้ว
for($i=0;$i echo "ชั่วโมงที่ ";
echo $i + 1;
echo " สอบวิชา " . $day[$i] . "\n";
}
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น