java银行高级柜员类_Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册、登录、存取款、本行转账、跨行转账、销户、特殊操作参数、多个客户对象存入到银行类的集合,多个银行对象存入总测试类...

packageDay20test;importjava.util.ArrayList;public classTestDay20_1_Bank {private ArrayList customers = new ArrayList<>();;privateString bankName;//定义一个特殊操作参数以便执行特殊操作(例如 直接付款)

private String operation = "";//定义特殊操作的金额

private double operationMoney = 0.0;publicTestDay20_1_Bank() {super();//TODO Auto-generated constructor stub

}publicTestDay20_1_Bank(String bankName) {super();this.bankName =bankName;

}public ArrayListgetCustomers() {returncustomers;

}publicString getBankName() {returnbankName;

}publicString getOperation() {returnoperation;

}public voidsetOperation(String operation) {this.operation =operation;

}public doublegetOperationMoney() {returnoperationMoney;

}public void setOperationMoney(doubleoperationMoney) {this.operationMoney =operationMoney;

}//起始界面

public voidbegin() {

System.out.println("====欢迎使用" + this.bankName + "====");while (true) {

System.out.println("|-----------------------------|");

System.out.println("|请选择您要执行的操作(输入数字): |");

System.out.println("|1.登录 |");

System.out.println("|2.注册 |");

System.out.println("|0.退出 |");//System.out.println("|-----------------------------|");

int operation = TestDay20_1_Tool.getInt("|-----------------------------|");if (operation == 1) {

System.out.println("======请登录======");this.login();

}else if (operation == 2) {this.register();

}else if (operation == 0) {break;

}else{

System.out.println("请输入指定的数字");

}

}

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

System.out.println("已退出");

}//注册方法

public voidregister() {

System.out.println("====" + this.bankName + "注册====");//设置用户名

String registerName;while (true) {

registerName= TestDay20_1_Tool.getString("请设置用户名");//检查用户名是否存在

boolean userExist = false;for(TestDay20_1_Customer customer : customers) {if(customer.getUserName().equals(registerName)) {

userExist= true;

}

}//如果存在

if(userExist) {

System.out.println("用户名已存在,请重试");

}else{break;

}

}//设置密码

String registerPassword = TestDay20_1_Tool.getString("请设置密码");//添加用户对象

customers.add(new TestDay20_1_Customer(registerName, registerPassword, 0.0));

System.out.println("注册成功");

}//登录方法

public voidlogin() {//登录循环

while (true) {//String id = DiyToolsaaa.DiyOperation.getString(i);

String id = TestDay20_1_Tool.getString("请输入用户名:");

String password= TestDay20_1_Tool.getString("请输入密码:");//登录成功标记

boolean access = false;for (TestDay20_1_Customer user : this.getCustomers()) {if (id.equals(user.getUserName()) &&password.equals(user.getPassWord())) {

access= true;if (this.getOperation().equals("付款")) {this.withdraw(user);

}else{this.loginyes(user);

}break;

}

}if (!access) {//登录密码错误执行

int loginerrorreturn = this.loginerror();if (loginerrorreturn == 1) {break;

}

}else{break;

}

}

}//登录成功执行

public voidloginyes(TestDay20_1_Customer c) {

System.out.println("======登录成功======");while (true) {

System.out.println("|-----------------------------|");

System.out.println("|请选择您要执行的操作(输入数字): |");

System.out.println("|1.查询余额 |");

System.out.println("|2.存款 |");

System.out.println("|3.取款 |");

System.out.println("|4.本行转账 |");

System.out.println("|5.跨行转账 |");

System.out.println("|0.退出 |");//System.out.println("|-----------------------------|");//获取操作数字

int operationnum = TestDay20_1_Tool.getInt("|-----------------------------|");//判断是否退出

if (operationnum == 0) {break;

}//执行操作数

this.operationnum(c, operationnum);

}

}//登录密码错误执行

public intloginerror() {int x = 0;

System.out.println("|------------------------------------------|");

System.out.println("|用户名或密码错误,请选择您要执行的操作(输入数字):|");

System.out

.println("|1.重试 |");

System.out

.println("|2.退出 |");//System.out.println("|------------------------------------------|");

int operationerror = TestDay20_1_Tool.getInt("|------------------------------------------|");switch(operationerror) {case 1:break;case 2:

x= 1;break;default:

System.out.println("请输入指定的数字");break;

}returnx;

}//具体操作方法

public void operationnum(TestDay20_1_Customer c, intoperationnum) {//具体操作执行

switch(operationnum) {case 1://输出信息

System.out.println(this.toString(c));break;case 2://存款操作

this.deposit(c);break;case 3://取款操作

this.withdraw(c);break;case 4://本行转账

this.transfer(c, this);break;case 5://跨行转账

this.transferStride(c);break;default:

System.out.println("请输入指定的数字");break;

}

}//存款方法

public voiddeposit(TestDay20_1_Customer c) {

System.out.println("请输入存入金额");//获取操作金额

double deposit = Double.parseDouble(TestDay20_1_Tool.getdouble("==================="));

c.setBalance(c.getBalance()+deposit);

System.out.println("成功存入" + deposit + "元");

System.out.println("当前总余额为:" + c.getBalance() + "元");

}//取款方法

public voidwithdraw(TestDay20_1_Customer c) {double balance =c.getBalance();if (this.getOperation().equals("付款")) {if (this.getOperationMoney()

c.setBalance(balance- this.getOperationMoney());

System.out.println("付款成功,当前余额为:" + (balance - this.getOperationMoney()));

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

}else{

System.out.println("余额不足,当前余额为:" +balance);

}

}else{

System.out.println("请输入取出金额");//获取操作金额

double withdraw = Double.parseDouble(TestDay20_1_Tool.getdouble("==================="));if (withdraw

c.setBalance(balance-withdraw);

System.out.println("成功取出" + withdraw + "元");

System.out.println("当前总余额为:" + balance + "元");

}else{

System.out.println("余额不足,当前余额为:" +balance);

}

}

}//转账方法

public voidtransfer(TestDay20_1_Customer c, TestDay20_1_Bank b) {//定义被转账人用户名和对象

String transgerName;

TestDay20_1_Customer transgerReceiveName= null;while (true) {

transgerName= TestDay20_1_Tool.getString("请输入转入账户名:");//检查用户名是否存在

boolean userExist = false;//假设不存在//遍历本银行所有客户

for(TestDay20_1_Customer customer : b.getCustomers()) {//对比用户名是否相符

if(customer.getUserName().equals(transgerName)) {//用户对象赋值

transgerReceiveName =customer;//修改标记

userExist = true;//结束遍历

break;

}

}//如果不存在

if (!userExist) {

System.out.println("您输入的账户不存在,请重新输入");

}else{break;

}

}//获取操作金额

double transfer = Double.parseDouble(TestDay20_1_Tool.getdouble("请输入转账金额:"));//转账客户扣钱

c.setBalance(c.getBalance() -transfer);//被转账人客户加钱

transgerReceiveName.setBalance(transgerReceiveName.getBalance() +transfer);

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

}//转账方法(跨行)

public voidtransferStride(TestDay20_1_Customer c) {//获取所有银行信息

ArrayList al =TestDay20_1_Tool.getAllBank();intbankChoose;

System.out.println("请选择收款人所在的银行");for (int i = 0; i < al.size(); i++) {

System.out.println(i+ "-" +al.get(i).getBankName());

}

System.out.println("----------");while (true) {

bankChoose= TestDay20_1_Tool.getInt("输入对应的数字(输入-1退出)");if (bankChoose < 0 || bankChoose > al.size() - 1) {

System.out.println("对不起,请重新输入");

}else{break;

}

}this.transfer(c, al.get(bankChoose));

}//查看账户信息方法

publicString toString(TestDay20_1_Customer c) {return "[当前余额:" + c.getBalance() + "]";

}//销户方法

public voidaccountCancellation(TestDay20_1_Customer c) {

System.out.println("====" + this.bankName + "销户====");//登录循环

System.out.println("销户后将无法再次登录本银行系统,账户余额清零,确认执行销户操作吗?");

System.out.println("1、确认");

System.out.println("0、返回");

String operation= TestDay20_1_Tool.getString("请选择:");if (operation.equals("1")) {for (TestDay20_1_Customer user : this.getCustomers()) {if(c.getUserName().equals(user.getUserName())) {this.getCustomers().remove(user);

System.out.println("销户成功");break;

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值