코딩/자바스크립트

[새싹 성동 2기] 자바스크립트를 이용한 간단한 코딩 실습

insu90 2024. 11. 12. 20:35

지금까지 포스팅한 내용과 검색을 기반으로 작성하겠습니다.

 

문제는 아래와 같습니다.

 

//  학생별 점수를 아래 형식에 맞춰서 콘솔에 출력
       
let scores = [];


/*  ### 학생별 점수 데이터
    0: {name: '홍길동', korean: 80, math: 90, english: 90}
    1: {name: '고길동', korean: 90, math: 80, english: 80}
    2: {name: '신길동', korean: 70, math: 80, english: 70}


    ### 출력 형식
    ----------- --------- --------- --------- --------- ---------
    학생이름     국어      영어      수학      합계      평균
    ----------- --------- --------- --------- --------- ---------
    홍길동       80        90        90        260       86.7
        :          :         :         :          :        :
*/

 

작성한 답안은 아래와 같습니다.

//해당 내용을 풀기 전에 먼저 구분을 짓습니다. 학생별 점수 데이터는 저대로 집어넣으면 될 것 같습니다.

let score = [
    {name: '홍길동', korean: 80, math: 90, english: 90},
    {name: '고길동', korean: 90, math: 80, english: 80},
    {name: '신길동', korean: 70, math: 80, english: 70}
]

//이 후 출력 부분의 이름부분은 데이터에서 불가능하진 않지만, 또한 굳이 데이터를 오염시킬 필요는 없다고 생각합니다. 간단하게 출력했습니다.

console.log(`------  ---- ---- ---- ----- -----`)
console.log(`이름     국어 수학 영어  합계  평균 `)
console.log(`------  ---- ---- ---- ----- -----`)


//위치는 이후 데이터 출력상황을 보고 잡겠습니다.
//이제 foreach를 통해 반복구문을 형성합니다.

score.forEach(function(student) {
    student.sum = student.korean + student.math + student.english;
    student.avg = (student.sum/3).toFixed(1);
    console.log(`${student.name}   ${student.korean}   ${student.math}   ${student.english}   ${student.sum}   ${student.avg}`);
    }
);

//여기서 평균 계산시 소수점이 많이 나오는 것을 확인했습니다. 구글 검색을 통해 소수점을 제한하는 명령어가 toFixed 임을 확인하고 적용했습니다.

------  ---- ---- ---- ----- -----
이름     국어 수학 영어  합계  평균 
------  ---- ---- ---- ----- -----
홍길동   80   90   90   260   86.7
고길동   90   80   80   250   83.3
신길동   70   80   70   220   73.3

//결과값입니다.

 

챗지피티를 통해 확인한 값은 아래와 같습니다.

 

let scores = [
    { name: "홍길동", korean: 80, english: 90, math: 90 },
    { name: "고길동", korean: 90, english: 80, math: 80 },
    { name: "신길동", korean: 70, english: 80, math: 70 }
];

// 합계와 평균 계산 함수
function calculateScores(data) {
    data.forEach(student => {
         // 국어, 영어, 수학 점수 속성의 일관성을 맞춤
         // 합계와 평균 계산
        student.sum = student.korean + student.english + student.math;
        student.avg = (student.sum / 3).toFixed(1);
    });
}

 // 표 그리기 함수
function printTable(data) {
    console.log("----------- -------- -------- -------- -------- --------");
    console.log(" 학생이름     국어      영어      수학      합계      평균 ");
    console.log("----------- -------- -------- -------- -------- --------");

    data.forEach(student => {
        console.log(
            `${student.name.padEnd(10)}  ${String(student.korean).padEnd(7)}  ${String(student.english).padEnd(7)}  ${String(student.math).padEnd(7)}  ${String(student.sum).padEnd(7)}  ${student.avg}`
        );
    });

    console.log("----------- -------- -------- --------  -------- --------");
}

 

 

*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.