목차
4-4. 10개의 레코드로 구성된 작은 마스터 화일이 있다고 가정할 때, 다음과 같은 트랜잭션을 일괄 처리한다고 하자.
4-21. 은행 계좌 화일을 갱신하는 프로그램을 작성하라. 마스터 화일은 계좌 번호에 따라 정렬되어 있고 현재 잔액을 포함하고 있다. 트랜잭션 레코드는 계좌 번호와 현재 잔액에 가감할 액수가 포함되었다. 일반적인 오류 메시지를 줄 수 있고 계좌에서의 초과 인출시에 거부할 수 있게 프로그램이 설계되어야 한다.
□ 에러출력 부분
□ OLD_MASTER_FILE □ TRANSACTION_FILE
□ NEW_MASTER_FILE (갱신되어 새로이 생성된 파일)
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 (갱신되어 새로이 생성된 파일)
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
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 (갱신되어 새로이 생성된 파일)
추천자료
경영정보시스템
SQL 사용법 정리
SQL의설치
네트워크 프로그래밍
[영상처리 영상처리] AWGN(Additive White Gaussian Noise)을 적용한 이미지손상
B+트리의 삽입과 삭제 과정
데이터 압축
[시스템 분석 및 설계] 주문처리시스템 DFD 미니명세서(Mini - Spec)
<소프트웨어 공학> 소프트웨어 구현 파트 정리(PPT 파일)
자기테이프 연습문제
보건소 역할 기능 관련법규를 위해 조사한 파일들
데이터 압축
(A+ 레포트) 데이터베이스의 모형-계층형, 네트워크형, 관계형
음성 녹음 후 원하는 부분 자르기 : matlab으로 녹음 파일을 열어서 원하는 부분을 자른다.