您好,登錄后才能下訂單哦!
使用java怎么實現一個ATM功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Java的特點有哪些 1.Java語言作為靜態面向對象編程語言的代表,實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 2.Java具有簡單性、面向對象、分布式、安全性、平臺獨立與可移植性、動態性等特點。 3.使用Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
package com.atm; import java.util.Scanner; public class Atm { /**注:cardNos為卡號,passwords為對應的密碼 * userNames為對應的用戶名,moneys為對應的余額 * time用于限制輸入賬號和密碼的次數 * userIndex(下標)若為10則表示登陸失敗,用于判斷輸入的賬號是數組中的第幾個,便于接下來的操作 */ public Scanner scanner = new Scanner(System.in); public String[] cardNos= {"123","456","111"}; public String[] passwords= {"112","223","121"}; public String[] userNames= {"小張","小小","張曉"}; public double[] moneys = {1000,2000,3000}; public int userIndex = 10; public int time=3; /**主程序*/ public static void main(String[] args) { Atm atm = new Atm(); /**執行啟動atm */ atm.atmRun(); } /**啟動atm */ public void atmRun() { while(time>0) { System.out.println("請輸入卡號:"); String cardNo = scanner.nextLine(); System.out.println("請輸入密碼:"); String pwd = scanner.nextLine(); /**執行登錄*/ int userIndex= this.login(cardNo, pwd); /**判斷是否登陸成功*/ if(userIndex!=10) { /**執行功能菜單*/ this.showMenu(); }else { time --; System.out.println("您輸入的賬號或密碼有誤"); System.out.println("你還有"+time+"次機會"); } /**次數用完退出系統*/ if(time==0) { System.exit(0); } } } /** * * @param cardNo 卡號 * @param pwd 密碼 * @return 整數 userIndex userIndex:10 表示登錄失敗 否則為成功 */ public int login(String cardNo,String pwd) { /**循環判斷賬號是否存在*/ for(int i=0;i<cardNos.length;i++) { if(cardNo.equals(cardNos[i])) { userIndex=i; break; } } /**繼續判斷密碼是正確*/ if(userIndex!=10) { /**正確*/ if(pwd.equals(passwords[userIndex])) { return userIndex; }else { userIndex=10; } } return userIndex; } /**功能菜單*/ public void showMenu() { time=0; int out=10; System.out.println("歡迎尊敬的VIP用戶: "+userNames[userIndex]); while(out==10) { System.out.println("請選擇你的操作: 1 查詢 2 取款 3 存款 4 轉賬 5 退出"); int getNum=scanner.nextInt(); switch (getNum) { case 1:System.out.println("您當前余額為:"+moneys[userIndex]); break; /**執行取款功能*/ case 2:this.getMoneys(); break; /**執行存款功能*/ case 3:this.savaMoney(); break; /**執行轉賬功能*/ case 4:this.transMoneys(); break; case 5: System.out.println("退出成功!"); out=0; } } } /**取款功能*/ public void getMoneys() { System.out.println("請輸入您的取款金額:"); int getMoney=scanner.nextInt(); if(getMoney>moneys[userIndex]) { System.out.println("親親您的余額不足哦!!!"); System.out.println("您的余額為:"+moneys[userIndex]); }else { moneys[userIndex]-=getMoney; System.out.println("親恭喜您成功取款"+getMoney+" 您的余額為: "+moneys[userIndex]); } } /**存款功能*/ public void savaMoney() { System.out.println("請輸入您的存款金額:"); int savaMoney=scanner.nextInt(); moneys[userIndex]+=savaMoney; System.out.println("親恭喜您成功存款"+savaMoney+" 您的余額為: "+moneys[userIndex]); } /**轉賬功能*/ public void transMoneys() { /**注:hasUser用于判斷轉賬用戶是否存在,若為10則不存在 * transIndex用于獲取轉賬賬號的下標 */ int hasUser=10; int transIndex=0; System.out.println("請輸入轉賬的賬號:"); String transCard=scanner.next(); for(int i=0;i<cardNos.length;i++) { if(transCard.equals(cardNos[i])) { hasUser=5; transIndex=i; break; } } if(hasUser==10) { System.out.println("親親,此賬號不純在哦!!"); }else { System.out.println("請輸入轉賬金額:"); double transMoney=scanner.nextDouble(); if(transMoney>moneys[userIndex]) { System.out.println("轉賬失敗!!"); System.out.println("失敗原因:轉賬金額大于余額,您的余額為:"+moneys[userIndex]); }else { transCard+=transMoney; moneys[userIndex]-=transMoney; System.out.println("成功向:"+userNames[transIndex]+"轉賬:"+transMoney); System.out.println("您剩余金額為:"+moneys[userIndex]); } } } }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。