TypeScript : 성적표 프로그램

728x90
반응형

1. 프로그램 기본 세팅

[cmd]

1. npm init -y

2. tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true

 

[package.json] 

3. scripts 항목 수정

"scripts": {
    "start": "tsc && node ./dist/index.js",
    "build": "tsc --build",
    "clean": "tsc --build --clean"
},

 

4. src 폴더 생성

 

2. 프로그램 

src > [index.ts]

//학생 인터페이스 코드
interface Student {
    name: string;
    age: number;
    scores: {
        korean: number;
        math: number;
        society: number;
        science: number;
        english: number;
    };
}

//학점 부여
function assignGrade(average: number): string {
    if (average >= 90) {
        return 'A';
    } else if (average >= 80) {
        return 'B';
    } else if (average >= 70) {
        return 'C';
    } else if (average >= 60) {
        return 'D';
    } else {
        return 'F';
    }
}

//평균계산
function calculateAverage(student: Student): number {
    const sum =
        student.scores.korean +
        student.scores.math +
        student.scores.society +
        student.scores.science +
        student.scores.english;
    const average = sum / Object.keys(student.scores).length;
    return average;
}

//학생 생성
function createStudent(
    name: string,
    age: number,
    korean: number,
    math: number,
    society: number,
    science: number,
    english: number
): Student {
    return {
        name,
        age,
        scores: {
            korean,
            math,
            society,
            science,
            english,
        },
    };
}

//성적 출력
function printResult(student: Student): void {
    const average = calculateAverage(student); //평균구하기
    const grade = assignGrade(average); //계산된 평균으로 학점 추출
    console.log(`${student.name} (${student.age}세) - 평균: ${average.toFixed(2)}, 학점: ${grade}`);
}

//메인 함수
function main(): void {
    const spartan = createStudent('Spartan', 30, 95, 89, 76, 90, 97);
    printResult(spartan);
}
main();

 

1) 타입스크립트로 빌드하기

npm run build

 

2)  코드 실행

npm run start

 

끝.

반응형