본문 바로가기
IT창고/C

학생 관리 프로그램 with C

by 창구창고 2007. 1. 22.

📑 목차

    반응형
    /**************************************************************
    *  Name:                                 student number: 200210***        
    *  Source: mint.c                                Executable: mint.exe
    *  Cource: C programming1       Spring 2003                        
    *  Assignment #1                Due Date: 03/21/2003
    ****************************************************************/
    #include<stdio.h>
    #include<math.h>
    int avg_grade_var(int *, int); //평균, 학점, 편차 구하는 함수
    int max_min(int *, int); //최대, 최소 구하는 함수
    int start();//프로그램 시작시 돌아가는 함수
    void start_end(void)//시작과 끝의 루프를 돌기위해 만든함수
    {
            int i;
            while(i!=0){
                    printf("Program Start is 1, Program End is 0 : ");//프로그램의 시작과 끝의 조건
                    scanf("%d",&i);
                    switch(i)//1이면 시작, 0이면 프로그램 종료
                    {
                    case 1:        start();
                            break;

                    case 0: printf("Program End, Good bye!!!!!!!n");
                            break;
                    }
            }
    }
    int main(void)
    {
            //프로그램 소개및 라이센스
            printf("************************************n");
            printf("*This program is score calculation.*n");
            printf("************************************n");
            printf("*      copyleft 2003.03 by mint.   *n");
            printf("************************************n");
            start_end(); //시작할지 종료할지 정하는 함수로 이동
    }
    int start(void)
    {
            int mark[10], i; //점수변수, 증가변수
            int score, oper; //점수자리변수, 메뉴선택 변수

            printf("***********************n");
            printf("  0 is top of program  n");//프로그램 처음으로
            printf("  How many score? -> ");
            scanf("%d",&score); //점수를 몇개 받을지 선언
            printf("***********************n");
            
            
            if(score == 0){
                    //프로그램 처음으로 갈때 출력
                    printf("++++++++++++++++++++++++++++++++n");
                    printf("+         Program Top          +n");
                    printf("++++++++++++++++++++++++++++++++n");
            }
            else if(score > 10){
                    //프로그램 처음으로 갈때 출력
                    printf("++++++++++++++++++++++++++++++++n");
                    printf("+         Program Top          +n");
                    printf("++++++++++++++++++++++++++++++++n");
            }
            else{
                    //점수 받는 소스
            for(i=0;i<score;i++){
                    printf("Enter score %d: ",i+1);
                    scanf("%d",&mark[i]);
            }
            //메뉴 소스
            printf("n");
            printf("*********************************n");
            printf("*              Menu             *n");
            printf("*********************************n");
            printf("*  1. Average, Grade, Variance  *n");
            printf("*  2. Maximum, Minimum          *n");
            printf("*********************************n");
            printf("What kind of operation?");
            scanf("%d",&oper);

            //메뉴 선택시 실행할 함수
            if(oper == 1) avg_grade_var(mark, score);
            else max_min(mark, score);
    }
            return 0;
    }
    int avg_grade_var(int *mark, int score)
    {
            int i, reavg, avg, oper; //증가, 평균, 메뉴선택 변수
            float var, sum; //편차 변수
            
            //메뉴 소스
            printf(".................n");
            printf(":      Menu     :n");
            printf(". ...............n");
            printf(":  1. Average   :n");
            printf(":  2. Grade     :n");
        printf(":  3. Variance  :n");
            printf(":  4. All       :n");
            printf(".................n");
            //메뉴 선택 소스
            printf("What kind of operation? ");
            scanf("%d",&oper);
            
            //메뉴 실행 소스
            if(oper >= 0){
                    printf("++++++++++++++++++++++n");//점수 나타내는 소스
                    for(i=0; i<score; i++)                        
                            printf("+   Score # %d = %d   +n",i+1,mark[i]);
                    //평균 구하는 소스
                    avg=0;
                    for(i=0; i<score; i++) avg=avg+mark[i];
                            reavg=avg/score;
                            printf("++++++++++++++++++++++++++++++++++++n");
                            printf("+         Average is      +   %d   +n",reavg);
                    //학점 구하는 소스
                    if(avg/score >= 90)
                            printf("+         Grade is        +    A   +n");
                    else if(avg/score >= 80)
                            printf("+         Grade is        +    B   +n");
                    else if(avg/score >= 70)
                            printf("+         Grade is        +    C   +n");
                    else if(avg/score >= 60)
                            printf("+          Grade is       +    D   +n");
                    else{
                            {
                            printf("+             Failed               +n");
                            printf("+ You must take this course again. +n");
                    }
            }
                    //편차구하는 소스
                    sum=0;
                    for(i=0; i<score; i++){
                            sum+=(float)pow((float)reavg-(float)mark[i], 2);
                    }
                            var=(float)sqrt(sum/score);
                    printf("+         Variance is     +  %2.2f  +n", var);
                    printf("++++++++++++++++++++++++++++++++++++n");
            }
            return 0;
    }

    int max_min(int *mark, int score)
    {
            int i, max, min; //증가, 최대, 최소 변수
            int oper; //메뉴 선택 변수

            //메뉴 소스
            printf(".................n");
            printf(":      Menu     :n");
            printf(". ...............n");
            printf(":  1. Maximum   :n");
            printf(":  2. Minimum   :n");
        printf(":  3. All       :n");
            printf(".................n");
            //메뉴 선택 소스
            printf("What kind of operation? ");
            scanf("%d",&oper);
            
            if(oper >= 0){
                    printf("++++++++++++++++++++++n"); //점수 나타내는 소스
                    for(i=0; i<score; i++)                        
                            printf("+   Score # %d = %d   +n",i+1,mark[i]);
                    //최대 최소 구하는 소스
                    min=1000;
                    max=0;
                    for(i=0; i<score; i++){
                            if(max<mark[i]) max = mark[i];
                            if(min>mark[i]) min = mark[i];
                            }
                    printf("++++++++++++++++++++++n");
                    printf("+Maximum score: + %d +n",max);
                    printf("+Minimum score: + %d +n",min);
                    printf("++++++++++++++++++++++n");
            }
            return 0;
    }
    반응형

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."