HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
장지원 페이지/
[Notion] :
[Notion] :
/
🏧
ATM
/
Initialization summary

Initialization summary

 
class Account { private: string name; // 계좌 주 이름 string account_num; // 계좌번호 int password; // 비밀번호 int balance; // 잔액 string bank; // 계좌 은행 string** AccountTrans; public: Account(string bank_name, string user_name, string account_number, int user_password, int available_funds); string getBankName(); string getAccountNum(); int getPassword(); int getBalance(); void setBalance(int update_balance); }; Account::Account(string bank_name, string user_name, string account_number, int user_password, int available_funds) { this->bank = bank_name; this->name = user_name; this->account_num = account_number; this->password = user_password; this->balance = available_funds; this->AccountTrans = new string * [20]; cout << "[Account Constructor] Account ID: " << this->account_num << endl; }
 
class Bank { private: string bank_name; Account* account_list[10]; // 모든 account의 리스트 int num_of_accounts = 0; public: static ATM* atm_list[10]; // 모든 ATM 리스트 static int num_of_atm; // atm_list indexing 하기 위한 변수 static Bank* bank_list[10]; // 모든 bank의 list -> atm에서 사용하기 위함 static int num_of_bank; // bank_list indexing 하기 위한 변수 Bank(const string); void addATM(ATM* atm); // atm_list에 ATM을 추가하는 함수 void setAccount(Account*); // 계좌 추가 void getAccount(); // 관리하는 계좌들 출력 void setDeposit(Account*, int money); // deposit 결과 계좌에 반영 void setWithdrawal(Account* account, int money); // withdrawal 결과 계좌에 반영 void setTransfer(Account* account, int money); // transfer 결과 계좌에 반영 bool verifyPassword(Account* account, int pw); // pw가 account 비번 맞는지 확인 Account* findAccount(string ID); string getBankName(); // bank name return Bank* getAllBank(); void printAllAccounts(); };
 
 
class ATM { private: int serial_type; // single bank 이면 1, multi bank 이면 2 Bank* serial_primary_bank; // primary bank의 ptr int serial_lang_type; // unilingual 이면 1, bilingual 이면 2 int count = 0; // authoriaztion 할 때 시도 횟수 세는 변수 int num_of_1000; int num_of_5000; int num_of_10000; int num_of_50000; string** SessionSummary = new string * [20]; int trans = 0; public: // Bank *bank_list[10]; int serial_num; // serial number Bank* current_bank; // 현재 사용중인 bank Account* current_acc; // 현재 사용중인 account double account_list[10]; // account list int available_cash; // ATM에 남은 돈 ATM(Bank* primary_bank, int serial_number, int type, int language, int initial_1000, int initial_5000, int initial_10000,int initial_50000); // multi bank ATM constructor void addBank(); bool authorization(string account_num); void deposit(); // 여기까지 구현함!! void withdrawal(); bool withdrawal_fee(); void transfer(); void StartSession(Bank** bank_list); bool authorization(); void EndSession(); void admin(); void ATMHistory(string trans, Account* account, Account* desinationaccount, int amount); void PrintHistory(int session); };
 
Bank* findBank(string bank_name){ Bank* bank_ptr; for (int i=0; i< 10; i++) { if (bank_name == Bank::bank_list[i]->getBankName()) { bank_ptr = Bank::bank_list[i]; } } } Bank* Bank_Creation(){ return new_bank; } void Account_Creation() ATM* ATM_Creation(){ return new_ATM; } int main() { // Bank들 생성함 vector<Bank*> Banks; int create_bank = 1; int count_bank = 0; cout << "--Start making Banks--" << endl; while (create_bank == 1){ Banks.push_back(Bank_Creation()); count_bank += 1; cout << "Do you want to create another bank?" << endl; cout << "1.Yes\t2.No" << endl; cin >> create_bank; } cout << "--Finish making Banks--" << endl; // Account들 생성함 int create_account = 1; cout << "--Start making Accounts--" << endl; while (create_account){ Account_Creation(); cout << "Do you want to create another account?" << endl; cout << "1.Yes\t2.No" << endl; cin >> create_account; } cout << "--Finish making ATMs--" << endl; // ATM들 생성함 vector<ATM*> ATMs; int create_ATM = 1; int count_ATM = 0; cout << "--Start making ATMs--" << endl; while (create_ATM){ ATMs.push_back(ATM_Creation()); cout << "Do you want to create another ATM?" << endl; cout << "1.Yes\t2.No" << endl; cin >> create_ATM; } cout << "--Finish making ATMs--" << endl; cout << endl; // Use ATM int start_session; cout << "Would you like to use a ATM machine?" << endl; cout << "1.Yes\t2.No" << endl; cin >> start_session; while(start_session == 1){ int ATM_id; ATM* ATM_ptr; cout << "Insert the serial number of the ATM you want to use : "; cin >> ATM_id; // ATMs에서 ATM 찾는 함수!!! ATM_ptr->StartSession(Bank::bank_list); cout << "Would you like to use a ATM machine?" << endl; cout << "1.Yes\t2.No" << endl; } return 0; }