最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Java實現(xiàn)簡單ATM機功能

 更新時間:2022年01月24日 15:20:16   作者:北渺  
這篇文章主要為大家詳細介紹了用Java實現(xiàn)簡單ATM機功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java實現(xiàn)簡單ATM機功能的具體代碼,供大家參考,具體內(nèi)容如下

項目介紹

基于大家使用銀行卡在ATM機取款操作,進行相對應(yīng)ATM機操作流程的實現(xiàn)。

項目功能

1、注冊功能:

根據(jù)用戶輸入的賬號密碼申請一張銀行卡,存儲在銀行卡類型的數(shù)組中(一張銀行卡對應(yīng)一個有效用戶)。

2、登錄功能:

登陸失?。褐匦碌顷?或 注冊
登陸成功:對登陸的這張銀行卡可以進行一下操作:存款、取款、查余額、轉(zhuǎn)賬、退卡功能。

項目知識點

3、java基本語法的使用
4、一維數(shù)組
5、函數(shù)調(diào)用,封裝
6、Java類和對象

項目實現(xiàn)思路

7、設(shè)計并實現(xiàn)系統(tǒng)的相關(guān)打印界面:注冊、登陸、登陸后操作
8、登錄系統(tǒng)必須輸入正確的卡號和密碼,輸入錯誤時提示用戶重新登陸。
9、實現(xiàn)取款、存款、查余額等功能。

難點

對面向?qū)ο缶幊痰睦斫?,以及靜態(tài)變量和實例變量的理解。
二者區(qū)別:
實例變量:跟對象有關(guān),一個對象一份實例變量
靜態(tài)變量:跟對象無關(guān),一個類一份靜態(tài)變量

源代碼

1.ATM類

