본문 바로가기
프로그래밍-기초/C언어

[ C언어 ] 배열과 구조체를 활용한 성적관리프로그램

by 지연2 2023. 4. 26.
728x90

학점은행제 과제로 제출한 성적관리프로그램이다!

 

C언어의 배열과 구조체를 활용해 성적관리프로그램을 만드는 과제였는데,

과제할 때 C언어를 아예 몰라서 고생을 좀 했다 

 

덕분에 공부는 많이 했는데, 혹시나 이 글을 본 사람은 그런 고생하지 말라고 공유한다

 

컴파일하는 게 너무 오래걸려서 한 3일은 쓴 것 같은데 코드는 굉장히 간단하다.


1. 소스코드

 

소스코드 사진
C언어의 배열과 구조체를 활용한 학생 성적 관리프로그램 코드 이미지

 

혹시 사용할 사람이 있을까 싶어 소스코드도 따로 첨부한다!

#define _CRT_SECURE_NO_WARNINGS    // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>

//구조체 student 정의
struct student{
    int kor, eng, math, tot;
    double avg;
};


int main(){

    /* ============================= 학생 수 입력받기 ============================= */
    // 1. 학생 수 
    int num;

    // 2. 표준 입력을 받은 후 num(학생 수) 변수에 저장
    printf("학생 수를 입력하세요: ");
    scanf("%d", &num);    



    /* ====================== 구조체 student를 활용해 성적처리 ====================== */
    // 1. 구조체 student를 활용한 구조체 배열 stu[] 선언
    struct student stu[num];   

    // 2. 반복문을 사용해 학생 별 과목 점수를 입력 받은 후 저장
    for(int i = 0; i < num; ++i){
        printf("[ student %d ] 입력\n", i + 1);

        printf("국어 : ");
        scanf("%d", &stu[i].kor);

        printf("영어 : ");
        scanf("%d", &stu[i].eng);

        printf("수학 : ");
        scanf("%d", &stu[i].math);

        stu[i].tot = stu[i].kor + stu[i].eng + stu[i].math;
        stu[i].avg = stu[i].tot / num.;
        }
        printf("\n");


    // 3. 학생 성적 출력
    for(int i = 0; i < num; ++i){
        printf("student[%d] 총점 : %d\n", i + 1, stu[i].tot);
        printf("student[%d] 평균 : %.2lf\n\n", i + 1, stu[i].avg);
    }
    
    return 0;
}
 

 

2. 결과화면

결과 화면
성적 관리프로그램 실행 결과

결과화면은 다음과 같다!

댓글