好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

java实现简单银行ATM系统

本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下

#ATM系统

##功能

模拟银行ATM机系统,具有注册、登录功能
用户登录后可实现以下功能:
1)存款 2)取款 3)转账 4)查询 5)退出

##设计思路

首先,要进行ATM机操作应该具有银行卡和ATM,所以我们要设计一个ATM类和Bankcard类,ATM具有存取款等操作,Bankcard用来记录用户存取款等操作后的越,其次因为ATM同时为多个用户服务,所以我们应该识别每张卡,这里增加一个Bank类来记录银行卡个数以及各个用户持有哪些银行卡。

##具体代码

###Bank类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

import java.util.Arrays;

 

/**

  * @author:zl

  * @Date 22:30 2020/10/9

  */

 

public class Bank {

    private BankCard[] cards;

    private int size; // 有效用户个数

    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 ); //长度不够时进行扩容

        }

        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类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

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类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

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.关机" );

            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.转账 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( "请输入转账金额" );

                    money = scanner.nextInt();

                    System.out.println( "请输入转账用户账号,密码" );

                    int id = scanner.nextInt();

                    int passwd = scanner.nextInt();

                    BankCard userCard = bank.contains(id, passwd);

                    if (userCard != null ) {

                        if (successCard.withDraw(money)) { // 当前卡取款成功

                            userCard.saveMoney(money);

                            System.out.println( "转账成功" );

                        } 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);

    }

}

###测试类

?

1

2

3

4

5

6

public class TestDemo {

    public static void main(String[] args) {

        ATM atm = new ATM();

        atm.start();

    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/m0_49449205/article/details/109789610

查看更多关于java实现简单银行ATM系统的详细内容...

  阅读:18次