영상
문제
<script>
/*
[문제]
OMR카드 예제를 클래스로 구현하시오.
한 문제 당 20점이다.
[예시]
[1, 4, 3, 5, 2]
[1, 1, 3, 5, 1]
[O, X, O, O, X]
60점
*/
class ScoreMng {
}
//-------------------------------------------
let sm = new ScoreMng();
</script>
Java
복사
해설
<script>
/*
[문제]
OMR카드 예제를 클래스로 구현하시오.
한 문제 당 20점이다.
[예시]
[1, 4, 3, 5, 2]
[1, 1, 3, 5, 1]
[O, X, O, O, X]
60점
*/
class ScoreMng {
omr = [1, 4, 3, 5, 2]; // 모범 정답
me = []; // 학생 답안
count = 0; // 정답을 맞춘 개수
score = 0; // 성적
setMyAnswer() {
for(let i=0; i<5; i++) {
this.me.push(Math.floor(Math.random() * 5) + 1);
}
}
checkScore() {
for(let i=0; i<5; i++) {
if(this.omr[i] == this.me[i]) {
this.count += 1;
}
}
this.score = this.count * 20;
}
printOmr(arr) {
document.write("[");
for(let i=0; i<arr.length; i++) {
document.write(arr[i]);
if(i < arr.length - 1) {
document.write(", ");
}
}
document.write("]<br>");
}
printResult() {
document.write("[");
for(let i=0; i<5; i++) {
if(this.omr[i] == this.me[i]) {
document.write("O");
} else {
document.write("X");
}
if(i < 4) {
document.write(", ");
}
}
document.write("]<br>");
document.write(this.score + "점");
}
run() {
this.setMyAnswer();
this.checkScore();
this.printOmr(this.omr);
this.printOmr(this.me);
this.printResult();
}
}
//-------------------------------------------
let sm = new ScoreMng();
sm.run();
/*
* 클래스 작성 순서
1. 클래스와 변수를 작성한다.(함수는 제외)
2. 클래스 메모리를 생성한다.
예) let sm = new ScoreMng()
3. 전체 실행할 함수를 호출한다.
예) sm.run()
4. 클래스로 돌아가서 run함수를 작성한다.
5. run함수 내에서 실행 순서에 따라
추가적인 함수 및 기능을 작성한다.
*/
</script>
Java
복사