好得很程序员自学网

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

Java实现ATM银行管理系统(控制台版本)

前言介绍

最近很多同学找我帮忙做一些课程设计或Web前端大作业、其中控制台项目应该是初学者必须经历的一个过程、作为java初学者这个控制台版本的模拟ATM银行管理系统十分合适、用到的技术也是最简单的JavaList集合、变量的声明、对象的创建、一些基本的while语句、switch语句、循环遍历等基础语法。一个最基础版本的控制台模拟ATM银行管理系统也就是CRUD功能、 直接上完整代码

创建抽象类Card类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

abstract class Card {

     int cardId;

 

     public Card() {

         super ();

     }

     public Card( int cardId) {

         super ();

         this .cardId = cardId;

     }

     public abstract String getCardId();

     public abstract void setCardId( int cardId);

 

}

创建普通银行类继承Card

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class CommonCard extends Card{

     public CommonCard() {

         super ();

     }

     public CommonCard( int cardId) {

         super ();

         this .cardId = cardId;

     }

     @Override

     public String getCardId() {

         return "普通银行卡卡号为:" +cardId;

     }

     @Override

     public void setCardId( int cardId) {

         this .cardId = cardId;

     }

 

}

创建普通信用卡继承Card

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package com.railway.modules.base.test;

public class CreditCard extends Card{

     public CreditCard() {

         super ();

     }

     public CreditCard( int cardId) {

         super (cardId);

     }

     @Override

     public String getCardId() {

         return "信用卡卡号为:" +cardId;

     }

     @Override

     public void setCardId( int cardId) {

         this .cardId = cardId;

     }

}

创建普通医保卡继承Card

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

package com.railway.modules.base.test;

public class MedicalInsuranceCard extends Card{

     public MedicalInsuranceCard() {

         super ();

     }

     public MedicalInsuranceCard( int cardId) {

         super (cardId);

     }

     @Override

     public String getCardId() {

         return "医保卡卡号为:" +cardId;

     }

     @Override

     public void setCardId( int cardId) {

         this .cardId = cardId;

     }

 

}

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

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

package com.railway.modules.base.test;

import java.util.Scanner;

public class ATM {

     Scanner input = new Scanner(System.in);

     private User[] user= new User[ 100 ];

     User atm = new User();

     private User usr;

     private int accountId = 1 ;

     private Card card;

 

     public void Select() {

 

         while ( true ) {

             System.out.println( "=======ATM管理系统=======" );

             System.out.print( "1.开户\n2.登录\n3.取款\n4.存款\n5.余额查询\n6.修改密码\n7.查看用户信息\n8.退出登录\n9.退出系统\n请选择需要选择的项目:" );

             switch (input.nextInt()) {

                 case 1 :

                     setAccount();   //开户

                     break ;

                 case 2 :

                     usr=userLogin();    //登录

                     break ;

                 case 3 :

                     drawMoney();    //取款

                     break ;

                 case 4 :

                     depositMoney(); //存款

                     break ;

                 case 5 :

                     showBalance();  //余额查询

                     break ;

                 case 6 :

                     revisePassword();   //修改密码

                     break ;

                 case 7 :

                     lookAccount();  //查看用户信息

                     break ;

                 case 8 :

                     cancel(); //退出登录

                     break ;

                 case 9 :

                     System.out.println( "=======================" );

                     System.out.println( "欢迎下次登录该系统!" );   //退出系统

                     System.exit( 0 );

                     break ;

                 default :

                     System.out.println( "=======================" );

                     System.out.println( "输入错误!请重新输入!" );

                     break ;

             }

         }

     }

 

 

     public void setAccount(){   //开户

         if (usr!= null ) {

             System.out.println( "=======================" );

             System.out.println( "请先退出上一个账户!" );

         }

         else {

             boolean x = true ;

             while (x) {

                 System.out.println( "=======================" );

                 System.out.print( "1.普通银行卡\n2.信用卡\n3.医保卡\n0.返回\n请选择开户类型:" );

                 switch (input.nextInt()) {

                     case 1 :

                         card = new CommonCard();

                         card.setCardId(accountId);

                         x= false ;

                         break ;

                     case 2 :

                         card = new CreditCard();

                         card.setCardId(accountId);

                         x= false ;

                         break ;

                     case 3 :

                         card = new MedicalInsuranceCard();

                         card.setCardId(accountId);

                         x= false ;

                         break ;

                     case 0 :

                         Select();

                     default :

                         System.out.println( "=======================" );

                         System.out.println( "输入错误!请重新输入!" );

                         break ;

                 }

             }

 

             System.out.print( "请输入姓名:" );

             String name=input.next();

             System.out.print( "请输入性别:" );

             String sex=input.next();

             System.out.print( "请输入年龄:" );

             String age=input.next();

             System.out.print( "请输入身份证号:" );

             String ID=input.next();

             System.out.print( "请输入银行卡要设置的密码:" );

             String password1=input.next();

             System.out.print( "请再次输入密码:" );

             String password2=input.next();

             if (password1.equals(password2)){

                 user[accountId]= new User(name,sex,age,password1,ID, 0 ,card);

                 System.out.println( "=======================" );

                 System.out.println( "开户成功!你的卡号为:" +accountId);

                 accountId++;

             }

             else {

                 System.out.println( "=======================" );

                 System.out.println( "两次密码不同!请重新开始!" );

             }

         }

 

     }

 

