Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)
本文實(shí)例為大家分享了Java實(shí)現(xiàn)模擬ATM機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
項(xiàng)目名稱
模擬ATM機(jī)
項(xiàng)目描述
簡(jiǎn)單實(shí)現(xiàn)ATM機(jī)功能
代碼實(shí)現(xiàn)
測(cè)試類
public class Test { //模擬多功能ATM機(jī) public static void main(String[] args) { ATM atm = new ATM(); atm.opearte(); }}
主類:實(shí)現(xiàn)主方法
public class ATM { private Bank bank; public ATM(){ bank = new Bank(); } private void success(BankCard bankCard) { while (true) { System.out.println('請(qǐng)選擇:1、查詢余額,2、取款,3、存款,4、轉(zhuǎn)賬,5、退卡'); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); if (choice == 5) {return; } switch (choice) {case 1: int money = bank.printf(bankCard); System.out.println('余額:' + money); break;case 2: System.out.println('請(qǐng)輸入取款金額:'); money = scanner.nextInt(); bankCard.withdraw(money); break;case 3: System.out.println('請(qǐng)輸入存款金額:'); money = scanner.nextInt(); bankCard.deposit(money); break;case 4: System.out.println('請(qǐng)輸入對(duì)方賬戶id:'); int id = scanner.nextInt(); BankCard card = bank.transfer(id); if(card != null){ System.out.println('請(qǐng)輸入轉(zhuǎn)賬金額:'); money = scanner.nextInt(); if(money <= bankCard.getMoney()){ bankCard.withdraw(money); card.deposit(money); }else { System.out.println('轉(zhuǎn)賬失敗'); } }else { System.out.println('未找到該賬戶'); } break;default: } } } private void login(){ //登錄 System.out.println('請(qǐng)輸入賬號(hào),密碼'); Scanner scanner = new Scanner(System.in); int id = scanner.nextInt(); int password = scanner.nextInt(); BankCard bankCard = bank.search(id,password); if(bankCard != null){ System.out.println('登錄成功'); success(bankCard); }else { System.out.println('登錄失敗,請(qǐng)注冊(cè)'); } } private void register(){ //注冊(cè) System.out.println('請(qǐng)輸入賬號(hào),密碼'); Scanner scanner = new Scanner(System.in); int id = scanner.nextInt(); int password = scanner.nextInt(); BankCard bankCard = bank.search(id,password); if(bankCard != null){ System.out.println('該賬號(hào)已存在,請(qǐng)直接登錄'); }else { bank.addcard(id,password); System.out.println('注冊(cè)成功'); } } public void opearte() { while (true) { System.out.println('請(qǐng)選擇:1、登錄,2、注冊(cè),3、退出'); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); if (choice == 3) {return; } switch (choice) {case 1: login(); break;case 2: register(); break;default: } } }}
銀行類:一個(gè)銀行對(duì)應(yīng)多個(gè)ATM機(jī)
public class Bank { private BankCard[] bankCards; private final int INITSIZE = 10; private int size; public Bank(){ bankCards = new BankCard[INITSIZE]; size = 0; } public BankCard search(int id,int password){ //搜索 BankCard[] bankCard = bankCards; for(int i=0;i<size;i++){ if(bankCards[i].getId() == id && bankCards[i].getPassword() == password){return bankCard[i]; } } return null; } public void addcard(int id,int password){ //注冊(cè) BankCard bankCard = new BankCard(id, password); if (size == bankCards.length){ bankCards = Arrays.copyOf(bankCards,bankCards.length * 2); } bankCards[size++] = bankCard; } public int printf(BankCard bankCard){ //顯示余額 return bankCard.getMoney(); } public BankCard transfer(int id){ for(int i=0;i<size;i++){ if(bankCards[i].getId() == id){return bankCards[i]; } } return null; }}
銀行卡類:不同賬戶的操作
public class BankCard { private int id; private int password; private int money; private int size = 0; public BankCard(int id,int password){ this.id = id; this.password = password; money = 0; } public int getId(){ return id; } public int getPassword(){ return password; } public int getMoney(){ return money; } public void withdraw(int money){ //取款 if(this.money >= money){ this.money -= money; }else { System.out.println('取款失敗'); } } public void deposit(int money){ //存款 this.money += money; }}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. vue+vuex+axios從后臺(tái)獲取數(shù)據(jù)存入vuex,組件之間共享數(shù)據(jù)操作2. android studio實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器(無(wú)bug)3. springboot項(xiàng)目整合druid數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)4. Python 忽略文件名編碼的方法5. android 控件同時(shí)監(jiān)聽(tīng)單擊和雙擊實(shí)例6. JavaScript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器小功能7. SpringBoot使用Captcha生成驗(yàn)證碼8. 解決vue頁(yè)面刷新,數(shù)據(jù)丟失的問(wèn)題9. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作10. python logging.info在終端沒(méi)輸出的解決
