这是我第一次写项目,感觉还行吧。不敢说很好。
项目要求:
实现银行自动取款机的以下基本操作功能:读卡、取款、存款、查询。(自动取款机中修改密码不作要求)
其他要求:
用户在账号密码正确进入主界面后,只要不退卡,可以循环操作。具体循环操作次数不固定;用户每选择一项服务并操作完后,给出相应的提示,并提示用户返回主界面
中间要求:
请大家自己看代码理解
package ATM;
import java.util.Scanner;
/**
*
*存在部分不足,但是基本的操作都可以使用,不影响操作,要求都可以达到。
*/
public class ATM {
public static void main(String[] args) {
System.out.println("*******" + "欢迎使用中国银行自动取款服务" + "*********");
//循环计数
int count = 3;
for (int i = 1; i <= 3; i++) {
Scanner input = new Scanner(System.in);
System.out.println("**" + "请输入你的账号" + "**");
int Id = input.nextInt();
Scanner sc = new Scanner(System.in);
System.out.println("**" + "请输入你的密码" + "**");
String password = sc.next();
//判断账号密码是否匹配
if (password.equals("123456") && Id == 111111) {
System.out.println("**" + "密码正确" + "**");
break;
} else {
System.out.println("**" + "你的账号或密码有误" + "**");
System.out.println("**" + "你已经错了第" + i + "次" + "**");
count--;
if (i == 3) {
System.out.println("**" + "您的账号已被冻结" + "**");
break;
}
}
}
//当为0即不能进入系统
if(count!=0) {
ATM atm = new ATM();
atm.Select();
}
}
public User user = new User();
//设初始余额为常量5000
static double balance = 5000;
public class User {
private double balance;
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
//主体循环语句
public void Select() {
//用循环一直执行
while (true) {
System.out.println("*******" + "欢迎使用中国银行自动取款服务" + "*********");
System.out.println("**" + "1.查询" + " " + "2.取款" + "**");
System.out.println("**" + "3.存款" + " " + "4.退卡" + "**");
System.out.println("**" + "请选择你需要的服务:");
Scanner reader = new Scanner(System.in);
int number = reader.nextInt();
switch (number) {
case 1:
//查询余额
showBalance();
break;
case 2:
//取款
drawMoney();
break;
case 3:
//存款
depositMoney();
break;
case 4:
//退卡,相当于结束
System.out.println("*******" + "中国银行自动取款服务" + "*********");
System.out.println("*******" + "感谢您使用中国银行自动取款服务" + "*********");
System.out.println("*******" + " 请取卡,再见! " + "*********");
break;
}
if (number == 4) {
break;
}
}
}
public void drawMoney() {
System.out.println("******" + "请输入取款金额" + "******");
Scanner input = new Scanner(System.in);
double qk = input.nextDouble();
//判断值是否大于初值5000,不存在有负数的所以没有写
while (qk > user.getBalance() + balance) {
System.out.println("******" + "余额不足,取款失败!" + "******");
System.out.println("******" + "请重新输入金额" + "******");
qk = input.nextDouble();
System.out.println("******" + "返回请选择5" + "******");
if(input.nextDouble()==5) {
Select();
}
}
//将值进行更新
user.setBalance(user.getBalance() - qk);
System.out.println("******" + "取款成功!" + "******");
System.out.println("******" + "返回请选择5" + "******");
if(input.nextDouble()==5) {
Select();
}
}
public void showBalance() {
//这里是显示最新数据
System.out.println("**" + " 您的账户余额为" + (balance + user.getBalance()) + "元/人民币");
System.out.println("******" + "返回请选择5" + "******");
Scanner input = new Scanner(System.in);
double ye = input.nextDouble();
if(input.nextDouble()==5) {
Select();
}
}
public void depositMoney() {
System.out.println("******" + "请输入存款金额" + "******");
Scanner input = new Scanner(System.in);
double ck = input.nextDouble();
//这里是用最新值加上新值得出更新值
user.setBalance(user.getBalance() + ck);
System.out.println("******" + "存款成功!" + "******");
System.out.println("账户余额" + (user.getBalance() + balance) + "元/人民币");
System.out.println("******" + "返回请选择5" + "******");
if(input.nextDouble()==5) {
Select();
}
}
}
代码自测有效,请不要直接复制粘贴。