정익사 파일처리 4장 연습문제 중 4,21번 문제
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

4-4. 10개의 레코드로 구성된 작은 마스터 화일이 있다고 가정할 때, 다음과 같은 트랜잭션을 일괄 처리한다고 하자.

4-21. 은행 계좌 화일을 갱신하는 프로그램을 작성하라. 마스터 화일은 계좌 번호에 따라 정렬되어 있고 현재 잔액을 포함하고 있다. 트랜잭션 레코드는 계좌 번호와 현재 잔액에 가감할 액수가 포함되었다. 일반적인 오류 메시지를 줄 수 있고 계좌에서의 초과 인출시에 거부할 수 있게 프로그램이 설계되어야 한다.

□ 에러출력 부분

□ OLD_MASTER_FILE □ TRANSACTION_FILE

□ NEW_MASTER_FILE (갱신되어 새로이 생성된 파일)

본문내용

n\n",m.num); // 에러메세지 출력
fprintf(newm,"%7ld%22ld\n",m.num,m.money);
fscanf(oldm,"%ld%ld\n",&m.num,&m.money);
}
else
{
m.money=m.money-t.aos;
// 올드마스터파일의 예금액에서 트랜잭션파일의 출금액을 뺀 값을 예금액에 갱신
fprintf(newm,"%7ld%22ld\n",m.num,m.money);
fscanf(oldm,"%ld%ld\n",&m.num,&m.money);
}
}
else
{
printf(" ■ ERROR!!\n");
printf(" 트랜잭션 파일의 %ld번 계좌는 OLD 마스터 파일에 미 존재하므로 인출(감산) 불가능!\n\n",t.num);
}
}
if((t.num==m.num)&&(t.sign==0))
// 트랜잭션 파일의 계좌번호와 올드마스터파일의 계좌번호가 같고 시그널이 0(입금_가산)이면
{
m.money=m.money+t.aos;
// 올드마스터파일의 예금액에 트랜잭션 파일의 입금액을 더한 값을 예금액에 갱신
fprintf(newm,"%7ld%22ld\n",m.num,m.money);
fscanf(oldm,"%ld%ld\n",&m.num,&m.money);
}
if((t.num // 트랜잭션 파일의 계좌번호가 올드마스터파일의 계좌번호보다 작고 시그널이 0이면
fprintf(newm,"%7ld%22ld\n",t.num,t.aos);
}
}
while (fscanf(oldm,"%ld%ld",&m.num,&m.money) != EOF)
// 모든 트랜잭션 파일 내용을 처리한후 남은 올드마스터파일의
(아무런 변동없는 내용) 내용들을 뉴마스터파일에 기록
fprintf(newm,"%7ld%22ld\n",m.num,m.money);
fclose(oldm); // oldm이 가리키는 파일을 닫아준다
fclose(trans); // trans가 가리키는 파일을 닫아준다
fclose(newm); // newm이 가리키는 파일을 닫아준다
return 0; // main()의 리턴값
}
□ 에러출력 부분
모든 에러에 대하여 화면 출력하고 에러가 있는 트랜잭션 데이터에 대해서는 갱신에 사용되지 않는다.
□ OLD_MASTER_FILE □ TRANSACTION_FILE
□ NEW_MASTER_FILE (갱신되어 새로이 생성된 파일)

키워드

  • 가격2,000
  • 페이지수6페이지
  • 등록일2006.05.08
  • 저작시기2003.4
  • 파일형식한글(hwp)
  • 자료번호#348437
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니