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í)有所幫助,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)銀行ATM管理系統(tǒng)
- Java實(shí)現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)
- Java基于控制臺(tái)界面實(shí)現(xiàn)ATM系統(tǒng)
- Java簡(jiǎn)單實(shí)現(xiàn)銀行ATM系統(tǒng)
- 用Java實(shí)現(xiàn)簡(jiǎn)單ATM機(jī)功能
- java GUI實(shí)現(xiàn)ATM機(jī)系統(tǒng)(3.0版)
- java實(shí)現(xiàn)ATM機(jī)系統(tǒng)(2.0版)
- Java模擬實(shí)現(xiàn)ATM機(jī)
- Java使用嵌套循環(huán)模擬ATM機(jī)取款業(yè)務(wù)操作示例
- Java實(shí)現(xiàn)ATM機(jī)操作系統(tǒng)
相關(guān)文章
Java Hibernate中使用HQL語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢的要點(diǎn)解析
HQL是Hibernate框架中提供的關(guān)系型數(shù)據(jù)庫(kù)操作腳本,當(dāng)然我們也可以使用原生的SQL語(yǔ)句,這里我們來(lái)看一下在Java Hibernate中使用HQL語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢的要點(diǎn)解析:2016-06-06Java連接MYSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟
這篇文章主要為大家介紹了Java連接MYSQL數(shù)據(jù)庫(kù)的詳細(xì)步驟,感興趣的小伙伴們可以參考一下2016-05-05Java線程池的幾種實(shí)現(xiàn)方法及常見(jiàn)問(wèn)題解答
下面小編就為大家?guī)?lái)一篇Java線程池的幾種實(shí)現(xiàn)方法及常見(jiàn)問(wèn)題解答。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05Java實(shí)體類中Set按照對(duì)象的某個(gè)字段對(duì)set排序
這篇文章主要介紹了Java實(shí)體類中Set按照對(duì)象的某個(gè)字段對(duì)set排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06Java數(shù)據(jù)結(jié)構(gòu)與算法之稀疏數(shù)組與隊(duì)列深入理解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之稀疏數(shù)組與隊(duì)列深入理解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java之map的常見(jiàn)用法講解與五種循環(huán)遍歷實(shí)例代碼理解
map是一組鍵值對(duì)的組合,通俗理解類似一種特殊的數(shù)組,a[key]=val,只不過(guò)數(shù)組元素的下標(biāo)是任意一種類型,而且數(shù)組的元素的值也是任意一種類型。有點(diǎn)類似python中的字典。通過(guò)"鍵"來(lái)取值,類似生活中的字典,已知索引,來(lái)查看對(duì)應(yīng)的信息2021-09-09Spring?AOP利用切面實(shí)現(xiàn)日志保存的示例詳解
最近領(lǐng)導(dǎo)讓寫個(gè)用切面實(shí)現(xiàn)日志保存,經(jīng)過(guò)調(diào)研和親測(cè),以完美解決。在這里分享給大家,給有需要的碼友直接使用,希望對(duì)大家有所幫助2022-11-11