コード例 #1
0
 public function exam()
 {
     if (IS_POST) {
         if (!check_post_key()) {
             $this->error('发生错误!');
         }
         if (!checkAdmin(2)) {
             $this->error('You have no privilege!');
         }
         if (isset($_POST['examid'])) {
             $flag = AdminexamModel::instance()->upd_exam();
             $this->checkflag($flag, 3);
         } else {
             if (isset($_POST['examname'])) {
                 $flag = AdminexamModel::instance()->add_exam();
                 $this->checkflag($flag, 3);
             }
         }
     } else {
         if (IS_GET && I('get.eid') != '') {
             $eid = I('get.eid', 0, 'intval');
             $page = I('get.page', 1, 'intval');
             $key = set_post_key();
             $row = M('exam')->where("exam_id=%d and visible='Y'", $eid)->find();
             if ($row) {
                 if (!checkAdmin(4, $row['creator'])) {
                     $this->error('You have no privilege!');
                 }
                 $this->zadd('page', $page);
                 $this->zadd('row', $row);
                 $this->zadd('mykey', $key);
                 $this->auto_display();
             } else {
                 $this->error('No Such Exam!');
             }
         } else {
             $page = I('get.page', 1, 'intval');
             $key = set_post_key();
             $this->zadd('page', $page);
             $this->zadd('mykey', $key);
             $this->auto_display();
         }
     }
 }
コード例 #2
0
 public function rejudgepaper($users, $eid, $start_timeC, $end_timeC, $mark)
 {
     $choosesum = 0;
     $judgesum = 0;
     $fillsum = 0;
     $programsum = 0;
     $sum = 0;
     $allscore = AdminexamModel::instance()->getallscore($eid);
     $choosearr = AdminexamModel::instance()->getuserans($eid, $users, 1);
     $query = "SELECT `choose_id`,`answer` FROM `ex_choose` WHERE `choose_id` IN\n\t\t(SELECT `question_id` FROM `exp_question` WHERE `exam_id`='{$eid}' AND `type`='1')";
     $row = M()->query($query);
     if ($row) {
         foreach ($row as $key => $value) {
             if (isset($choosearr[$value['choose_id']])) {
                 $myanswer = $choosearr[$value['choose_id']];
                 if ($myanswer == $value['answer']) {
                     $choosesum += $allscore['choosescore'];
                 }
             }
         }
         unset($row);
         unset($choosearr);
     }
     //choose over
     $judgearr = AdminexamModel::instance()->getuserans($eid, $users, 2);
     $query = "SELECT `judge_id`,`answer` FROM `ex_judge` WHERE `judge_id` IN\n\t\t(SELECT `question_id` FROM `exp_question` WHERE `exam_id`='{$eid}' AND `type`='2')";
     $row = M()->query($query);
     if ($row) {
         foreach ($row as $key => $value) {
             if (isset($judgearr[$value['judge_id']])) {
                 $myanswer = $judgearr[$value['judge_id']];
                 if ($myanswer == $value['answer']) {
                     $judgesum += $allscore['judgescore'];
                 }
             }
         }
         unset($row);
         unset($judgearr);
     }
     //judge over
     $fillarr = AdminexamModel::instance()->getuserans($eid, $users, 3);
     $query = "SELECT `fill_answer`.`fill_id`,`answer_id`,`answer`,`answernum`,`kind` FROM `fill_answer`,`ex_fill` WHERE\n\t\t`fill_answer`.`fill_id`=`ex_fill`.`fill_id` AND `fill_answer`.`fill_id` IN ( SELECT `question_id` FROM `exp_question` WHERE `exam_id`='{$eid}' AND `type`='3')";
     $row = M()->query($query);
     if ($row) {
         foreach ($row as $key => $value) {
             if (isset($fillarr[$value['fill_id']][$value['answer_id']]) && (!empty($fillarr[$value['fill_id']][$value['answer_id']]) || $fillarr[$value['fill_id']][$value['answer_id']] == "0")) {
                 $myanswer = trim($fillarr[$value['fill_id']][$value['answer_id']]);
                 $rightans = trim($value['answer']);
                 if ($myanswer == $rightans && strlen($myanswer) == strlen($rightans)) {
                     if ($value['kind'] == 1) {
                         $fillsum += $allscore['fillscore'];
                     } else {
                         if ($value['kind'] == 2) {
                             $fillsum = $fillsum + $allscore['prgans'] / $value['answernum'];
                         } else {
                             if ($value['kind'] == 3) {
                                 $fillsum = $fillsum + $allscore['prgfill'] / $value['answernum'];
                             }
                         }
                     }
                 }
             }
         }
         unset($row);
         unset($fillarr);
     }
     //fillover
     $query = "SELECT distinct `question_id`,`result` FROM `exp_question`,`solution` WHERE `exam_id`='{$eid}' AND `type`='4' AND `result`='4'\n\t\tAND `in_date`>'{$start_timeC}' AND `in_date`<'{$end_timeC}' AND `user_id`='" . $users . "' AND `exp_question`.`question_id`=`solution`.`problem_id`";
     $row = M()->query($query);
     $row_cnt = count($row);
     $programsum = $row_cnt * $allscore['programscore'];
     //$program over
     $sum = $choosesum + $judgesum + $fillsum + $programsum;
     if ($mark == 0) {
         // if the student has not submitted the paper
         $sql = "INSERT INTO `ex_student` VALUES('" . $users . "','{$eid}','{$sum}','{$choosesum}','{$judgesum}','{$fillsum}','{$programsum}')";
         M()->execute($sql);
     } else {
         $sql = "UPDATE `ex_student` SET `score`='{$sum}',`choosesum`='{$choosesum}',`judgesum`='{$judgesum}',`fillsum`='{$fillsum}',`programsum`='{$programsum}'\n\t\t\tWHERE `user_id`='" . $users . "' AND `exam_id`='{$eid}'";
         M()->execute($sql);
     }
 }
コード例 #3
0
 public function adduser()
 {
     if (IS_POST && I('post.eid') != '') {
         if (!check_post_key()) {
             $this->error('发生错误!');
         } else {
             if (!checkAdmin(2)) {
                 $this->error('You have no privilege of this exam');
             } else {
                 $eid = I('post.eid', 0, 'intval');
                 $flag = AdminexamModel::instance()->addexamuser($eid);
                 if ($flag === true) {
                     $this->success('考生添加成功', U('Teacher/Exam/userscore', array('eid' => $eid)), 2);
                 } else {
                     $this->error('Invaild Path');
                 }
             }
         }
     } else {
         if (!$this->isowner($this->eid)) {
             $this->error('You have no privilege of this exam');
         } else {
             $ulist = "";
             $row = M('ex_privilege')->field('user_id')->where("rightstr='e{$this->eid}'")->order('user_id')->select();
             if ($row) {
                 $cnt = 0;
                 foreach ($row as $key => $value) {
                     if ($cnt) {
                         $ulist .= "\n";
                     }
                     $ulist .= $value['user_id'];
                     $cnt++;
                 }
                 unset($row);
             }
             $key = set_post_key();
             $this->zadd('mykey', $key);
             $this->zadd('ulist', $ulist);
             $this->auto_display();
         }
     }
 }