티스토리 뷰
728x90
이름, 과목 3과목 이상, 합, 평균 을 구하고 1등과 꼴찌를 구하는 이런 예제가 있다.
먼저 과목의 점수는 국어, 영어, 수학 순서대로 임의로 넣는다.
90, 80, 90
100, 90, 90
100, 100, 100
그리고 합, 평균 메소드는 프로토타입으로 처리 (합과 평균을 계산)
ㄴ 프로토타입으로 함수를 만들어 값을 반환하게 만들면 되겠고
객체 배열 3개 이상 작성을 하고
ㄴ 배열 3개이니 Array(3) 으로 배열을 만들고
Prompt 이름 입력 받아 객체 배열에 추가
ㄴ Prompt 로 입력 받아 객체에 만들어 놓은 변수에 배열 만큼의 반복문을 돌아서 이름을 입력 해주면 되는데
만약 이름을 입력 하지 않거나 취소를 누르면 처리를 해줘야 할거 같다.
배열 중 합이 최대값 객체 이름을 콘솔에 출력
ㄴ 배열을 sorting(정렬) 해서 젤 마지막에 있는 요소를 가지고 오면 되고
배열 중 합이 최소값 객체 이름을 콘솔에 출력
ㄴ 젤 첫번째 요소를 가지고 오면
참고로 sort().reverse() 를 써서 첫번째가 1등 마지막이 꼴찌 이렇게 구현 함.
누군가에게는 도움이...
아래는 전체 소스
// 속성: 이름, 3과목 이상, 합, 평균
const CNT = 3; // 과목수
function Haksang(k, e, m) {
this.name;
this.k = k; // 국어
this.e = e; // 영어
this.m = m; // 수학
}
// 합
Haksang.prototype.sum = function() {
return this.k + this.e + this.m;
}
// 평균
Haksang.prototype.avg = function() {
return this.sum() / CNT;
}
// 객체 배열 3개이상 생성 후 임의의 점수 넣기
var hsList = new Array(3);
hsList[0] = new Haksang(90, 80, 90);
hsList[1] = new Haksang(100, 90, 90);
hsList[2] = new Haksang(100, 100, 100);
// prompt 받기 위한 반복문
for (let i=0; i<hsList.length;) {
let cntStr = "( " + (i+1) + " / " + hsList.length + " 명 )"; // 안해도 될 듯
let name = prompt("학생 이름을 입력 하세오 " + cntStr);
// 예외 처리 안해도 됨(취소를 누르거나 아무것도 입력 안하거나)
if (name == null || name == "") {
alert("이름을 입력 해야 합니다." + cntStr + "\n" + (hsList.length-i) + " 명 남았습니다.");
continue;
}
hsList[i].name = name;
console.log(hsList[i].name + " : "+ hsList[i].sum());
console.log(hsList[i].avg());
i++; // 예외 처리 때문에 밖으로 뺌
}
hsList.sort().reverse(); // 정렬 후 배열 순서 바꿈
// 첫번째 자리가 1등
console.log("1등: " + hsList[0].name);
console.log("총점: " + hsList[0].sum());
// 배열 길이의 -1 자리는 꼴찌
console.log("꽁등: " + hsList[hsList.length-1].name);
console.log("총점: " + hsList[hsList.length-1].sum());
'SW' 카테고리의 다른 글
[javascript] prompt 로 취소를 누를 때까지 email 입력 받아 정규화 해서 배열에 추가 리스트 출력 하기(id 순으로 정렬 포함) (0) | 2020.04.26 |
---|---|
[javascript] 자바스크립트 prompt 로 email 입력 받아 검증 해서 출력 하기(email 에 Id 분리 Object에 넣기) (0) | 2020.04.26 |
[Tools] Visual Studio Code(vs code) 에서 Getter & Setter 자동 생성 (0) | 2020.04.25 |
[JAVA] StreamTokenizer 를 이용한 파서(Parser) (0) | 2020.04.25 |
[JAVA] while 문을 사용해서 십의자리(10)와 일의 자리(1)가 같은 수 출력 하기 (0) | 2020.04.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 웹앱프로그래밍
- 파이썬
- flask
- pythonanywhere
- 부트스트랩
- Visual Studio
- 웹앱 프로그래밍
- nginx
- 도커
- 플라스크
- 자바스크립트
- DB
- oracle
- Hello World
- 리눅스
- Java
- 웹앱
- 오라클
- 클라우드
- mysql
- WEB
- github
- python
- docker
- javascript
- 자바
- Cloud
- HTML
- GIT
- GCP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함