前言介绍
最近很多同学找我帮忙做一些课程设计或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银行管理系统(控制台版本)的详细内容...