温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现 ATM模拟应用JavaR

发布时间:2021-09-10 16:56:07 来源:亿速云 阅读:155 作者:柒染 栏目:编程语言

如何实现 ATM模拟应用JavaR,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

用面向对象的方式实现参考

1. 用户类

import java.util.Scanner;

//用户类
public class MyUser {
	private String cardNumber="111";	//卡号
	private String cardPassword="123";	//密码
	static Scanner sc=new Scanner(System.in);
	// 用户登录
	public boolean userLogin(){	
		System.out.println("请输入卡号:");
		System.out.println("提示:模拟插入银行卡,系统中仅有卡号111,其它无效!");			
		String cnumber=sc.next();
		System.out.println("请输入密码:");
		System.out.println("提示:默认123!");		
	    String cPassword=sc.next();
	    if (cnumber.equals(this.cardNumber) && cPassword.equals(this.cardPassword))return true;
	    else return false;
	}
}

2. ATM类

//ATM类
public class ATM {
	//[1]定义变量,用于模拟银行数据库相关信息
	static int balance;            	//余额
	//构造方法——用于对象初始化
	public ATM() {
		showWelcome();
		balance=200;
	}	
	//[2-1]显示欢迎界面
	public void showWelcome(){	
		System.out.println("###########################################################");
		System.out.println("欢迎使用工商银行自动取款机!");
		System.out.println("###########################################################");		
	}
	//[2-2]显示主操作界面
	public void showMain(){		
		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("======================================");		
		System.out.println("请输入选择序号:");
	}
	//[2-3]存钱
	public void add(){		
		System.out.println();
		System.out.println("请输入存款金额:");
		System.out.println("提示:只可输入数字!");	
		int number=MyUser.sc.nextInt();
		if(number > 0){
			balance+=number;
			System.out.println("存款成功!");
			}
		else {
			System.out.println("输入错误,存款失败!");
		}
		show();
	}
	//[2-4]取钱
	public void sub(){	
		System.out.println();
		System.out.println("请输入取款金额:");
		System.out.println("提示:只可输入数字!");	
		int number=MyUser.sc.nextInt();
		if(number > balance){
			System.out.println("余额不足,取款失败!");
		}else {
			balance-=number;
			System.out.println("取款成功!");
		}
		show();
	}
	//[2-5]查询余额
	public void show(){	
		System.out.println();
		System.out.println("当前余额为: " + balance + " 元");
		System.out.println();
		showMain();
	}
	//[2-6]退卡
	public void exitATM(){	
		System.out.println("卡已退出…………");
		showWelcome();
	}	
}

3. 主类

//主类
public class MyMain {
	public static void main(String[] args) {
		// 【1】面向对象方式实现
		ATM objATM=new ATM(); //由于构造方法初识化了objATM这个对象,所以程序执行到这里已经显示ATM欢迎界面了		
		// 【2】调用MyUser的登录方法,实现登录功能
		MyUser objUser=new MyUser();		
	    int inNumber = 3 ;		//定义变量,用于标记登录次数
		boolean status=false;	//用于标识用户登录状态
		//[2-1]用户登录,通过status变量标识登录状态
		do {
			status=objUser.userLogin();
			if(status) {
				objATM.showMain();//显示主操作界面
				break;//或者将循环条件设置为假
			}
			else{
				inNumber--;
				if (inNumber!=0) System.out.println("用户名或密码不正确,请重新输入!");
			}
		} while (inNumber > 0);
		//[2-2]成功则选择操作
		if(status) {					
			boolean isSelect=true;
			while(isSelect) { //控制主功能菜单循环操作
				String obj=MyUser.sc.next();
				switch (obj) {
				case "1":
					objATM.show();
					break;
				case "2":
					objATM.sub();
					break;
				case "3":
					objATM.add();
					break;
				case "4":
					isSelect=false;
					MyUser.sc.close();
					objATM.exitATM();
				}
			}
		}
		else {
			objATM.exitATM();
		}		
	}
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI