ATM也就是我們?nèi)】畲婵钣玫你y行自助存取款機(jī),大大地方便了我們存款取款的操作。本篇文章將使用Java的方法模擬ATM的各種功能,來實(shí)現(xiàn)一個簡單的存取款機(jī)的功能。
本文需求:用java寫一個簡易ATM
功能:有登陸,有查詢資金功能,有存款功能,有取款功能,有轉(zhuǎn)賬功能,有退出;
簡述: (java方法)類似于javascript中的函數(shù),用于封裝一些代碼,以便代碼的復(fù)用;
技術(shù)需求:方法
效果如下:
代碼如下:
package com.atm;
import java.util.Scanner;
public class Atm {
/**注:cardNos為卡號,passwords為對應(yīng)的密碼
* userNames為對應(yīng)的用戶名,moneys為對應(yīng)的余額
* time用于限制輸入賬號和密碼的次數(shù)
* userIndex(下標(biāo))若為10則表示登陸失敗,用于判斷輸入的賬號是數(shù)組中的第幾個,便于接下來的操作
*/
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í)行啟動atm */
atm.atmRun();
}
/**啟動atm */
public void atmRun() {
while(time>0) {
System.out.println("請輸入卡號:");
String cardNo = scanner.nextLine();
System.out.println("請輸入密碼:");
String pwd = scanner.nextLine();
/**執(zhí)行登錄*/
int userIndex= this.login(cardNo, pwd);
/**判斷是否登陸成功*/
if(userIndex!=10) {
/**執(zhí)行功能菜單*/
this.showMenu();
}else {
time --;
System.out.println("您輸入的賬號或密碼有誤");
System.out.println("你還有"+time+"次機(jī)會");
}
/**次數(shù)用完退出系統(tǒng)*/
if(time==0) {
System.exit(0);
}
}
}
/**
*
* @param cardNo 卡號
* @param pwd 密碼
* @return 整數(shù) userIndex userIndex:10 表示登錄失敗 否則為成功
*/
public int login(String cardNo,String pwd) {
/**循環(huán)判斷賬號是否存在*/
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("請選擇你的操作: 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("請輸入您的取款金額:");
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]);
}
/**轉(zhuǎn)賬功能*/
public void transMoneys() {
/**注:hasUser用于判斷轉(zhuǎn)賬用戶是否存在,若為10則不存在
* transIndex用于獲取轉(zhuǎn)賬賬號的下標(biāo)
*/
int hasUser=10;
int transIndex=0;
System.out.println("請輸入轉(zhuǎn)賬的賬號:");
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("請輸入轉(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]);
}
}
}
}
以上就是使用Java的方法來模擬ATM的各種功能實(shí)現(xiàn)的全部內(nèi)容,想要了解更多相關(guān)于Java其他有趣好玩的應(yīng)用內(nèi)容,可以搜索W3Cschool其他相關(guān)技術(shù)文章,也希望本篇文章對大家的學(xué)習(xí)有所幫助!