基于JAVA控制台版本银行自动取款机

这是我第一次写项目,感觉还行吧。不敢说很好。

项目要求:
实现银行自动取款机的以下基本操作功能:读卡、取款、存款、查询。(自动取款机中修改密码不作要求)
其他要求:
用户在账号密码正确进入主界面后,只要不退卡,可以循环操作。具体循环操作次数不固定;用户每选择一项服务并操作完后,给出相应的提示,并提示用户返回主界面
中间要求:
请大家自己看代码理解

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();
		}
	}
}

代码自测有效,请不要直接复制粘贴。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值