要求:
- 设计一个对银行账户余额操作的程序
-
假设账号: int account=11111
-
密码:int password=22222
-
余额:int balance=2020
-
密码输入错误数:int count=0;
- 进入程序需要输入账号密码,验证没有问题即可操作.
- 进入程序输出选择操作选项:
1.存款,2.取款,3.查询余额
- 可多次重复操作
分析:
- 使用Scanner实现数据的交互式输入
- 使用switch语句实现分级选项菜单
- 使用while循环实现程序的多次重复操作
代码实现:
- 银行类:
import java.util.Scanner;
public class BankMake {
private int zhanghao = 11111;//账号
private int mima = 22222;//密码
private int yu_e = 6300;//账户余额
private int count=0;//密码输入错误数记录
public int Enter(int account,int password){//进入主菜单,并且每次操作完如果要进行其他操作时都需要重新登录,麻烦但是安全
if(account==this.zhanghao&&password==this.mima){//对比账号密码是否正确
System.out.println("登录成功!");
return 1;
}
else{
if(account!=this.zhanghao){//若账号输入错误则重新输入,不会增加错误次数
System.out.println("账号错误,请重新输入");
return 0;
}
else{//若密码输入输入错误则则增加输入错误次数
this.count++;
if(this.count==3){
System.out.println("密码连续输入错误3次!账号冻结!!");//账号冻结就直接退出程序
return -1;
}
System.out.println("密码错误,还剩" + (3 - count) + "次机会。");//提示用户密码输入错误,并且显示可再次输入的次数
return 0;
}
}
}
public void Qmoney() {//取钱操作
Scanner scan = new Scanner(System.in);
while (true) {//循环多次输入
System.out.print("请输入取款金额:");
int qmoney = scan.nextInt();
if (qmoney > this.yu_e) {//若需要取的钱数大于余额,则提示余额不足并重新输入取钱数
System.out.println("余额不足!");
System.out.println("请重新输入!");
continue;
}
if (qmoney % 50 != 0 || qmoney == 0) {//只能存50元的整数倍,不能取0元
System.out.println("只能存取50元的整数倍,请重新输入");
continue;
}
this.yu_e -= qmoney;
System.out.println("取款成功!");
System.out.println("余额:" + this.yu_e);
break;
}
}
public void Cmoney (){
Scanner scan = new Scanner(System.in);
while (true) {//循环多次输入
System.out.print("请输入存款金额:");
int cmoney = scan.nextInt();
if (cmoney % 50 == 0 && cmoney != 0) {
this.yu_e += cmoney;
System.out.println("存款成功!");
System.out.println("余额:" + this.yu_e);
break;
}
else//不能存0元,也只能存50元的整数倍
System.out.println("只能存取50元的整数倍,请重新输入");
}
}
public void GetBalance(){//获取账户余额数
System.out.println("余额:"+this.yu_e);
}
}
- 主程序
import java.util.Scanner;
public class BankSystem {
public static void main(String[] args) {
BankMake bm = new BankMake();
Scanner scan = new Scanner(System.in);
System.out.println("欢迎来到XXXX银行系统!");
while(true) {
System.out.print("请输入账号:");
int zh = scan.nextInt();
System.out.print("请输入密码:");
int mm = scan.nextInt();
int k = bm.Enter(zh, mm);//传入账号和密码进行登录
if (k == 0) continue;//返回0需要重新登录
if (k == -1) break;//返回-1就退出整个程序
System.out.println("请选择:1.存款 2.取款 3.余额查询");
int choice = scan.nextInt();
switch(choice){//实现菜单分层选择
case 1:
bm.Cmoney();break;
case 2:
bm.Qmoney();break;
case 3:
bm.GetBalance();break;
default:
System.out.println("非法操作!请重新选择");//输入其他不存在的选项时提示
}
System.out.print("退出请按1,其它任意键继续 ");
if(scan.nextInt()==1)
break;
System.out.println("请再次输入账号密码");
}
System.out.print("系统已经退出。");//退出程序提醒
}
}
运行结果: