C언어로 제작한 은행 프로그램입니다.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <Windows.h>
struct user{
char name[10];//사용자 이름
int account_number;//계좌 번호
int ps;//비밀번호
int money;
};
struct user _user[10];
int account=0;//계좌의 번호
int choice_func(int choice_number);//선택지
int new_account(int account_number);//계좌생성
int check(int account_check);//확인
int in_accont(int number);//입급함수
int account_input();//께좌 이름확인
int account_name_check(int account_num);//목록
int account_other_input();//계좌이체 이름확인
int in_account_other_input(int number);//계좌이체 함수
main(){
int choice=11;
while(choice!=0){//무한루프 안에서 진행
printf("%d\n",account);
getch();
choice=choice_func(choice);
}
}
//선택지 함수
int choice_func(int choice_number){
int account_int;//계좌 초기화변수
char account_in;//계좌 초기화선택 변수
system("cls");
printf("1.계좌 개설 2.입금\n");
printf("3.계좌이체 ");
printf("4.현재 존재하는 계좌확인 \n0.종료\n");
printf("입력: ");
scanf("%d",&choice_number);
system("cls");
if(choice_number==1){
if(account>9){
printf("생성할 수 있는 계좌의 수가 더이상 없습니다.\n");
printf("계좌를 초기화 하시겠습니까?( (y=yes) || (n=no) ):");
scanf(" %c",&account_in);
if(account_in=='y')
account=0;
}
else{
new_account(account);
account++;
}
}
else if(choice_number==2)
account_input();
else if(choice_number==3)
account_other_input();
else if(choice_number==4){
account_name_check(account);
}
return choice_number;
}
//계좌 생성을 위한 함수
int new_account(int account_number){
while(account_number == account){
system("cls");
printf("이름: ");
scanf("%s",_user[account_number].name);
printf("계좌번호(최대 8자리): ");
scanf("%d",&_user[account_number].account_number);
printf("계좌의 비밀번호 4자리: ");
scanf("%d",&_user[account_number].ps);
account_number=check(account_number);
}
}
//생성전 확인하는 함수
int check(int account_check){
char check_account;//계좌 생성확인 변수
system("cls");
printf("이름: %s\n",_user[account_check].name);
printf("계좌번호: %d\n",_user[account_check].account_number);
printf("계좌의 비밀번호: %d\n",_user[account_check].ps);
printf("이대로 계좌를 생성하시겠습니까? (y==yes) || (n==no) : ");
check_account = getch();
if(check_account == 'y'){
printf("\n\n계좌가 생성되었습니다.");
getch();
}
else if(check_account == 'n'){
printf("다시 계좌를 생성합니다.");
getch();
return account_check;
}
else{
printf("\n다른 키를 입력하셨으므로 진행합니다.");
printf("\n\n계좌가 생성되었습니다.");
getch();
}
}
//입금
int in_account(int number){
int money;
printf("얼마를 입금하시겠습니까?\n입력: ");
scanf("%d",&money);
getch();
printf("입금이 완료되었습니다.");
Sleep(500);
system("cls");
_user[number].money+=money;
printf("이름: %s\n",_user[number].name);
printf("계좌번호: %d\n",_user[number].account_number);
printf("현재 잔액: %d원",_user[number].money);
}
//계좌 이름 확인
int account_input(){
char account_name[10];
int i,j=0;
printf("입금하실 계좌의 이름을 입력해주세요: ");
scanf("%s",account_name);
for(i=0;i<10;i++){
if( strcmp(_user[i].name,account_name) == 0 ){
printf("입금절차를 진행합니다.\n");
in_account(i);
getch();
break;
}
else{
j++;
if(j>=9){
printf("존재하지않는 계좌입니다.");
break;
}
}
}
}
//계좌 목록
int account_name_check(int account_num){
char ch='0';
int i=0;
while(ch != 'b' || i+1 == account_num){
system("cls");
if(i==0 && account_num==0){
printf("생성된 계좌가 없습니다.");
ch = getch();
if(ch=='b'){
break;
}
else
continue;
}
printf(" 이름: %s\n",_user[i].name);
printf(" 계좌번호: %d\n",_user[i].account_number);
printf(" 현재 계좌의 잔액: %d\n\n\n\n\n",_user[i].money);
printf(" a=이전계좌 d=다음계좌 b=나가기\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf(" %d/%d ",i+1,account_num);
ch = getch();
if(ch=='a'){
if(i==0){
printf(" 목록의 제일 처음입니다.\n");
getch();
}
else
i--;
}
else if(ch=='d'){
if(i+1>=account_num){
printf("목록의 제일 끝입니다.\n");
getch();
}
else
i++;
}
else if(ch=='b'){
break;
}
}
}
//계좌이체 함수
int in_account_other_input(int number){
int i,j=0;
int money;
int account_number;
int account_PS;
char name[10];
printf("당신의 이름을 입력해주세요: ");
scanf("%s",name);
for(i=0;i<10;i++){
if( strcmp(_user[i].name,name) == 0 ){
printf("\n계좌번호를 입력해 주세요: ");
scanf("%d",&account_number);
if(account_number==_user[i].account_number){
printf("계좌의 비밀번호를 입력해주세요: ");
scanf("%d",&account_PS);
if(account_PS==_user[i].ps){
printf("얼마를 입금하시겠습니까?\n입력: ");
scanf("%d",&money);
if(_user[i].money<money){
printf("계좌의 잔액이 부족합니다.\n");
getch();
break;
}
else{
_user[i].money-=money;
_user[number].money+=money;
printf("계좌이체가 완료 되었습니다.");
Sleep(500);
system("cls");
printf("이름: %s\n",_user[number].name);
printf("계좌번호: %d\n",_user[number].account_number);
printf("현재 잔액: %d원",_user[number].money);
}
}
else{
printf("계좌의 비밀번호가 맞지 않습니다.");
getch();
break;
}
}
else{
printf("계좌의 이름과 계좌번호가 일치하지 않습니다.");
getch();
break;
}
}
else{
if(j>=9){
printf("존재하지않는 계좌입니다.");
getch();
break;
}
j++;
}
}
}
//계좌이체 이름확인
int account_other_input(){
char account_name[10];
int i,j=0;
printf("계좌이체하실 계좌의 이름을 입력해주세요: ");
scanf("%s",account_name);
for(i=0;i<10;i++){
if( strcmp(_user[i].name,account_name) == 0 ){
printf("계좌이체를 진행합니다.\n");
in_account_other_input(i);
getch();
break;
}
else{
j++;
if(j>=9){
printf("존재하지않는 계좌입니다.");
break;
}
}
}
}