java實(shí)現(xiàn)簡單銀行ATM系統(tǒng)
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單銀行ATM系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#ATM系統(tǒng)
##功能
模擬銀行ATM機(jī)系統(tǒng),具有注冊、登錄功能
用戶登錄后可實(shí)現(xiàn)以下功能:
1)存款 2)取款 3)轉(zhuǎn)賬 4)查詢 5)退出
##設(shè)計思路
首先,要進(jìn)行ATM機(jī)操作應(yīng)該具有銀行卡和ATM,所以我們要設(shè)計一個ATM類和Bankcard類,ATM具有存取款等操作,Bankcard用來記錄用戶存取款等操作后的越,其次因?yàn)锳TM同時為多個用戶服務(wù),所以我們應(yīng)該識別每張卡,這里增加一個Bank類來記錄銀行卡個數(shù)以及各個用戶持有哪些銀行卡。
##具體代碼
###Bank類
import java.util.Arrays; /** ?* @author:zl ?* @Date 22:30 2020/10/9 ?*/ ? public class Bank { ? ? private BankCard[] cards; ? ? private int size;// 有效用戶個數(shù) ? ? private static final int INITSIZE ?=10; ? ? public Bank(){ ? ? ? ? this(INITSIZE); ? ? } ? ? public Bank(int num){ ? ? ? ? cards = new BankCard[num]; ? ? } ? ? public boolean add(BankCard card){//如果注冊過,增加失敗 ? ? ? ? if(contains(card.getID(),card.getPasswd())!=null){ ? ? ? ? ? ? return false; ? ? ? ? } ? ? ? ? if(size==cards.length){ ? ? ? ? ? ? cards= Arrays.copyOf(cards,cards.length>>1);//長度不夠時進(jìn)行擴(kuò)容 ? ? ? ? } ? ? ? ? cards[size++] = card;// ? ? ? ? return true; ? ? } ? ? public boolean search(int id,int passwd){//查詢是否存在這張卡 ? ? ? ? boolean k=true; ? ? ? ? for(int i=0;i<size;i++){ ? ? ? ? ? ? if((cards[i].getID()==id)&&(cards[i].getPasswd()==passwd)){ ? ? ? ? ? ? ? ? k=true; ? ? ? ? ? ? } ? ? ? ? ? ? else k=false; ? ? ? ? } ? ? ? ? return k; ? ? } ? ? public BankCard contains(int id,int passwd){//查詢并返回這張卡 ? ? ? ? BankCard card=null; ? ? ? ? for(int i=0;i<size;i++){ ? ? ? ? ? ? if((cards[i].getID()==id)&&(cards[i].getPasswd()==passwd)){ ? ? ? ? ? ? ? ? card=cards[i]; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? return card; ? ? } }
###Bankcard類
import java.util.Scanner; public class BankCard { ? ? private int id; ? ? private int passwd; ? ? public int money=0; ? ? public ?BankCard(int id,int passwd){ ? ? ? ? this.id=id; ? ? ? ? this.passwd=passwd; ? ? } ? ? public int getID(){ ? ? ? ? return this.id; ? ? } ? ? public int getPasswd(){ ? ? ? ? return this.passwd; ? ? } ? ? /** ? ? ?* 存款 ? ? ?*/ ? ? public void saveMoney(int money){ ? ? ? ?this.money+=money; ? ? } ? ? /** ? ? ?* 取款 ? ? ?*/ ? ? public boolean withDraw(int money){ ? ? ? ? boolean flag=false; ? ? ? ?if(this.money>=money){ ? ? ? ? ? ?this.money-=money; ? ? ? ? ? ?flag=true; ? ? ? ?} ? ? ? ? ? ? return flag; ? ? } ? ? /** ? ? ?* 返回余額 ? ? ?* @return ? ? ?*/ ? ? public int ?getMoney(){ ? ? ? ? return this.money; ? ? } }
###ATM類
import java.util.Scanner; import src3.BankCard; public class ATM { ? ? private Bank bank; ? ? private static Scanner scanner; ? ? public ATM(){ ? ? ? ? bank = new Bank(); ? ? ? ? scanner = new Scanner(System.in); ? ? } ? ? public void start(){ ? ? ? ? while (true) { ? ? ? ? ? ? System.out.println("1. 登陸 2.注冊 3.關(guān)機(jī)"); ? ? ? ? ? ? int chioce = scanner.nextInt(); ? ? ? ? ? ? if (chioce == 3) { ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? System.out.println("請輸入賬號密碼"); ? ? ? ? ? ? int id = scanner.nextInt(); ? ? ? ? ? ? int passwd = scanner.nextInt(); ? ? ? ? ? ? BankCard successCard = null; ? ? ? ? ? ? switch (chioce){ ? ? ? ? ? ? ? ? case 1: ? ? ? ? ? ? ? ? ? ? successCard = login(id,passwd); ? ? ? ? ? ? ? ? ? ? if(successCard != null){ ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("登陸成功"); ? ? ? ? ? ? ? ? ? ? ? ? loginSuccess(successCard); ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("登陸失敗"); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 2: ? ? ? ? ? ? ? ? ? ? if(regiter(id,passwd)){ ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("注冊成功"); ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("注冊失敗"); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? private void loginSuccess(BankCard successCard){ ? ? ? ? while (true) { ? ? ? ? ? ? System.out.println("1. 存款 2.取款 3.轉(zhuǎn)賬 4.余額 5.退卡"); ? ? ? ? ? ? int chioce = scanner.nextInt(); ? ? ? ? ? ? if (chioce == 5) { ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? switch (chioce) { ? ? ? ? ? ? ? ? case 1: ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入存款金額"); ? ? ? ? ? ? ? ? ? ? int money = scanner.nextInt(); ? ? ? ? ? ? ? ? ? ? successCard.saveMoney(money); ? ? ? ? ? ? ? ? ? ? System.out.println("存款成功"); ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 2: ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入取款金額"); ? ? ? ? ? ? ? ? ? ? money = scanner.nextInt(); ? ? ? ? ? ? ? ? ? ? if (successCard.withDraw(money)) { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("取款成功"); ? ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("取款失敗"); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 3: ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入轉(zhuǎn)賬金額"); ? ? ? ? ? ? ? ? ? ? money = scanner.nextInt(); ? ? ? ? ? ? ? ? ? ? System.out.println("請輸入轉(zhuǎn)賬用戶賬號,密碼"); ? ? ? ? ? ? ? ? ? ? int id = scanner.nextInt(); ? ? ? ? ? ? ? ? ? ? int passwd = scanner.nextInt(); ? ? ? ? ? ? ? ? ? ? BankCard userCard = bank.contains(id, passwd); ? ? ? ? ? ? ? ? ? ? if (userCard != null) { ? ? ? ? ? ? ? ? ? ? ? ? if (successCard.withDraw(money)) {// 當(dāng)前卡取款成功 ? ? ? ? ? ? ? ? ? ? ? ? ? ? userCard.saveMoney(money); ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("轉(zhuǎn)賬成功"); ? ? ? ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("余額不足"); ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("沒有此用戶"); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? case 4: ? ? ? ? ? ? ? ? ? ? System.out.println("余額:" + successCard.getMoney()); ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? private boolean regiter(int id,int passwd){ ? ? ? ? BankCard card = new BankCard(id,passwd); ? ? ? ? return bank.add(card); ? ? } ? ? private BankCard login(int id,int passwd){ ? ? ? ? return bank.contains(id,passwd); ? ? } }
###測試類
public class TestDemo { ? ? public static void main(String[] args) { ? ? ? ? ATM atm = new ATM(); ? ? ? ? atm.start(); ? ? } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)簡單控制臺版ATM系統(tǒng)
- Java實(shí)現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)
- Java基于控制臺界面實(shí)現(xiàn)ATM系統(tǒng)
- Java簡單實(shí)現(xiàn)銀行ATM系統(tǒng)
- Java實(shí)現(xiàn)ATM系統(tǒng)超全面步驟解讀建議收藏
- Java實(shí)現(xiàn)銀行ATM系統(tǒng)
- java模擬實(shí)現(xiàn)銀行ATM機(jī)操作
- 用Java實(shí)現(xiàn)簡單ATM機(jī)功能
- java方法實(shí)現(xiàn)簡易ATM功能
- 基于Java開發(fā)實(shí)現(xiàn)ATM系統(tǒng)
相關(guān)文章
springmvc處理模型數(shù)據(jù)Map過程解析
這篇文章主要介紹了springmvc處理模型數(shù)據(jù)Map過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01Java中Future和FutureTask的示例詳解及使用
Java中的Future和FutureTask通常和線程池搭配使用,用來獲取線程池返回執(zhí)行后的返回值,下面這篇文章主要給大家介紹了關(guān)于Java中Future和FutureTask使用的相關(guān)資料,需要的朋友可以參考下2021-11-11Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別
在Java中,靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)、普通代碼塊的執(zhí)行順序是一個筆試的考點(diǎn),通過這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下2023-05-05SpringBoot定時任務(wù)不執(zhí)行的幾個可能原因及解決方法
這篇文章主要介紹了SpringBoot定時任務(wù)不執(zhí)行的幾個可能原因及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點(diǎn)
本篇文章主要介紹了SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點(diǎn),具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05Spring很常用的@Conditional注解的使用場景和源碼解析
今天要分享的是Spring的注解@Conditional,@Conditional是一個條件注解,它的作用是判斷Bean是否滿足條件,本文詳細(xì)介紹了@Conditional注解的使用場景和源碼,需要的朋友可以參考一下2023-04-04JAVA實(shí)現(xiàn)較完善的布隆過濾器的示例代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)較完善的布隆過濾器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10