#include "bank.h"
void Init_account(FILE *fp)
{
int id;
char name[NAME_LEN];
int money;
head = (bank *)malloc(sizeof(bank));
tail = (bank *)malloc(sizeof(bank));
head->next = tail;
tail->next = tail;
while (fscanf(fp, "%d %s %d", &id, name, &money) == 3){ // 정수형, 문자형, 정수형 3개일 때만 입력을 받음
ReadAccount(id, name, money);
}
}
void ReadAccount(int id, char *name, int money)
{
bank *t;
t = (bank *)malloc(sizeof(bank));
t->id = id;
strcpy(t->name, name);
t->money = money;
t->next = head->next; // 다음 노드를 가리킴
head->next = t; // 노드의 처음을 가리킴
}
void Make_account(FILE *fp)
{
int id;
char name[NAME_LEN];
int money;
bank *t;
t = (bank *)malloc(sizeof(bank));
printf("\n*********계좌 생성*********\n");
printf("계좌번호 : "); scanf("%d", &id);
printf("예 금 주 : "); scanf("%s", name);
printf("입 금 액 : "); scanf("%d", &money);
t->id = id;
strcpy(t->name, name);
t->money = money;
t->next = head->next;
head->next = t;
WriteAccount(fp); // 저장하는 함수로 파일 포인터를 넘겨줌
}
void Deposit(FILE *fp)
{
int id;
int money;
bank *t;
printf("계좌번호 : "); scanf("%d", &id);
printf("입 금 액 : "); scanf("%d", &money);
for (t = head->next; t != tail; t = t->next)
{
if (t->id == id)
{
t->money += money; // 잔액에 입금할 금액을 더해서
WriteAccount(fp); // 저장
return;
}
}
printf("없는 계좌번호입니다.\n");
}
void WithDraw(FILE *fp)
{
int id;
int money;
bank *t;
printf("계좌번호 : "); scanf("%d", &id);
printf("출 금 액 : "); scanf("%d", &money);
for (t = head->next; t != tail; t = t->next)
{
if (t->id == id)
{
if (t->money<money) // 출금액이 잔액보다 클 경우
{
printf("출금액이 잔액을 초과할 수 없습니다.\n");
return;
}
else{
t->money -= money; // 잔액에서 출금액을 빼서
}
WriteAccount(fp); // 저장
return;
}
}
printf("없는 계좌번호입니다.\n");
}
void Account_inquire(void)
{
bank *t;
for (t = head->next; t != tail; t = t->next)
{
printf("\n*********잔액 조회*********\n");
printf("계좌번호 : %d\n", t->id);
printf("예 금 주 : %s님\n", t->name);
printf("잔 액 : %d원\n\n", t->money);
}
}
void WriteAccount(FILE *fp)
{
bank *t;
rewind(fp); // 파일 읽는 포인터 지점을 맨 첨으로 돌리는 함수
for (t = head->next; t != tail; t = t->next)
{
fprintf(fp, "%d %s %d\n", t->id, t->name, t->money);
}
}
----------------------------------------------------------------------------------------