本文实例为大家分享了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