#include
#include
#include
void output();
void main()
{
FILE *ifp, *ofp; //파일구조체 선언
char name[10]; //이름 저장 배열
int stdap[10]; //학생들이 낸 답 저장 배열
int jdap[10] = {3,4,2,2,1,4,5,2,3,5}; // 정답 배열
int yes; //맞힌갯수 저장변수
if( (ifp=fopen("stdap.txt","rt"))==NULL){
printf("stdap.txt file open error! \n");
getch();
return;
} //파일 오픈 실패하면 돌아가라~
if( (ofp=fopen("res.txt","wt"))==NULL){
printf("res.txt file open error! \n");
getch();
return;
}
while(fgets(name,10,ifp)!=NULL){ //이름이 있으면 돌아라~~~
yes = 0; //맞은갯수
fputs(name,ofp); //이름을 읽어다가 쓰기
for(int i=0 ; i<10 ; i++){
fscanf(ifp,"%d ",&stdap[i]);
} //학생들이 쓴답 읽어오기
for(int j=0 ; j<10 ; j++){ //답비교
if(stdap[j] == jdap[j]){
fprintf(ofp,"O"); //맞으면 O찍고
yes++; //맞은갯수 증가
}
else{
fprintf(ofp,"X"); //틀리면 X찍고
}
}
fprintf(ofp," %d \n",yes*10); //점수 출력
}
fcloseall(); //파일 저장 닫기
output();
}
void output()
{
FILE *ofp;
char name[10],stox[10]; //이름 저장 배열, o,x 저장 배열
int count=1; //출력시 학생수
int len; //입력문자열 길이 구하기
int jumsu; //읽어온 점수를 넣는 함수
if( (ofp=fopen("res.txt","rt"))==NULL){
printf("res.txt file open error! \n");
getch();
return;
} //파일 오픈 실패하면 돌아가라~
printf("[ 이 름 ] [ 점수 ] [ 1 2 3 4 5 6 7 8 9 10 ]\n");
while(fgets(name,10,ofp)!=NULL){
len = strlen(name);
name[len-1] = NULL;//옆에 점수가 찍히도록 개행을 없애주고
for(int i=0 ; i<10 ; i++){
fscanf(ofp,"%c ",&stox[i]);
} // o,x를 받아오고
fscanf(ofp,"%d ",&jumsu); // 점수를 받아와서
printf("%2d. %7s\t (%4d) \t",count++,name,jumsu); // 순번을 붙여 이름과 점수 출력
for(int j=0 ; j<10 ; j++){
printf("%3c",stox[j]); //몇번이 맞았는가 출력
}
if(count%10==1 && count != 1) {
printf("\nPress any Key...\n"); //10명씩 끊어서 보여주기
getch();
system("cls");
printf("[ 이 름 ] [ 점수 ] [ 1 2 3 4 5 6 7 8 9 10 ]");
}
printf("\n");
}
fclose(ofp);
}
댓글 없음:
댓글 쓰기