     public User userLogin(){    //登录

         if (usr!= null ) {

             System.out.println( "=======================" );

             System.out.println( "请先退出上一个账户!" );

             return usr;

         }

         else {

             System.out.print( "请输入卡号:" );

             int aId=input.nextInt();

             System.out.print( "请输入密码:" );

             String password=input.next();

             for ( int i= 0 ;i<user.length;i++){

                 if (user[i]!= null ) {

                     if (aId==user[i].getCard()&&password.equals(user[i].getPassword())) {

                         System.out.println( "=======================" );

                         System.out.println(user[i].getName()+ ",欢迎登录!" );

                         return user[i];

                     }

                 }

             }

             System.out.println( "=======================" );

             System.out.println( "卡号或密码有误" );

             return null ;

         }

     }

 

 

     public void drawMoney(){    //取款

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             System.out.print( "请输入取款金额:" );

             double blc=input.nextDouble();

             while (blc>usr.getBalance()) {

                 System.out.println( "=======================" );

                 System.out.print( "取款金额大于余额,请重新输入取款金额:" );

                 blc=input.nextDouble();

             }

             while (blc<= 0 ){

                 System.out.println( "=======================" );

                 System.out.print( "取款金额错误,请重新输入取款金额:" );

                 blc=input.nextDouble();

             }

             usr.setBalance(usr.getBalance()-blc);

             System.out.println( "=======================" );

             System.out.println( "取款成功!" );

             System.out.println( "账户余额:" +usr.getBalance());

 

         }

     }

 

     public void depositMoney(){ //存款

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             System.out.print( "请输入存款金额:" );

             double dsm=input.nextDouble();

             while (dsm<= 0 ){

                 System.out.println( "=======================" );

                 System.out.print( "输入金额错误,请重新输入:" );

                 dsm=input.nextDouble();

             }

             usr.setBalance(usr.getBalance()+dsm);

             System.out.println( "=======================" );

             System.out.println( "存款成功!" );

             System.out.println( "账户余额:" +usr.getBalance());

         }

     }

 

     public void showBalance(){  //余额查询

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             System.out.println( "=======================" );

             System.out.println( "账户余额:" +usr.getBalance());

         }

     }

 

     public void revisePassword(){   //修改密码

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             System.out.print( "请输入原密码:" );

             String password=input.next();

             for ( int i= 2 ;i>= 0 ;i--) {

                 if (password.equals(usr.getPassword()))

                     break ;

                 if (i== 0 ) {

                     System.out.println( "三次密码输入错误!即将退出账户!" );

                     cancel();

                     Select();

                 }

                 System.out.println( "密码错误!你还有" +i+ "次机会!" );

                 System.out.print( "请输入原密码:" );

                 password=input.next();

             }

             System.out.print( "验证成功,请输入新密码:" );

             String password1=input.next();

             System.out.print( "请再次输入密码:" );

             String password2=input.next();

             while (!password1.equals(password2)) {

                 System.out.println( "=======================" );

                 System.out.print( "两次密码不同,请重新输入新密码:" );

                 password1=input.next();

                 System.out.print( "请再次输入密码:" );

                 password2=input.next();

             }

             usr.setPassword(password1);

             System.out.println( "=======================" );

             System.out.println( "修改成功!" );

         }

     }

 

     public void lookAccount() { //查看用户信息

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             System.out.println( "=======================" );

             System.out.println( "姓名:" +usr.getName());

             System.out.println( "性别:" +usr.getSex());

             System.out.println(usr.getCardId());

             System.out.println( "身份证号:" +usr.getID());

             System.out.println( "余额:" +usr.getBalance());

         }

     }

 

     public void cancel() {

         if (usr== null ){

             System.out.println( "=======================" );

             System.out.println( "请先登录账户!" );

         }

         else {

             usr= null ;

             System.out.println( "=======================" );

             System.out.println( "账户退出成功!" );

         }

     }

}

main方法测试启动类

?

1

2

3

4

5

6

public class TestATM {

     public static void main(String[] args) {

         ATM atm = new ATM();

         atm.Select();

     }

}

控制台打印

=======ATM管理系统=======
1.开户
2.登录
3.取款
4.存款
5.余额查询
6.修改密码
7.查看用户信息
8.退出登录
9.退出系统
请选择需要选择的项目:1
=======================
1.普通银行卡
2.信用卡
3.医保卡
0.返回
请选择开户类型:1
请输入姓名:admin
请输入性别:男
请输入年龄:22
请输入身份证号:513922199555555555
请输入银行卡要设置的密码:123456
请再次输入密码:123456
=======================
开户成功!你的卡号为:1
=======ATM管理系统=======
1.开户
2.登录
3.取款
4.存款
5.余额查询
6.修改密码
7.查看用户信息
8.退出登录
9.退出系统
请选择需要选择的项目:
2
请输入卡号:1
请输入密码:123456
=======================
admin,欢迎登录!
=======ATM管理系统=======
1.开户
2.登录
3.取款
4.存款
5.余额查询
6.修改密码
7.查看用户信息
8.退出登录
9.退出系统
请选择需要选择的项目:

以上就是Java实现ATM银行管理系统(控制台版本)的详细内容,更多关于Java银行管理系统的资料请关注其它相关文章!

原文链接:https://juejin.cn/post/7107428964800397342

查看更多关于Java实现ATM银行管理系统(控制台版本)的详细内容...

  阅读:16次