C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[332] [답변] WITCHBBO/ [씨빌더] 살려주실분..? 제발../프포
pcni [ ] 5502 읽음    1998-05-15 19:33

안녕하세요. PCNI입니다.
오래간만에 TC로 프로그램을 짜니 옛날 생각이 나는군요.
그리고, 저는 다른 리포트로 프로그램 짜주는 것을 무지 싫어하지만,
(왜냐면, 도와주는 건 문제 없지만, 그렇게 되면 발전이 없을 것이기
때문입니다.) WITCHBBO님이 도움을 꼭 필요로 하는 것 같아 이렇게 도와
드립니다.그리고, 저의 뜻을 아신다면, 주석을 참조로 해서 반드시 소스
전체를 공부해서 이해한뒤, 저에게 메일 주셔야 합니다. 꼭요.
변수나 전체적인 처리과정은 번거럽더라도 WITCHBBO님의 소스형태에서
기본적으로 틀을 취했어요. 소스가 정리가 안 되었어요. 예를 들면 r이란
변수는 필요없답니다. 이해안 되시는 부분은 질문 주셔도 좋아요.
그럼 안녕히 계세요.

#include <stdio.h> /* 기본적인 헤더 화일 */
#include <conio.h>
#define All 3 /*전체 학생 수 입니다. 100명을 입력받고 싶으면 여기를 100으로
               하시면 됩니다. 현재는 제가 테스트 한다고 3명으로 했어요.*/
main()
{

int a[All+1][8]; /*C의 배열은 기본적으로  a[0] 부터 시작합니다. 명심하세요 */
                 /* 101번째 방은 a[100][x]가 되겠죠 */
                 /* a[100][x]에 전체 반아이들의 과목별 평균을 냅니다.*/

int c[All+1]; /*등수를 내기 위해 평균을 저장하고 정렬할 변수 */
int i,j,r,temp;
char *b[All]; /*이름을 입력받습니다.*/
int rc = 0;
clrscr(); /*화면 청소*/

for(i=0;i<All+1;i++) /*배열 초기화*/
for(j=0;j<8;j++)
  {
   a[i][j] = 0;
   c[i] = 0;
  }

for(i=0;i<All;i++)
{
printf("Input Name [ex : HongGD] :"); /*입력부 : 이름 띄워쓰지 마세요*/
scanf("%s",b[i]);   /* ex에 있는 형태로 입력해 주세요 */

printf("Input SungJuk [ex : 80 85 90 80 100] :"); /*과목별 성적 입력 */
scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]);

for(j=0; j<5; j++) /* 합계 */
a[i][5]+=a[i][j];

a[i][6]=a[i][5] / 5; /* 평균 */
}

for(i=0;i < All;i++) /* 반아이들의 과목별 합산 */
for(j=0;j<7;j++)
  a[All][j] = a[All][j] + a[i][j];


for(j=0;j<7;j++)
a[All][j]  = a[All][j] / All; /*합산된 과목의 평균을 내기 위해
                                      전체 학생수로 나누어 줍니다.
                                     평균을 원하지 않을때는 이두줄을
                                     지워 주시면 되겠죠*/



r = 0;
for(i = 0 ;i < All ;i++) /* c배열에 평균성적 옮김 */
c[i] = a[i][6];
for(i = 0;i < All;i++) /* c에 있는 것을 내림차순으로 정렬함 */
for(j = i;j < All;j++)
   if(c[i]<c[j])
    {
    temp = c[i];
    c[i] = c[j];
    c[j] = temp;
    }
for(i = 0;i < All; i++) /* c에 정렬된 것과 a의 평균이 같으면 그것이 등수 */
for(j = 0;j < All;j++) /* 이 부분 이해 잘 하셔야 합니다. */
if(a[i][6] == c[j])  a[i][7] = j+1;

/*이제 부터 출력부 */
printf("Bunho    Name   Subj1  Subj2   Subj3   Subj4   Subj5    Total    Ave    Grade\n");
printf("-----------------------------------------------------------------------------\n");

/*학생별로 출력*/
for(i=0;i< All;i++)
{
printf("%5d %6s",i + 1,b[i]);
for(j=0;j<8;j++)
printf("   %5d",a[i][j]);
printf("\n");
}
printf("-----------------------------------------------------------------------------\n");
/*반전체 평균 출력부*/
printf("Sum        :");
for(j=0;j<7;j++)
printf("   %5d",a[i][j]);
printf("\n-----------------------------------------------------------------------------\n");

getch();

}

<제가 예제로 해본 화면>

Input Name [ex : HongGD] :Kang
Input SungJuk [ex : 80 85 90 80 100] :80 100 75 80 70
Input Name [ex : HongGD] :Kim
Input SungJuk [ex : 80 85 90 80 100] :100 100 90 85 80
Input Name [ex : HongGD] :Lee
Input SungJuk [ex : 80 85 90 80 100] :100 70 80 60 80
Bunho    Name   Subj1  Subj2   Subj3   Subj4   Subj5    Total    Ave    Grade
-----------------------------------------------------------------------------
    1   Kang      80     100      75      80      70     405      81       2
    2    Kim     100     100      90      85      80     455      91       1
    3    Lee     100      70      80      60      80     390      78       3
-----------------------------------------------------------------------------
Sum        :      93      90      81      75      76     416      83
-----------------------------------------------------------------------------



+ -

관련 글 리스트
331 [질문] [씨빌더] 살려주실분..? 제발../프포 witchbbo 6381 1998/05/15
332     [답변] WITCHBBO/ [씨빌더] 살려주실분..? 제발../프포 pcni 5502 1998/05/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.