C/C++ 예제

시삽: 레드플러스 님 
게시판 이동:
 제목 : 학점 계산 프로그램V0.0.1
글번호: 356
작성자: 레드플러스
작성일: 2013/01/26 오전 11:55:33
조회수: 5699
/*
    학점 계산 프로그램
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

#define N 3    // 3명만 처리

//[!] 학점 계산에 대한 구조체 설계
struct Record
{
    int Num;        // 번호
    int Eng;        // 영어
    int Jap;        // 일어
    int Tot;        // 총점
    float Avg;        // 평균
    char Grade;        // 학점
    int Rank;        // 등수
};

void main(void)
{
    int i, j, k;
    float max = 0.0; // 평균 최고값 담길 그릇
    //[0] Init : 초기화
    struct Record r[N];
    //[1] Input : 입력
    for (i = 0; i < N; i++)
    {
        printf("학생번호 : _\b"); scanf("%d", &r[i].Num);
        printf("영어점수 : _\b"); scanf("%d", &r[i].Eng);
        printf("일어점수 : _\b"); scanf("%d", &r[i].Jap);
    }
    //[2] Process : 처리(알고리즘)
    for (i = 0; i < N; i++)
    {
        // 총점
        r[i].Tot = r[i].Eng + r[i].Jap;
        // 평균
        r[i].Avg = r[i].Tot / 2.0; // 실수형으로 나누고자 할 때에는 2.0 식으로 나눠라.
        // 학점
        if (r[i].Avg >= 91 && r[i].Avg <= 100)
        {
            r[i].Grade = 'A';
        }
        else if (r[i].Avg >= 81 && r[i].Avg <= 90)
        {
            r[i].Grade = 'B';
        }
        else if (r[i].Avg >= 71 && r[i].Avg <= 80)
        {
            r[i].Grade = 'C';
        }
        else
        {
            r[i].Grade = 'D';
        } // end if
        // 반올림 : 추가적인 조건 : C언어는 round() 함수를 제공하지 않음
        r[i].Avg = (int)(r[i].Avg + 0.5); // 소수 첫째 자리에서 반올림
        // 최대 평균
        if (max < r[i].Avg)
        {
            max = r[i].Avg; // 더 큰값으로 초기화
        }
    } // end for
    // 등수
    for (i = 0; i < N; i++)
    {
        r[i].Rank = 1; // 1등으로 초기화
        for (j = 0; j < N; j++)
        {
            if (r[i].Avg < r[j].Avg)
            {
                r[i].Rank++; // 나보다 평균점수가 큰 사람이 있으면 등수 1증가 :1등->2등
            }
        }
    }

    //[3] Output : 출력
    printf("\n번호 영어 일어 총점 평균 학점 등수\n");
    printf("==================================\n");
    for (i = 0; i < N; i++)
    {
        printf("%4d %4d %4d %4d %4.1f %4c %4d\n"
            , r[i].Num, r[i].Eng, r[i].Jap, r[i].Tot, r[i].Avg, r[i].Grade, r[i].Rank);
    }
    printf("최대 평균 : %4.1f\n", max);
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 !. C언어 기초 문법 정리용 미니 프로젝트 : 테트리스 게임 만들기 - 레드플러스 2005-07-26 18570
  15. 실전 프로그램 제작(종합예제) - 레드플러스 2005-07-26 5376
  학점 계산 프로그램V0.1 학점계산프로그램.c(1 KB) 레드플러스 2005-11-15 5480
  학점 계산 프로그램V0.2 학점계산프로그램.xlsx(10 KB) 레드플러스 2005-11-16 4749
  학점 계산 프로그램V0.3 - 레드플러스 2005-11-16 4791
현재글 학점 계산 프로그램V0.0.1 - 레드플러스 2013-01-26 5699
  15.2. 체중 관리 프로그램 - 레드플러스 2005-11-16 4296
  체중 관리 프로그램 - 레드플러스 2005-11-17 4620
  파일 처리 사용 종합예제용 데이터파일 abc0003.txt(51 KB) 레드플러스 2005-11-22 4301
  성적관리(파일처리) 종합예제 작성용 abc0001.txt 파일 abc0001.txt(32 KB) 레드플러스 2005-11-29 4478
  거래처 관리 프로그램 작성용 데이터 파일(abc0002.txt) abc0002.txt(30 KB) 레드플러스 2005-12-01 4827
  기사_제1회_주유요금관리 : 문제, 데이터, 소스 기사_제1회_주유요금관리(1).zip(293 KB) 레드플러스 2006-10-31 4336
  가위바위보_C.c : C언어로 만든 초간단 가위 바위 보 게임 가위바위보_C.png(117 KB) 레드플러스 2014-06-03 7520
다음글 14. 기타 - 레드플러스 2005-07-26 5184
 
손님 사용자 Anonymous (손님)
로그인 Home