시험 스킨 최종 - 논술, 객관식 자동 채점, 단답식 모두 지원
100% 스킨만으로 동작합니다. 그누 업그레이드와 상관없습니다.
코드를 정리하고 결과 부분을 수정했습니다.
시험 스킨 최종 수정본입니다(최종이라고 해야 완성본이 아니라 제가 더 이상 손 안댄다는 의미입니다)
그누를 단순하게 게시판용도로 사용하는데 어차피 디비 기반이면 프로그램도 가능하지 않을까 생각해서 도전했는데 잘 되네요. 디비 신경 안써도 되니 편하고. 꾸준하게 업데이트해주니 고맙고.
특징)))
여러 학생이 동시에 시험볼 수 있습니다.
객관식, 주관식, 논술식 모두 지원합니다.
교사가 점수를 줄 수 있습니다.
학생은 자신의 성적만 확인이 가능합니다.
게시판을 과목별로 만들면 과목별 시험이 가능합니다.
시험을 보고 나면 다시 볼 수 없습니다.
종료된 시험은 볼 수 없습니다(관리자 설정)
과목별로 시험을 수없이 생성 할 수 있습니다(게시판만 추가해주면 됩니다)
설정에서 해야할 일.
게시판 설정에서
문제 제목이 잘리는 경우가 있습니다. 이 경우 => 관리자페이지>게시판관리 제목길이를 늘리시면 됩니다.
시험지는 한면에 모두 나오야 합니다. list에 적는 답을 받기 때문입니다. 페이지 목록수를 문제 수 이상으로 해주십시오.
글쓰기 권한은 모두 9로 해주세요.
1. 압축을 풉니다.
두 개의 스킨이 나옵니다. result, exam
- 문제 등록: 게시판을 만들고 exam을 선택합니다. 글쓰기 9로 합니다(중요). 페이지 목록수 문제 수 이상으로 '반드시' 수정(아주 중요)
- 학생들 응시 결과: 반드시 문제 등록 시 만든 게시판 테이블명과 동일하게 한 후 _result를 붙입니다(중요), 글쓰기 9로 하고 비밀글 항상을 선택합니다(중요).
예) 문제 등록이 math라면 응시 결과 게시판은 math_result라고 테이블명을 만드세요. 목록 열람은 자기만 봐야 하므로 2로 해주시고 비밀글 무조건 체크.
2. 문제 등록
문제 등록 게시판을 열고 문제를 등록합니다.
문제는 논술식, 단답식, 객관식으로 선택할 수 있습니다.
3. 문제 풀기
문제를 풀면 푼 내용이 학생별로 결과 게시판에 저장이 됩니다.
4. 성적
결과 게시판에 해당 학생을 누르면 채점 버튼이 생깁니다. 채점을 하면 점수가 계산이 됩니다.
5. 학생들은 개별 아이디로 시험을 보면 됩니다. 학생들은 자신의 시험 결과만 확인이 가능합니다.
* 초보자도 리눅스 웹서버 운영이 가능합니다. 리눅스 웹서버 운영 툴 http://cypanel.com
* 무제한 용량, 무제한 ftp, 무제한 mysql, 무제한 메일, 무제한 도메인 등록 웹호스팅, http://hostingis.com
* 서버 관리도 맡겨 주세요.
코드를 정리하고 결과 부분을 수정했습니다.
시험 스킨 최종 수정본입니다(최종이라고 해야 완성본이 아니라 제가 더 이상 손 안댄다는 의미입니다)
그누를 단순하게 게시판용도로 사용하는데 어차피 디비 기반이면 프로그램도 가능하지 않을까 생각해서 도전했는데 잘 되네요. 디비 신경 안써도 되니 편하고. 꾸준하게 업데이트해주니 고맙고.
특징)))
여러 학생이 동시에 시험볼 수 있습니다.
객관식, 주관식, 논술식 모두 지원합니다.
교사가 점수를 줄 수 있습니다.
학생은 자신의 성적만 확인이 가능합니다.
게시판을 과목별로 만들면 과목별 시험이 가능합니다.
시험을 보고 나면 다시 볼 수 없습니다.
종료된 시험은 볼 수 없습니다(관리자 설정)
과목별로 시험을 수없이 생성 할 수 있습니다(게시판만 추가해주면 됩니다)
설정에서 해야할 일.
게시판 설정에서
문제 제목이 잘리는 경우가 있습니다. 이 경우 => 관리자페이지>게시판관리 제목길이를 늘리시면 됩니다.
시험지는 한면에 모두 나오야 합니다. list에 적는 답을 받기 때문입니다. 페이지 목록수를 문제 수 이상으로 해주십시오.
글쓰기 권한은 모두 9로 해주세요.
1. 압축을 풉니다.
두 개의 스킨이 나옵니다. result, exam
- 문제 등록: 게시판을 만들고 exam을 선택합니다. 글쓰기 9로 합니다(중요). 페이지 목록수 문제 수 이상으로 '반드시' 수정(아주 중요)
- 학생들 응시 결과: 반드시 문제 등록 시 만든 게시판 테이블명과 동일하게 한 후 _result를 붙입니다(중요), 글쓰기 9로 하고 비밀글 항상을 선택합니다(중요).
예) 문제 등록이 math라면 응시 결과 게시판은 math_result라고 테이블명을 만드세요. 목록 열람은 자기만 봐야 하므로 2로 해주시고 비밀글 무조건 체크.
2. 문제 등록
문제 등록 게시판을 열고 문제를 등록합니다.
문제는 논술식, 단답식, 객관식으로 선택할 수 있습니다.
3. 문제 풀기
문제를 풀면 푼 내용이 학생별로 결과 게시판에 저장이 됩니다.
4. 성적
결과 게시판에 해당 학생을 누르면 채점 버튼이 생깁니다. 채점을 하면 점수가 계산이 됩니다.
5. 학생들은 개별 아이디로 시험을 보면 됩니다. 학생들은 자신의 시험 결과만 확인이 가능합니다.
* 초보자도 리눅스 웹서버 운영이 가능합니다. 리눅스 웹서버 운영 툴 http://cypanel.com
* 무제한 용량, 무제한 ftp, 무제한 mysql, 무제한 메일, 무제한 도메인 등록 웹호스팅, http://hostingis.com
* 서버 관리도 맡겨 주세요.
첨부파일
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 67개
아직 다운 받아 적용하기 전이지만 조심스레 여쭈어 봅니다.
혹시 차기작에 포인트 연동이 가능할까요?
시험 응시할 때 일정 포인트 포인트 차감
점수가 몇점 이상이 되면 정해진 포인트 지급
반대로 그 이하가 되면 정해진 포인트 차감
이런 식으로요..
죄송함다.
포인트 연동 물론 가능합니다. 현재 구조에 설정 게시판을 하나 더 추가해야 겠지만. 이게 게시글 하나가 아니라 게시글 전체를 가지고 하는 것이다보니.
직접 만들 재주는 없고 해서 며칠 전부터 계속 찾고있었는데 마침 이렇게 올려주시니 정말 감사합니다.
엎드려 절하고 싶네요. (^ㅡ^*
출제자의 채점이나 주석을 안 달아도 객관식 문제 자동 채점 결과가 나왔은면 합니다.
방법이 있을까요?
result 스킨의 view.skin.php에 140줄 다음에 넣으세요.
if(trim($row[wr_2]) == trim($result[$i])) $score_total =trim($row[wr_8]) + $score_total;
//$score_total =$score[$i] + $score_total; 이것은 // 막으시고요.
대신 list에서는 점수가 채점하기 전에는 안나옵니다.
아이들이 0점이라고 나오면 오해할 수 있으니 list 스킨에서 점수 대신 보기 링크를 걸면 되겠지요.
그럼 교사가 전체 점수를 확인 못하니 불편할 수도 있으니 어드민 일 경우는 점수가 나오게 하면 되겠지요.
감사히 잘 쓰겠습니다. ^^
뭔가 채점 기능이 정상적으로 반영이 안 되는 것 같습니다.
위에 설명해주신 대로 하니 '객관식 자동 채점'은 잘 해결이 됐습니다.
그런데 관리자로 로그인을 하여 '채점하기 버튼'을 누르고 '채점 완료'가 선택된 상태에서 글쓰기 버튼을 누르면
페이지가 새로고침 되는 듯 하지만 별다른 반응이 없습니다.
설명에서 첨부 사진을 보면 '점수 및 교사 의견' 페이지로 넘어가야 될 듯한데 뭔가 링크가 끊어져 다음 페이지로 넘어가지 못하는 것 처럼 보입니다.
학생 계정으로 접속하면 역시 채점이 안 된 상태로 있습니다.
1. 게시판 이름은 'exam'과 'exam_result'으로 만들었습니다.
2. 문제 수가 60문항이므로 '페이지당 목록 수'는 70으로 넉넉히 잡았습니다.
3. '제목 길이'도 넉넉히 설정했습니다.
4. 쓰기 권한 9입니다.
5. 비밀글 '무조건'으로 했습니다.
좋은 스킨 주셨는데도 실력이 미천해서 잘 써먹질 못하네요. (^ㅡ^ ;
지금 이것저것 훓어 보고 있는데... 어렵네요. ^^ ;
다른 분들은 피드백이 없는 걸 보니 저만 이런 현상이 생기는 것인지 모르겠습니다.
제 질문이 다른 분들께도 도움이 됐으면 좋겠습니다.
혹시 서버에 올려져 있음 링크 좀 주실래요?
다른 분들은 잘 쓰시는데 저만 안 되는 것 같죠? (^ㅡ^ ;;
여러 방법이 있겠지만 파일 하나를 만들어서 시험 응시시 포인트, 점수 이상일 수 포인트, 점수 이하일 수 포인트로 해서 그것을 읽어서 처리하면 되지 않을까요?
///////////// 자동 채점을 위한 정답 가져오기
$table_exp = explode("_", $bo_table);
$table = "g4_write_".$table_exp[0];
$query5 = "select wr_8, wr_2 from $table order by wr_id desc";
$result5 = sql_query($query5);
$total_count = mysql_num_rows($result5);
$i = 0;
while ($row = sql_fetch_array($result5))
{
$score[$i] = $row[wr_8];
$answer[$i] = $row[wr_2];
echo $answer[$i];
$i++;
}
맨 위 if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 다음에 넣어주시고,
<td align=center><?=$list[$i][datetime2]?></td> 다음에 아래를 넣어주면 리스트도 자동 채점이 되어요.
<?
$total_score =0;
$result = explode("!&", $list[$i][wr_content]);
for($j =0; $j < count($result); $j++) {
if($answer[$j] == $result[$j]) $total_score = $total_score + trim($score[$j]);
}
$list[$i][wr_good] = $total_score;
?>
왜 wr_good을 점수로 썼나면 1등 부터 줄 세우려니 이미 정의된 것을 사용해야 해서요.
드디어 그토록 원하던 스킨을 완성했습니다.
설명해주신대로 하니 리스트 자동 채점까지 구현하게 됐습니다.
쪽지로까지 도와주셔서 다시 한 번 정말 정말 감사합니다. ^ㅡ^)b
감사
응시시 포인트, 점수 이상일 수 포인트, 점수 이하일 수 포인트 이렇게 쿼리들어가는부분에 그누포인트 함수 추가해서 연동시켜도 문제 없겠지요?
채점하기를 하면 글쓰기와 목록 버튼이 나오는데, 글쓰기 버턴을 눌러도 채점이 안되네요.
객관식 문제라면 자동 채점으로 해도 크게 문제는 안 되더라구요.
그럼 위에 코멘트의 자동채점 저 부분을 수정 또는 추가를 해서 하면 되는가요?
이것도 아까 해봤는데 에러가 나더라구요...
자동채점 부분 공유해주시면 고맙겠습니다......ㅜㅜ
첫 번째 (_result 게시판 내의 자동 채점)
------------------------------------------------------------------------------
result 스킨의 view.skin.php에 140줄 다음에 넣으세요.
if(trim($row[wr_2]) == trim($result[$i])) $score_total =trim($row[wr_8]) + $score_total;
//$score_total =$score[$i] + $score_total; 이것은 // 막으시고요.
------------------------------------------------------------------------------
두 번째 (_result 게시판의 리스트 페이지에 자동 채점 점수 표기)
------------------------------------------------------------------------------
리스트에서 객관식 자동 채점을 위해
///////////// 자동 채점을 위한 정답 가져오기
$table_exp = explode("_", $bo_table);
$table = "g4_write_".$table_exp[0];
$query5 = "select wr_8, wr_2 from $table order by wr_id desc";
$result5 = sql_query($query5);
$total_count = mysql_num_rows($result5);
$i = 0;
while ($row = sql_fetch_array($result5))
{
$score[$i] = $row[wr_8];
$answer[$i] = $row[wr_2];
echo $answer[$i];
$i++;
}
맨 위 if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 다음에 넣어주시고,
------------------------------------------------------------------------------
세 번째
----------------------------------------------------------------------------
<td align=center><?=$list[$i][datetime2]?></td> 다음에 아래를 넣어주면 리스트도 자동 채점이 되어요.
<?
$total_score =0;
$result = explode("!&", $list[$i][wr_content]);
for($j =0; $j < count($result); $j++) {
if($answer[$j] == $result[$j]) $total_score = $total_score + trim($score[$j]);
}
$list[$i][wr_good] = $total_score;
?>
왜 wr_good을 점수로 썼나면 1등 부터 줄 세우려니 이미 정의된 것을 사용해야 해서요.
-----------------------------------------------------------------------------
저는 민기만 님게서 만들어주신 대로 위 세 가지를 손봐서 객관식 문제 자동 채점을 해결했습니다.
폰트 크기, 색상, 아이콘 등은 본인의 홈페이지에 맞게 수정하셔서 쓰시면 되겠구요.
필요한 사람에게는 정말 신통방통한 스킨입니다. ^^*
일단 스크랩을 해놓고, 내일 다시 한번 시도해 보겠습니다.
좋은 저녁 되세요.^^
음 안되면 해결이라도 하는데 되니 난감하군요.
하 모니터가 크다보니 너무 크게 했나 보네요. 각 write.skin.php view, list에 css가 들어 있어요. 그기서 고치면 됩니다.
댓글 감사하구요.
저기 자동채점 수정 부분은, 전부 result게시판 소스에서 수정하는거 맞나요?
저는 왜 오류가 나네요.
그리고 위에 엑노님처럼, 저도 문자가 깨지네요.
에러 메시지가 어떤 것인지요?
select wr_8, wr_2 from g4_write_nihongo order by wr_id desc
1146 : Table 'jeongbo-partner.g4_write_nihongo' doesn't exist
error file : /board/bbs/board.php
감사합니다....
근데, 저 에러는 어찌된 것인지...ㅜㅜ
민기만님께서 바쁘시나 보네요.....^^
그런데 한 가지 더 검토해주실 수 있을까요?
result 페이지에서 [문제, 정답, 학생의 답, 점수]가 나오는데 정답이 왜 정답인지 부연 설명이 나왔으면 좋겠습니다.
문제 출제자가 문제를 작성할 때 정답을 선택하고 왜 정답인지 주석을 달아놓으면 학생이 result 페이지에서 답을 확인하면서 정답과 자신의 답이 어느 부분에서 차이가 있는지 알 수 있을테니까요.
이번 스킨이 최종 버전이라고 하셔서 더 욕심이 납니다. (^ㅡ^;
지금도 너무 너무 좋은 스킨이기에 만족하고 있지만 가능하시다면 검토 부탁드리겠습니다. ^^
result 스킨의 view.skin.php에 140줄 다음에 넣으세요.
if(trim($row[wr_2]) == trim($result[$i])) $score_total =trim($row[wr_8]) + $score_total;
//$score_total =$score[$i] + $score_total; 이것은 // 막으시고요.
이 외는 list.sikin.php에 추가하는거 맞지요?
이렇게 했는데 에러가 나네요.ㅜㅜ
채점 테이블이 nihongo_test_resut 이구요.
혹시 시험 테이블에 _test 가 있어서 그런걸가요?
그잖아도 민기만님의 댓글에서 힌트를 얻고, _이부분을 뺐더니 되네요.
그런데 또 하나가요.ㅎ
채점 뷰 페이지에서 총점은 나오는데 매개 문제의 점수가 안나오네요. 리시트에서는 자동채점이 잘 됩니다.
고맙습니다.
exam 폴더를 어디에 넣는 건가요?
다운받은 파일을 압축을 풀면,
첫 번째 폴더 exam을 통채로 테마 안에 있는 skin/board에 넣는 건가요?