基于JAVA控制台版本银行自动取款机(修改版)

这是我第一次写项目所进行的修改之后的内容,感觉比之前写的通顺而且相比较更加容易理解。

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

package ATM;

import java.util.Scanner;

public class ATM1 {
	//成员变量
	private static String usernames[] = {"zhangsan","李四"};
	private static String passwords[] = {"123456","123456"};
	private static double moneys[] = {5000,4500};

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 mune();
	}
	
	/**
	 * -登录模块
	 */
	public static int login() {
		int i = 0; 
		while(i < 3) {
			//登录过程
			Scanner input  = new Scanner(System.in);
			System.out.println("请输入您的账号:");
			String username = input.next();
			System.out.println("请输入您的密码:");
			String password = input.next();
			for(int j = 0 ; j < usernames.length;j++) {
				if(usernames[j].equals(username) 
						&& passwords[j].equals(password)) {
					//返回登录用户成功的数组的索引下标
					return j;
				}
			}
			i++;
			if(i < 3) {
				System.out.println("登录失败,剩余"+(3-i)+"次机会!");
			}else {
				System.out.println("账号被冻结!");
			}
		}
		return -1;	
	}
	
	
	/**
	 * -菜单模块
	 */
	public static void mune() {
		int index = login();
		if(index < 0) {
			return;
		}
		while(true) {
			System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
			System.out.println("   1.查询                                                  2.取款                      ");
			System.out.println("   3.转账                                                  4.退卡                      ");
			Scanner input = new Scanner(System.in);
			System.out.print("请选择:");
			if(!input.hasNextInt()) {
				System.out.println("输入错误,请重新输入!");
				continue;
			}
			int select = input.nextInt();
			switch(select) {
			case 1:
				//查询方法
				queryMoney(index);
				break;
			case 2:
				//取款方法
				getMoney(index);
				break;
			case 3:
				//转账方法
				sendMoney(index);
				break;
			case 4:
				System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
				System.out.println("-----------谢谢您使用中国民生银行自助取款服务---------");
				System.out.println("请取卡,再见!");
				return;
			default:
				System.out.println("选择错误,无此选项,请重新输入!");
				break;
			}	
		}
	}
	
	
	/**
	 * -查询方法
	 */
	public static void queryMoney(int index) {
		System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
		System.out.println("您的余额为"+moneys[index]+"元/人民币");
		btnFive();
	}
	
	/**
	 * -取款
	 */
	public static void getMoney(int index) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入您取款的金额:");
		if(!input.hasNextInt()) {
			System.out.println("输入错误,请重新输入!");
			return;
		}
		int money = input.nextInt();
		if(money <= 0 || money > moneys[index]) {
			System.out.println("余额不足,取款失败!");
			return;
		}
		moneys[index] = moneys[index] - money;	
		btnFive();
	}
	
	/**
	 * -转账
	 */
	public static void sendMoney(int index) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入您转账的金额:");
		if(!input.hasNextInt()) {
			System.out.println("输入错误,请重新输入!");
			return;
		}
		int money = input.nextInt();
		if(money <= 0 || money > moneys[index]) {
			System.out.println("余额不足,取款失败!");
			return;
		}
		System.out.println("请输入收款账号:");
		String username = input.next();
		//是否存在账号标志位
		int flag = -1;
		for(int i = 0 ; i < usernames.length;i++) {
			if(username.equals(usernames[i])) {
				flag = i;
			}
		}
		if(flag >= 0) {
			//转出方
			moneys[index] = moneys[index] - money;		
		}else {
			System.out.println("账号不存在!");
		}
		btnFive();
	}
	
	
	/**
	 * -按5返回
	 */
	public static void btnFive() {
		while(true) {
			System.out.println("按5返回:");
			Scanner input = new Scanner(System.in);
			if(!input.hasNextInt()) {
				System.out.println("输入错误,请重新输入!");
				continue;
			}
			int value = input.nextInt();
			if(value == 5) {
				break;
			}
		}
	}
	

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值