public class ATM {

? ? private static boolean flag = true;
? ? private int id;
? ? private int passwd;

? ? private BankCard bankCard;

? ? private static Bank bank;
? ? /* 不寫跳1空異常*/
? ? public ATM(){
? ? ? ? bank = new Bank();
? ? }

? ? Scanner ?scanner = new Scanner(System.in);


? ? public void start(){
? ? ? ? int chioce;

? ? ? ? while (flag == true){
? ? ? ? ? ? System.out.println("請選擇: 1.注冊 2.登錄 3.退出");
? ? ? ? ? ? chioce = scanner.nextInt();
? ? ? ? ? ? switch(chioce){
? ? ? ? ? ? ? ? case 1:

? ? ? ? ? ? ? ? ? ? System.out.println("請輸入賬號和密碼:");
? ? ? ? ? ? ? ? ? ? id = scanner.nextInt();
? ? ? ? ? ? ? ? ? ? passwd = scanner.nextInt();

? ? ? ? ? ? ? ? ? ? register(id,passwd);

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:

? ? ? ? ? ? ? ? ? ? System.out.println("請輸入賬號和密碼:");
? ? ? ? ? ? ? ? ? ? id = scanner.nextInt();
? ? ? ? ? ? ? ? ? ? passwd = scanner.nextInt();

? ? ? ? ? ? ? ? ? ? login(id,passwd);

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:

? ? ? ? ? ? ? ? ? ? flag = false;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }

? ? }

? ? //注冊
? ? private void register(int id, int passwd) {

? ? ? ? //檢查此卡號是否存在
? ? ? ? if(bank.contains(id)){
? ? ? ? ? ? System.out.println("此卡號已存在,注冊失?。?);
? ? ? ? }
? ? ? ? else{
? ? ? ? ? ? bankCard = new BankCard(id,passwd);
? ? ? ? ? ? bank.add(bankCard);
? ? ? ? ? ? System.out.println("注冊成功!");

? ? ? ? }
? ? }

? ? //登錄
? ? private void login(int id, int passwd) {

? ? ? ? //檢查此卡號是否存在
? ? ? ? if(bank.login(id,passwd)){
? ? ? ? ? ? System.out.println("登陸成功!");
? ? ? ? ? ? //登陸成功 返回卡的信息
? ? ? ? ? ? bankCard = bank.getcard(id,passwd);
? ? ? ? ? ? //調(diào)用 ATM功能函數(shù)
? ? ? ? ? ? function(bankCard);

? ? ? ? }else{
? ? ? ? ? ? System.out.println("登陸失敗! 請重新登錄");
? ? ? ? }
? ? }

? ? //ATM功能函數(shù)
? ? private void function(BankCard bankCard) {
? ? ? ? double money;
? ? ? ? int count = 0;

? ? ? ? int chioce;
? ? ? ? while (flag == true){
? ? ? ? ? ? System.out.println("請選擇: 1.存款 2.取款 3.查余額 4.轉(zhuǎn)賬 ?5.退卡");
? ? ? ? ? ? chioce = scanner.nextInt();
? ? ? ? ? ? switch(chioce){
? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? System.out.println("請輸入存款金額:");
? ? ? ? ? ? ? ? ? ? money = scanner.nextDouble();
? ? ? ? ? ? ? ? ? ? bank.setMoney(bankCard,money);
? ? ? ? ? ? ? ? ? ? System.out.println("存款成功!");

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? System.out.println("請輸入取款金額:");
? ? ? ? ? ? ? ? ? ? money = scanner.nextDouble();
? ? ? ? ? ? ? ? ? ? if(bank.getMoney(bankCard,money)){
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("取款成功!");
? ? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("余額不足取款失敗!");
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:

? ? ? ? ? ? ? ? ? ? System.out.println("余額為:"+bank.getBalance(bankCard));

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 4:

? ? ? ? ? ? ? ? ? ? System.out.println("請輸入轉(zhuǎn)賬的賬號:");
? ? ? ? ? ? ? ? ? ? while(flag){
? ? ? ? ? ? ? ? ? ? ? ? count = scanner.nextInt();
? ? ? ? ? ? ? ? ? ? ? ? //檢查此卡號是否存在
? ? ? ? ? ? ? ? ? ? ? ? if(!bank.contains(count)){
? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("此卡號不存在,請重新輸入:");
? ? ? ? ? ? ? ? ? ? ? ? } else{
? ? ? ? ? ? ? ? ? ? ? ? ? ? flag =false;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? System.out.println("請輸入轉(zhuǎn)賬的金額:");
? ? ? ? ? ? ? ? ? ? money = scanner.nextDouble();
? ? ? ? ? ? ? ? ? ? if(bank.transfer(bankCard,bank.getcard1(count),money)){
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("轉(zhuǎn)賬成功!");
? ? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("余額不足,轉(zhuǎn)賬失?。?);
? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? //莫名結(jié)束??
? ? ? ? ? ? ? ? case 5:

? ? ? ? ? ? ? ? ? ? flag = false;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }

? ? ? ? }

? ? }

}

2.Bank類

public class Bank {
? ? private BankCard[] cards;
? ? private static int cardsnum = 0;
// ?private static double cardsmoney = 0.0;
? ? private static final int INITSIZE = 10;

? ? public Bank(){
? ? ? ? cards = new BankCard[INITSIZE];
? ? }

? ? //查詢卡是否存在
? ? public boolean contains(int id) {
? ? ? ? for(int i=0;i<cardsnum;i++){

? ? ? ? ? ? if (cards[i].getId() == id){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }

? ? //登錄
? ? public boolean login(int id,int passwd) {
? ? ? ? for(int i=0;i<cardsnum;i++){

? ? ? ? ? ? if (cards[i].getId() == id && cards[i].getPasswd() == passwd){
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }

? ? //添加一張銀行卡
? ? public void add(BankCard card) {
? ? ? ? //判斷存卡的數(shù)組是否已滿
? ? ? ? if(cards.length == cardsnum){
? ? ? ? ? ? //數(shù)組已滿執(zhí)行擴容操作
? ? ? ? ? ? cards = Arrays.copyOf(cards,cards.length+(cards.length>>1));
? ? ? ? }

? ? ? ? //銀行卡存入銀行卡類型數(shù)組
? ? ? ? cards[cardsnum] = card;
? ? ? ? //銀行卡數(shù)+1
? ? ? ? cardsnum++;


? ? }
? ? //輸入卡號,密碼返回銀行卡
? ? public BankCard getcard(int id, int passwd){

? ? ? ? for(int i=0;i<cardsnum;i++){
? ? ? ? ? ? if (cards[i].getId() == id && cards[i].getPasswd() == passwd){
? ? ? ? ? ? ? ? return cards[i];
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? return null;
? ? }

? ? //存款
? ? public boolean setMoney(BankCard card,double money){
? ? ? ? return card.setMoney(money);

? ? }

? ? //取款
? ? public boolean getMoney(BankCard card,double money){
? ? ? ? return card.getMoney(money);
? ? }

? ? //查余額
? ? public double getBalance(BankCard card){

? ? ? ? return card.getBalance();
? ? }

? ? //轉(zhuǎn)賬
? ? public boolean transfer(BankCard card, BankCard tempcard, double money){
? ? ? ? if( card.getMoney(money)){
? ? ? ? ? ? tempcard.setMoney(money);
? ? ? ? ? ? return true;
? ? ? ? }

? ? ? ? return false;
? ? }

? ? //輸入卡號,密碼返回銀行卡
? ? public BankCard getcard1(int id){

? ? ? ? for(int i=0;i<cardsnum;i++){
? ? ? ? ? ? if (cards[i].getId() == id){
? ? ? ? ? ? ? ? return cards[i];
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? return null;
? ? }

}

3.BankCard類

public class BankCard {
? ? private int id;
? ? private int passwd;
? ? private double money;


? ? public BankCard(int id, int passwd) {
? ? ? ? this.id = id;
? ? ? ? this.passwd = passwd;
? ? }


? ? public int getId() {
? ? ? ? return id;
? ? }

? ? public void setId(int id) {
? ? ? ? this.id = id;
? ? }

? ? public int getPasswd() {
? ? ? ? return passwd;
? ? }

? ? public void setPasswd(int passwd) {
? ? ? ? this.passwd = passwd;
? ? }

? ? public boolean getMoney(double money) {
? ? ? ? if(this.money>=money){
? ? ? ? ? ? this.money -= money;
? ? ? ? ? ? return true;
? ? ? ? }else{
? ? ? ? ? ? return false;
? ? ? ? }
? ? }

? ? public boolean setMoney(double deposit) {
? ? ? ? this.money += deposit;
? ? ? ? return true;
? ? }

? ? public double getBalance(){
? ? ? ? return this.money;
? ? }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring boot基于JPA訪問MySQL數(shù)據(jù)庫的實現(xiàn)

    Spring boot基于JPA訪問MySQL數(shù)據(jù)庫的實現(xiàn)

    本文主要介紹了Spring boot基于JPA訪問MySQL數(shù)據(jù)庫的實現(xiàn),Spring boot結(jié)合Jpa 能夠簡化創(chuàng)建 JPA 數(shù)據(jù)訪問層和跨存儲的持久層功能,用戶的持久層Dao接口只需要繼承定義好的接口,感興趣的可以了解一下
    2021-06-06
  • 深入淺析Netty 在 Dubbo 中是如何應(yīng)用的

    深入淺析Netty 在 Dubbo 中是如何應(yīng)用的

    國內(nèi)知名框架 Dubbo 底層使用的是 Netty 作為網(wǎng)絡(luò)通信,那么內(nèi)部到底是如何使用的呢?今天通過本文給大家詳細講解,對Netty 在 Dubbo中應(yīng)用相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2020-05-05
  • Springboot jar運行時如何將jar內(nèi)的文件拷貝到文件系統(tǒng)中

    Springboot jar運行時如何將jar內(nèi)的文件拷貝到文件系統(tǒng)中

    因為執(zhí)行需要,需要把jar內(nèi)templates文件夾下的的文件夾及文件加壓到宿主機器的某個路徑下,以便執(zhí)行對應(yīng)的腳本文件,這篇文章主要介紹了Springboot jar運行時如何將jar內(nèi)的文件拷貝到文件系統(tǒng)中,需要的朋友可以參考下
    2024-06-06
  • JAVA8 lambda表達式權(quán)威教程

    JAVA8 lambda表達式權(quán)威教程

    本文主要給大家講解Java8中最重要的一個特征之一lambda表達式,本文通過實例圖文解說給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • java實現(xiàn)潛艇大戰(zhàn)游戲源碼

    java實現(xiàn)潛艇大戰(zhàn)游戲源碼

    潛艇大戰(zhàn)游戲相信大家都玩過,是一款非常有趣的小游戲,那么基于代碼是如何實現(xiàn)的呢?今天小編給大家?guī)硪黄坛處椭蠹覍W(xué)習(xí)java實現(xiàn)潛艇大戰(zhàn)游戲,感謝的朋友一起看看吧
    2021-06-06
  • Java中從鍵盤輸入多個整數(shù)的方法

    Java中從鍵盤輸入多個整數(shù)的方法

    今天小編就為大家分享一篇Java中從鍵盤輸入多個整數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • springboot項目事務(wù)標(biāo)簽驗證

    springboot項目事務(wù)標(biāo)簽驗證

    本文主要介紹了springboot項目事務(wù)標(biāo)簽驗證,文中通過示例代碼介紹的非常詳細,詳細的介紹了不加事務(wù)標(biāo)簽和加事物標(biāo)簽的使用,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Dubbo擴展點SPI實踐示例解析

    Dubbo擴展點SPI實踐示例解析

    這篇文章主要為大家介紹了Dubbo擴展點SPI實踐示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JavaWeb項目中JSP訪問的問題解決

    JavaWeb項目中JSP訪問的問題解決

    JSP文件一般有兩個存放位置,本文主要介紹了JavaWeb項目中JSP訪問的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Spring Cloud Stream 高級特性使用詳解

    Spring Cloud Stream 高級特性使用詳解

    這篇文章主要為大家介紹了Spring Cloud Stream 高級特性使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論

乐山市| 柞水县| 丘北县| 枝江市| 仁化县| 太保市| 广西| 嘉定区| 阿荣旗| 肥乡县| 潢川县| 涡阳县| 佛教| 沅陵县| 颍上县| 阳谷县| 鹿邑县| 长海县| 平乐县| 东阳市| 志丹县| 剑阁县| 岢岚县| 洛浦县| 芮城县| 汕尾市| 青龙| 瑞安市| 清水县| 全椒县| 郴州市| 云和县| 龙州县| 西乡县| 凉城县| 泌阳县| 贡觉县| 民乐县| 昌吉市| 新宾| 皮山县|