수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

C++ 은행계좌관리 프로그램에 대해서..

헤벌심

2023.04.01

다음 아래의 소스는 은행계좌관리 프로그램입니다.
잔액조회시 잔액과 함께 현재 잔액의 연이율 4.8% 복리이자 금액이 함께 출력되고,
큰 메뉴에 대출을 추가, 9%의 복리이자를 가질 때,
잔액조회시 원금에서 값아야 할 대출금액과 대출이자금액이출력되는 기능을 추가할 수 있을까요?
메뉴상에서 엔터를 치면 다음달로 넘어갈 수 있구요..
달이 넘어갈 때마다 이자가 계산되고..
꼭좀 부탁드립니다...

#include iostream using namespace std; const int INIT_ACCOUNT = 10; // 초기 설정 계좌수
const int SIZE_VALUE = 5; // 초기 설정 계좌수 초과시 증가해야할 계좌수
// Account 클래스 : 계좌정보를 저장하는 클래스 class Account
{ private:
int id; //계좌번호
int balance ; //잔액
char* name ; //고객이름 public:
Account();
Account(int, int, char*);
Account(const Account& acc);
~Account(); void SetId(int id) ; //입력받은 계좌번호로 계좌번호 설정
void SetBalance(int balance); //입력받은 잔액으로 잔액 설정
void SetName(char* name); //입력받은 이름으로 이름 설정

int GetId(); //설정되어 있는 계좌번호 리턴
int GetBalance(); //설정되어 있는 잔액 리턴
char* GetName(); //설정되어 있는 이름 리턴
}; Account::Account()
{
this-id = 0;
this-balance = 0;
this-name = new char;
strcpy(this-name, );
} Account::Account(int id , int balance , char * name) //생성자
{
this-id = id;
this-balance = balance;
this-name = new char;
strcpy(this-name,name);
} Account::Account(const Account& acc) //복사생성자
{
id = acc.id;
balance = acc.balance;
name = new char;
strcpy(name,acc.name);
} Account::~Account() //소멸자
{
delete []this-name;
} void Account::SetId(int id) //계좌번호를 설정한다.
{
this-id = id;
} void Account::SetBalance(int balance) //잔액을 설정한다.
{
this-balance = balance;
} void Account::SetName(char* name) //고객 이름을 설정한다.
{
strcpy(this-name, name);
} int Account::GetId() //계좌번호를 리턴한다.
{
return this-id;
} int Account::GetBalance() //잔액을 리턴한다.
{
return this-balance;
} char* Account::GetName() //고객 이름을 리턴한다.
{
return this-name;
} //AccountManagement 클래스 : 고객에게 계좌정보를 입력받아 저장한다. class AccountManagement
{ private :
int accountSize; // 현재 개설된 계좌수
int maxAccountSize; // 개설될 수 있는 계좌수
Account* pArray; // 개설된 계좌 public :
AccountManagement();
void InitAccount(); // 생성자에서 호출되며 초기 계좌를 설정
void CheckAccount(); // 현재 계좌수를 확인하여 쳄曠臼?최대 갯수와 같은 경우 계좌수 자동증가
void PrintMenu(); // 메뉴출력
void MakeAccount(); // 계좌개설
void Deposit(); // 입금
void Withdraw();
void Remainder();
}; AccountManagement::AccountManagement() // 생성자
{
InitAccount() ; //전체 계좌의 총 수와 전체 크기 만큼의 계좌를 생성한다.
} void AccountManagement::InitAccount()
{
accountSize = 0 ;
maxAccountSize = INIT_ACCOUNT ;
pArray = new Account[INIT_ACCOUNT] ;
}
// 현재 발급되어 있는 계좌수와 최대 발급 가능 계좌수가 같은 경우 증가값만큼 계좌를 생성한다. void AccountManagement::CheckAccount()
{
if(accountSize maxAccountSize) // 현재 계좌를 더 발급 할 수 있는 경우
{ // (현재 발급되어 있는 계좌수 최대 발급 가능 계좌수)
return ;
} maxAccountSize += SIZE_VALUE ;

Account* tempArray = new Account[maxAccountSize] ; for(int i = 0; i accountSize; i++)
{
tempArray[i] = pArray[i] ;
} pArray = tempArray ;
} // 메뉴 함수 void AccountManagement::PrintMenu()
{
int iSelectMenu = 0; //거래 선택 변수

printf(\n ******** 원하시는 거래를 선택하세요 ********\n);
printf( ------------------------------------------------\n);
printf( 1.계좌개설 2.입 금 3.출 금 4.잔액조회 5.종 료\n);

cin iSelectMenu ;

switch(iSelectMenu) //선택된 거래에 해당하는 함수 호출
{
case 1:
MakeAccount();
break;
case 2:
Deposit();
break;
case 3:
Withdraw();
break;
case 4:
Remainder();
break;
case 5:
cout 은행계좌 관리 프로그램을 종료합니다. endl ;
break;
default: //선택 오류
PrintMenu(); //다시 메뉴 함수 호출
}
}
// 사용자의 요청시 계좌를 개설한다. void AccountManagement::MakeAccount()
{
int lid = 0 ;
int lbalance = 0 ;
char lname[50];

CheckAccount() ; cout # 개설할 계좌번호를 입력하세요 ;
cin lid;
cout # 고객님의 성함을 입력하세요(공백없이);
cin lname;
lbalance = 0; //잔액 초기화 pArray[accountSize].SetId(lid) ;
pArray[accountSize].SetBalance(lbalance) ;
pArray[accountSize].SetName(lname) ;

cout \n # lname 님의 계좌가 만들어졌습니니다.;
cout \n # 계좌번호 : lid \n # 잔액 : lbalance 원\n;
accountSize++; //다른 계좌 저장을 위한 증가연산 PrintMenu(); //개설 후 메뉴함수 호출
} // 입금 함수 void AccountManagement::Deposit()
{
int TmpAc, TmpBa; //임시계좌변수, 임시입금변수
cout # 입금할 계좌번호를 입력하세요 :;
cin TmpAc; for(int a = 0; a accountSize; a++)
{
&nbsbsp; if(TmpAc == pArray[a].GetId()) //해당 계좌를 찾는다.
{
cout # 고객님의 성함 : pArray[a].GetName() \n;
cout # 고객님의 잔액 : pArray[a].GetBalance() \n;
cout # 입금 금액을 입력하세요 ;
cin TmpBa; //임시입금변수에 저장
cout # TmpBa 원이 입금되었습니다.\n;

pArray[a].SetBalance(pArray[a].GetBalance() + TmpBa) ; // 계좌입금
cout # 고객님의 잔액 : pArray[a].GetBalance() \n; //잔액에 입금액 가산
break ;
}
else if( (accountSize-1) == a) //해당 계좌가 없는 경우
{
printf( # 계좌번호를 잘못 입력하셨습니다.\n);
break ;
}
}
PrintMenu();
} // 출금 함수 void AccountManagement::Withdraw()
{
int TmpAc,TmpBa; // 임시계좌변수, 임시출금변수
cout # 출금 할 계좌번호를 입력하세요 :;
cin TmpAc; for(int a = 0; a accountSize; a++)
{
if(TmpAc == pArray[a].GetId())
{
cout # 고객님의 성함 : pArray[a].GetName() \n;
cout # 고객님의 잔액 : pArray[a].GetBalance() \n;
cout # 출금 금액을 입력하세요\n ;
cin TmpBa; if (TmpBa pArray[a].GetBalance())
cout 잔액보다 출금하려는 금액이 많습니다. \n;
else{
cout # TmpBa 원을 출금합니다.\n;
pArray[a].SetBalance(pArray[a].GetBalance() - TmpBa) ; //잔액에서 출금액 감산
}
cout# pArray[a].GetName() 님의 잔액 : pArray[a].GetBalance() \n;
break ;
}
else if((accountSize-1)==a)
{
cout # 계좌번호를 잘못 입력하셨습니다.\n;
break ;
}
}
PrintMenu();
} // 잔액조회 함수 void AccountManagement::Remainder()
{
int TmpAc; // 임시계좌변수
cout # 잔액을 조회 할 계좌번호를 입력하세요 :;
cin TmpAc; for(int a = 0; a accountSize; a++)
{
if(TmpAc == pArray[a].GetId() )
{
cout # 고객님의 성함 : pArray[a].GetName() \n;
cout # 고객님의 잔액 : pArray[a].GetBalance() \n;

break ;
&; }
else if((accountSize-1)==a)
{
cout # 계좌번호를 잘못 입력하셨습니다.\n;
break ;
}
}
PrintMenu();
} void main()
{
AccountManagement* User = new AccountManagement() ; User-PrintMenu() ;
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2694977 C언어 소스문제점좀요 ... (2) 들꿈 2025-05-16
2694950 자바스크립트로 화면에 내용을 뿌려줄때 접근성 (3) 꺆잉 2025-05-16
2694921 보더 레이아웃 안에 플로우 레이아웃 넣는방법? 초롱 2025-05-15
2694894 웹 프로그래밍 관련해서 질문합니다. 창의적 2025-05-15
2694868 컨택트 폼 7에서 textarea 높이 조정 영글 2025-05-15
2694818 line-height값이 적용이 안되는데 왜 그런 거예요?. letter-spacing,line-height의 기준?? (2) 풍란 2025-05-14
2694795 이것 어떻게 좀 해결좀;; (3) 개럭시 2025-05-14
2694724 코딩시 폰트 문제; ㅠ 후력 2025-05-13
2694696 텍스트박스 입력에 관한 문제입니다. 딥공감 2025-05-13
2694668 [질문] 페이퍼비전 PointLight 관련 질문 드려요.. 두바다찬솔 2025-05-13
2694611 Flash Lite 2.1에서 BitmapData와 Matrix 지원안하나요? (3) 이플 2025-05-12
2694582 IE & 파이어폭스 (2) 흙이랑 2025-05-12
2694553 무비클립안의 duplicate 발동이 안돼네요; 딥보라 2025-05-12
2694523 자바 애플릿 질문좀 ^^ (6) 동이 2025-05-12
2694494 [질문] JAVA 또는 C++ 로 프로그램 개발시.. 레지스터리 등록 관련 의문점? (3) 우람늘 2025-05-11
2694469 익스6에서 css버그 나오는것 해결방법좀요 !!!! (6) 원술 2025-05-11
2694442 로컬에선 잘 나오는데 운영에 반영하면 이상하게 나와요. (8) 목화 2025-05-11
2694412 [질문] 이미지 로딩후 사이즈 조절할때 (1) 아담 2025-05-11
2694391 설치형 블로그 쓰시는 분들 어떤거 쓰세요?? (7) AngelsTears 2025-05-10
2694362 Microsoft SQL Server에서 서버만드는법 어둠 2025-05-10
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com