power-girl0-0

[ C++ ] 은행 알고리즘 본문

언어/C++

[ C++ ] 은행 알고리즘

power-girl0-0 2021. 3. 30. 17:31
728x90

조건 :

- 비밀번호 입력시, 노출되지 않고 *모양으로 출력되어야 한다.

- 회원관리, 입금, 출금, 잔액 항목을 넣어라.

- 입금과 출금시, 계좌번호와 비밀번호가 틀리면 입출금이 불가능하다.


소스코드 :

#include <iostream>
#include <string>
#include <conio.h>
using namespace std;

class Bank{
private:
	string name; //회원명 
	string account; //계좌번호 
	string pwd; //비밀번호 
	int num;
	int my_money;
public:
	Bank(string n, string a, string p);
	int money();
	bool check();
	void person ();
	void in();
	void out();
	string security();
}; 
Bank::Bank(string n, string a, string p){
	name = n;
	account = a;
	pwd = p;
}

void Bank::person(){
	cout<<"회원명 : "<<name<<endl; 
	cout<<"계좌번호 : "<<account<<endl; 
	cout<<"비밀번호 : ";
	for(int i=0; i<pwd.size(); i++){
		cout<<"*";
	}
	cout<<endl;
}

bool Bank::check(){
	string input_a;
	string input_pwd;
	string sec;
	
	cout<<"계좌번호 :";
	cin>>input_a;
	cout<<"비밀번호 : ";
	
	for(int i=0; i<pwd.size(); i++){
		sec = getch(); //1문자 입력하며, 보이지 않음
		input_pwd += sec;
		putchar('*');
		sec += getch();
	}
	
	if(input_a==account && input_pwd==pwd){
		return true;
	}else{
		cout<<endl<<"틀렸습니다."<<endl;
		return false;
	}
	
}
void Bank::in(){
	int m = 0;
	if(check()){
		cout<<endl<<"입금할 금액 : " ;
		cin>>m;
		my_money += m;
		cout<<endl;
	}
}

void Bank::out(){
	int m = 0;
	if(check()){
		cout<<endl<<"출금할 금액 : " ;
		cin>>m;
		my_money -= m;
		if(my_money<=0){
			cout<<"잔액이 부족합니다."<<endl;
			my_money += m; 
		}
	}
}

string Bank::security(){
	
}

int Bank::money(){
	
	cout<<"************************"<<endl;
	cout<<"** 은행 관리 프로그램 **"<<endl;
	cout<<"************************"<<endl;
	
	while(1){
		cout <<endl<<"1.회원보기	2.입금	3.출금	4.잔액	5.나가기"<<endl;
		cout <<"번호 입력 : "; 
		cin >> num;
		
		switch(num){
			case 1:
				person();
				break;
				
			case 2:
				in();
				break;
			case 3:
				out();
				break;
				
			case 4:
				cout<<"현재 잔액 : "<<my_money<<endl; 
				break;
				
			case 5:
				cout<<"은행 관리가 끝납니다."<<endl; 
				exit(0);
		}
	}
	
}

int main(){
	Bank bk("홍길동","111-1111","1234");
	bk.money();
}

결과 :

 

 

728x90
Comments