C언어/디딤돌 C언어 예제

[C언어 소스] 10 명의 국어 성적을 관리하는 프로그램

언제나휴일 2016. 11. 27. 03:27
반응형

[C언어 소스] 10 명의 국어 성적을 관리하는 프로그램


Program.c


#include <stdio.h>

#pragma warning(disable:4996)

#define MAX_STUDENT        10

int scores[MAX_STUDENT];

 

void Init();//초기화

void Run(); //사용자와 상호 작용

char SelectMenu(); //메뉴 선택

void InputScore(); //성적 추가

void DeleteScore();//성적 삭제

void SearchScore();//성적 조회

void ListScore();  //전체 성적 보기

void ViewScore(int num);//특정 학생 성적 보기

 

int main()

{

    Init();

    Run();

    return 0;

}

 

void Init()

{

    int i = 0;

    for (i = 0; i<MAX_STUDENT; i++)

    {

        scores[i] = -1;

    }

}

 

void Run()

{

    char key = 0;

    while ((key = SelectMenu()) != 'e')

    {

        switch (key)

        {

        case 'i': InputScore(); break;

        case 'd': DeleteScore(); break;

        case 's': SearchScore(); break;

        case 'l': ListScore(); break;

        default: printf("잘못 선택하였습니다.\n"); break;

        }

    }

}

 

 

char SelectMenu()

{

    char key[256] = "";

 

    printf("[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기\n");

    scanf("%s", key);

 

    return key[0];

}

 

void InputScore()

{

    int num = 0;

 

    printf("성적을 추가할 학생 번호를 입력:");

    scanf("%d", &num);    

 

    if ((num >= 1) && (num <= MAX_STUDENT))

    {

        int score = 0;

        printf("성적:");

        scanf("%d", &score);        

        scores[num - 1] = score;

    }

    else

    {

        printf("유효하지 않은 번호입니다.\n");

    }

}

 

void DeleteScore()

{

    int num = 0;

 

    printf("성적을 삭제할 학생 번호를 입력:");

    scanf("%d", &num);    

 

    if ((num >= 1) && (num <= MAX_STUDENT))

    {

        scores[num - 1] = -1;

    }

    else

    {

        printf("유효하지 않은 번호입니다.\n");

    }

}

 

void SearchScore()

{

    int num = 0;

    printf("성적을 조회할 학생 번호를 입력:");

    scanf("%d", &num);    

 

    if ((num >= 1) && (num <= MAX_STUDENT))

    {

        ViewScore(num);

    }

    else

    {

        printf("유효하지 않은 번호입니다.\n");

    }

}

 

void ListScore()

{

    int index = 0;

 

    for (index = 0; index < MAX_STUDENT; index++)

    {

        ViewScore(index + 1);

    }

}

 

 

void ViewScore(int num)

{

    if (scores[num - 1] != -1)

    {

        printf("[%d ]:[성적: %d]\n"num, scores[num - 1]);

    }

    else

    {

        printf("[%d ]:[성적입력하지 않음]\n"num);

    }

}


실행 결과

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

i

성적을 추가할 학생 번호를 입력:5

성적:90

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

i

성적을 추가할 학생 번호를 입력:3

성적:80

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

l

[1 번]:[성적: 입력하지 않음]

[2 번]:[성적: 입력하지 않음]

[3 번]:[성적: 80]

[4 번]:[성적: 입력하지 않음]

[5 번]:[성적: 90]

[6 번]:[성적: 입력하지 않음]

[7 번]:[성적: 입력하지 않음]

[8 번]:[성적: 입력하지 않음]

[9 번]:[성적: 입력하지 않음]

[10 번]:[성적: 입력하지 않음]

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

s

성적을 조회할 학생 번호를 입력:3

[3 번]:[성적: 80]

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

d

성적을 삭제할 학생 번호를 입력:3

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

l

[1 번]:[성적: 입력하지 않음]

[2 번]:[성적: 입력하지 않음]

[3 번]:[성적: 입력하지 않음]

[4 번]:[성적: 입력하지 않음]

[5 번]:[성적: 90]

[6 번]:[성적: 입력하지 않음]

[7 번]:[성적: 입력하지 않음]

[8 번]:[성적: 입력하지 않음]

[9 번]:[성적: 입력하지 않음]

[10 번]:[성적: 입력하지 않음]

[i]:성적 추가 [d]:성적 삭제 [s]:성적 조회 [l]: 전체 성적 보기

e



본문

[디딤돌 C언어] 57. 전역 변수





반응형