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
[55502] 씨언어 잘하시는분 좀 가르쳐주세요~
츠바사 [] 1113 읽음    2008-12-20 00:11
1. 파일로 작성된 성적자료를 구조체 변수로 입력하고, 가중치를 적용한 총점을 구하여 등급을 부여한다.
95이상 : A+
90이상 : A0
85이상 : B+
80이상 : B0
75이상 : C+
70이상 : C0
65이상 : D+
60이상 : D0
60미만 : F

2. 총점의 내림차순으로 입력된 성적자료와 총점 및 등급을 정렬하여 파일로 출력한다.

친구껄 보고 공부를 하고 있는데 잘 이해가 안되네요 ㅠ
어느부분은 가중치를 준부분이다 어떤부분은 텍스트파일을 읽어온 부분이다
이런거좀 알려주실수 있는분 계신가요 ㅠ


그리고 2번에 총점을 내림차순으로 정렬해서 파일로 출력하는건 어떻게하나요?ㅠ
가르쳐주세요~
부탁드립니다 ㅠ


#include <stdlib.h>
struct pscr{
int num;
char snm[10];
char nme[10];
int mid;
int fin;
int hw1;
int hw2;
int atd;
};
typedef struct pscr pscr;
int grd(int);
char *gd[]={'A+','Ao','B+','Bo','C+','Co','D+','Do','F'};
double ttp( pscr *);
pscr psc;
int main(){
FILE *fp, *fp2;
char fn[] = 'strscr.txt', fn2[] = 'nlst.txt';
pscr *pps = &psc;
if ((fp = fopen(fn,'r')) == NULL) {
  printf('can't open the file\n');
  exit(1);
}
if ((fp2 = fopen(fn2,'w')) == NULL) {
  printf('can't open the file\n');
  exit(1);
}
while (!feof(fp)) {
  fscanf(fp,'%d%s%s%d%d%d%d%d',&psc.num ,psc.snm ,
   psc.nme ,&psc.mid ,&psc.fin ,&psc.hw1 ,&psc.hw2 ,&psc.atd );
  printf('%3d%10s%10s%5d%5d%5d%5d%5d\n',pps->num ,
   pps->snm ,pps->nme ,pps->mid ,pps->fin ,pps->hw1 ,pps->hw2 ,pps->atd );
  fprintf(fp2,'%3d%10s%10s%5d%5d%5d%5d%5d\n',pps->num ,
   pps->snm ,pps->nme ,pps->mid ,pps->fin ,pps->hw1 ,pps->hw2 ,pps->atd );
  printf('%28.1f %4.1f %4.1f %4.1f %4d %8.1f',pps->mid *0.3,pps->fin *0.4,
   pps->hw1 *0.3,pps->hw2 *0.3,pps->atd,ttp(pps));
  fprintf(fp2,'%28.1f %4.1f %4.1f %4.1f %4d %8.1f',pps->mid *0.3,pps->fin *0.4,
   pps->hw1 *0.3,pps->hw2 *0.3,pps->atd,ttp(pps));
  printf('%8s',gd[grd((int)ttp(pps))]);
  fprintf(fp2,'%8s',gd[grd((int)ttp(pps))]);
  printf('\n\n');fprintf(fp2,'\n\n');
}
fclose(fp);
fclose(fp2);
return 0;
}
double ttp(pscr *x)
{
double y = (double)x->mid * 0.3 + x->fin * 0.4 + x->hw1 * 0.3 + x->hw2 * 0.3 + x->atd;
return y;
}
int grd(int x)
{
int y;
if( x >= 95 )
  y=0;
else if(x >= 90)
  y=1;
else if(x >= 85)
  y=2;
else if(x >= 80)
  y=3;
else if(x >= 75)
  y=4;
else if(x >= 70)
  y=5;
else if(x >= 65)
  y=6;
else if(x >= 60)
  y=7;
else if(x >= 0)
  y=8;
return y;
}

+ -

관련 글 리스트
55502 씨언어 잘하시는분 좀 가르쳐주세요~ 츠바사 1113 2008/12/20
55509     Re:씨언어 잘하시는분 좀 가르쳐주세요~ 라스코니 1050 2008/12/22
55507     Re:씨언어 잘하시는분 좀 가르쳐주세요~ hoho 968 2008/12/22
55504     Re:씨언어 잘하시는분 좀 가르쳐주세요~ 시녕tm 886 2008/12/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.