시험 스킨 최종 - 논술, 객관식 자동 채점, 단답식 모두 지원 > 그누4 스킨

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

시험 스킨 최종 - 논술, 객관식 자동 채점, 단답식 모두 지원 정보

게시판 시험 스킨 최종 - 논술, 객관식 자동 채점, 단답식 모두 지원

첨부파일

exam.zip (92.1K) 784회 다운로드 2013-06-25 20:22:18

본문

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
* 서버 관리도 맡겨 주세요.
추천
32

댓글 전체

작품입니다. 이런 걸작을 공개해 주시다니 진심으로 감사드립니다.
아직 다운 받아 적용하기 전이지만 조심스레 여쭈어 봅니다.
혹시 차기작에 포인트 연동이 가능할까요?

시험 응시할 때 일정 포인트 포인트 차감
점수가 몇점 이상이 되면 정해진 포인트 지급
반대로 그 이하가 되면 정해진 포인트 차감

이런 식으로요..
차기작 없음다. 위에 최종이라고 써여 있지요.
죄송함다.

포인트 연동 물론 가능합니다. 현재 구조에 설정 게시판을 하나 더 추가해야 겠지만. 이게 게시글 하나가 아니라 게시글 전체를 가지고 하는 것이다보니.
정말 절실히 필요했던 스킨입니다.
직접 만들 재주는 없고 해서 며칠 전부터 계속 찾고있었는데 마침 이렇게 올려주시니 정말 감사합니다.
엎드려 절하고 싶네요. (^ㅡ^*
정답은 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에서는 점수가 채점하기 전에는 안나옵니다.

아이들이 0점이라고 나오면 오해할 수 있으니 list 스킨에서 점수 대신 보기 링크를 걸면 되겠지요.
그럼 교사가 전체 점수를 확인 못하니 불편할 수도 있으니 어드민 일 경우는 점수가 나오게 하면 되겠지요.
다시 질문 드리게 되네요.
뭔가 채점 기능이 정상적으로 반영이 안 되는 것 같습니다.
위에 설명해주신 대로 하니 '객관식 자동 채점'은 잘 해결이 됐습니다.
그런데 관리자로 로그인을 하여 '채점하기 버튼'을 누르고 '채점 완료'가 선택된 상태에서 글쓰기 버튼을 누르면
페이지가 새로고침 되는 듯 하지만 별다른 반응이 없습니다.
설명에서 첨부 사진을 보면 '점수 및 교사 의견' 페이지로 넘어가야 될 듯한데 뭔가 링크가 끊어져 다음 페이지로 넘어가지 못하는 것 처럼 보입니다.

학생 계정으로 접속하면 역시 채점이 안 된 상태로 있습니다.

1. 게시판 이름은 'exam'과 'exam_result'으로 만들었습니다.

2. 문제 수가 60문항이므로 '페이지당 목록 수'는 70으로 넉넉히 잡았습니다.

3. '제목 길이'도 넉넉히 설정했습니다.

4. 쓰기 권한 9입니다.

5. 비밀글 '무조건'으로 했습니다.

좋은 스킨 주셨는데도 실력이 미천해서 잘 써먹질 못하네요. (^ㅡ^ ;
새로고침을 하지 않은 상태에서 채점하기 버튼을 선택해도 역시 반응이 없습니다.
지금 이것저것 훓어 보고 있는데... 어렵네요. ^^ ;
다른 분들은 피드백이 없는 걸 보니 저만 이런 현상이 생기는 것인지 모르겠습니다.
링크는 쪽지로 보내드릴 수 있겠지만 채점을 하려면 권한이 9 이상이어야 하는데 '사내 게시판'이 있는 관계로 보안상 테스트 계정(학생 계정)만 보여드려야합니다.
다른 분들은 잘 쓰시는데 저만 안 되는 것 같죠? (^ㅡ^ ;;
자체로는 변수가 모자라 포인트 구현 쉽지 않습니다.
여러 방법이 있겠지만 파일 하나를 만들어서 시험 응시시 포인트, 점수 이상일 수 포인트, 점수 이하일 수 포인트로 해서 그것을 읽어서 처리하면 되지 않을까요?
리스트에서 객관식  자동 채점을 위해

///////////// 자동 채점을 위한 정답 가져오기
$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등 부터 줄 세우려니 이미 정의된 것을 사용해야 해서요.
-----------------------------------------------------------------------------


저는 민기만 님게서 만들어주신 대로 위 세 가지를 손봐서 객관식 문제 자동 채점을 해결했습니다.

폰트 크기, 색상, 아이콘 등은 본인의 홈페이지에 맞게 수정하셔서 쓰시면 되겠구요.

필요한 사람에게는 정말 신통방통한 스킨입니다. ^^*
UTF-8  맞는데요.

하 모니터가 크다보니 너무 크게 했나 보네요. 각 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에 추가하는거 맞지요?

이렇게 했는데 에러가 나네요.ㅜㅜ
일일이 감사합니다. ^^
그잖아도 민기만님의 댓글에서 힌트를 얻고, _이부분을 뺐더니 되네요.

그런데 또 하나가요.ㅎ
채점 뷰 페이지에서 총점은 나오는데 매개 문제의 점수가 안나오네요. 리시트에서는 자동채점이 잘 됩니다.
테마를 사용할 경우,
exam 폴더를 어디에 넣는 건가요?

다운받은 파일을 압축을 풀면,
첫 번째 폴더 exam을 통채로 테마 안에 있는 skin/board에 넣는 건가요?
g5용으로는 안만드시나요? g4를 g5로 바꾸는것도 보통이 아닌거 같아요. 민기남님은 더이상 이글을 안보시는거 같은데, 혹시 방법이 없을까요? 이글을 보시는분은 저 같은 사람이 길을 찾을수 있게 답변글로 부탁드려요.
g5용으로는 안만드시나요? g4를 g5로 바꾸는것도 보통이 아닌거 같아요. 민기남님은 더이상 이글을 안보시는거 같은데, 혹시 방법이 없을까요? 이글을 보시는분은 저 같은 사람이 길을 찾을수 있게 답변글로 부탁드려요.
g5용으로는 안만드시나요? g4를 g5로 바꾸는것도 보통이 아닌거 같아요. 민기남님은 더이상 이글을 안보시는거 같은데, 혹시 방법이 없을까요? 이글을 보시는분은 저 같은 사람이 길을 찾을수 있게 답변글로 부탁드려요.
g5용으로는 안만드시나요? g4를 g5로 바꾸는것도 보통이 아닌거 같아요. 민기남님은 더이상 이글을 안보시는거 같은데, 혹시 방법이 없을까요? 이글을 보시는분은 저 같은 사람이 길을 찾을수 있게 답변글로 부탁드려요.
전체 5,853 |RSS
그누4 스킨 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT