java方法實(shí)現(xiàn)簡(jiǎn)易ATM功能
用java方法寫(xiě)簡(jiǎn)易ATM,供大家參考,具體內(nèi)容如下
本文需求:用java寫(xiě)一個(gè)簡(jiǎn)易ATM
功能:有登陸,有查詢資金功能,有存款功能,有取款功能,有轉(zhuǎn)賬功能,有退出;
簡(jiǎn)述: (java方法)類(lèi)似于javascript中的函數(shù),用于封裝一些代碼,以便代碼的復(fù)用;
技術(shù)需求:方法
效果如下:
代碼如下:
package com.atm;import java.util.Scanner;/** * * @author 小zz *創(chuàng)建時(shí)間2019年5月9日下午4:13:10 *@version 1.0 */public class Atm { /**注:cardNos為卡號(hào),passwords為對(duì)應(yīng)的密碼 * userNames為對(duì)應(yīng)的用戶名,moneys為對(duì)應(yīng)的余額 * time用于限制輸入賬號(hào)和密碼的次數(shù) * userIndex(下標(biāo))若為10則表示登陸失敗,用于判斷輸入的賬號(hào)是數(shù)組中的第幾個(gè),便于接下來(lái)的操作 */ 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();/**執(zhí)行啟動(dòng)atm */ atm.atmRun(); } /**啟動(dòng)atm */ public void atmRun() { while(time>0) { System.out.println('請(qǐng)輸入卡號(hào):'); String cardNo = scanner.nextLine(); System.out.println('請(qǐng)輸入密碼:'); String pwd = scanner.nextLine(); /**執(zhí)行登錄*/ int userIndex= this.login(cardNo, pwd); /**判斷是否登陸成功*/ if(userIndex!=10) { /**執(zhí)行功能菜單*/ this.showMenu(); }else { time --; System.out.println('您輸入的賬號(hào)或密碼有誤'); System.out.println('你還有'+time+'次機(jī)會(huì)'); } /**次數(shù)用完退出系統(tǒng)*/ if(time==0) { System.exit(0); } } } /** * * @param cardNo 卡號(hào) * @param pwd 密碼 * @return 整數(shù) userIndex userIndex:10 表示登錄失敗 否則為成功 */ public int login(String cardNo,String pwd) { /**循環(huán)判斷賬號(hào)是否存在*/ for(int i=0;i<cardNos.length;i++) { if(cardNo.equals(cardNos[i])) { userIndex=i; break; } } /**繼續(xù)判斷密碼是正確*/ 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('請(qǐng)選擇你的操作: 1 查詢 2 取款 3 存款 4 轉(zhuǎn)賬 5 退出'); int getNum=scanner.nextInt(); switch (getNum) { case 1:System.out.println('您當(dāng)前余額為:'+moneys[userIndex]); break; /**執(zhí)行取款功能*/ case 2:this.getMoneys(); break; /**執(zhí)行存款功能*/ case 3:this.savaMoney(); break; /**執(zhí)行轉(zhuǎn)賬功能*/ case 4:this.transMoneys(); break; case 5: System.out.println('退出成功!'); out=0; } } } /**取款功能*/ public void getMoneys() { System.out.println('請(qǐng)輸入您的取款金額:'); 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('請(qǐng)輸入您的存款金額:'); int savaMoney=scanner.nextInt(); moneys[userIndex]+=savaMoney; System.out.println('親恭喜您成功存款'+savaMoney+' 您的余額為: '+moneys[userIndex]); } /**轉(zhuǎn)賬功能*/ public void transMoneys() { /**注:hasUser用于判斷轉(zhuǎn)賬用戶是否存在,若為10則不存在 * transIndex用于獲取轉(zhuǎn)賬賬號(hào)的下標(biāo) */ int hasUser=10; int transIndex=0; System.out.println('請(qǐng)輸入轉(zhuǎn)賬的賬號(hào):'); 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('親親,此賬號(hào)不純?cè)谂叮。?); }else { System.out.println('請(qǐng)輸入轉(zhuǎn)賬金額:'); double transMoney=scanner.nextDouble(); if(transMoney>moneys[userIndex]) { System.out.println('轉(zhuǎn)賬失敗!!'); System.out.println('失敗原因:轉(zhuǎn)賬金額大于余額,您的余額為:'+moneys[userIndex]); }else { transCard+=transMoney; moneys[userIndex]-=transMoney; System.out.println('成功向:'+userNames[transIndex]+'轉(zhuǎn)賬:'+transMoney); System.out.println('您剩余金額為:'+moneys[userIndex]); } } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. .NET中實(shí)現(xiàn)對(duì)象數(shù)據(jù)映射示例詳解2. Ajax實(shí)現(xiàn)局部刷新的方法實(shí)例3. 通用 HTTP 簽名組件的另類(lèi)實(shí)現(xiàn)方式4. javascript實(shí)現(xiàn)前端分頁(yè)效果5. .NET 8新預(yù)覽版使用 Blazor 組件進(jìn)行服務(wù)器端呈現(xiàn)(項(xiàng)目體驗(yàn))6. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)7. 使用AJAX實(shí)現(xiàn)UTF8編碼表單提交到GBK編碼腳本無(wú)亂碼的解決方法8. 教你怎么用python selenium實(shí)現(xiàn)自動(dòng)化測(cè)試9. Python通過(guò)類(lèi)的組合模擬街道紅綠燈10. jsp+mysql實(shí)現(xiàn)網(wǎng)頁(yè)的分頁(yè)查詢
