package com.alibaba;
/**
* 银行卡
* 账号
* 密码
* 余额
* 银行卡名字
* 持卡人姓名
*/
public class Account {
private String accountNum; //卡号
private String pwd; //密码
private double balance; //余额
private String bankName;//银行卡名字
private String name;//持卡人姓名
//构造器
public Account() {
super();
}
public Account(String accountNum, String pwd, double balance, String bankName, String name) {
this.accountNum = accountNum;
this.pwd = pwd;
this.balance = balance;
this.bankName = bankName;
this.name = name;
}
public String getAccountNum() {
return accountNum;
}
public void setAccountNum(String accountNum) {
this.accountNum = accountNum;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.alibaba;
import com.hp.demo03.InputUtils;
import java.util.Scanner;
/**
* 自动取款机
* 插卡
* 纸币
* 余额不足
* 输入密码
* 可以取款
*/
public class ATM {
private Account account; //卡槽
private double balance; //取款机的纸币余额
private int flag; //如果等于1表示密码登录成功,等于0表示密码错误
//主菜单
public void main(){
while(true){
System.out.println("--------------------------------");
System.out.println("-- 1.余额查询 2.取款---");
System.out.println("-- 3.存款 4.转账---");
System.out.println("-- 5.打印 6.退卡---");
System.out.println("--7.查询转账信息");
System.out.println("-- 0.退出 ---");
//选择执行功能
System.out.println("-->请输入0-7的数字选择功能执行:");
}
}
/**
* 输入密码
*/
public void inputPwd(){
System.out.println("-->请输入卡密码...");
String pwd = new Scanner(System.in).next();
//判断密码是否正确(跟卡槽里的卡判断)
if(pwd.equals(this.account.getPwd())){
System.out.println("-->提示:密码正确..");
flag=1;
}else{
System.out.println("-->警告:密码错误");
flag=0;
}
}
/**
* 取款
*/
public void withdrawMoney() {
//先判断是否密码已正确登录
if(flag==0){
System.out.println("-->请先登录!!");
return;
}
System.out.println("-->请输入取款金额...");
int money = new Scanner(System.in).nextInt();
//判断卡里的钱是否足够
if(money<=this.account.getBalance()){
System.out.println("-->提示:正在出纸币..");
//判断ATM是否有足够纸币
if(money<=this.balance){
System.out.println("-->提示:请取走您的纸币..");
this.account.setBalance(this.account.getBalance()-money);
this.setBalance(this.getBalance()-money);
System.out.println("-->取款"+money);
System.out.println("-->您的银行卡账号余额:"+this.account.getBalance());
System.out.println("-->ATM剩余纸币:"+this.getBalance());
}else{
System.out.println("-->提示:ATM纸币不足,请联系工作人..");
}
}else{
//System.out.println("-->警告:余额不足!!!替换为异常处理");
//抛出自定义异常
//BalanceNotEnoughException e = new BalanceNotEnoughException();
//throw e;//抛出了异常
}
}
/**
* 存款
*/
public void cunkuan(){
}
//构造器
public ATM() {
}
public ATM(double balance) {
this.balance = balance;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
package com.alibaba;
/**
* 测试使用ATM
*/
public class Test {
public static void main(String[] args){
//创建ATM取款机对象
ATM atm = new ATM(5000);//取款机只有5000纸币
//创建银行卡账号
Account account = new Account("10101100", "123456", 200,"张三","工商银行");
//模拟取款
//第一步:插卡
atm.setAccount(account);
//第二步:输入密码
atm.inputPwd();
//第三步:取款
atm.withdrawMoney();
//第四步:退卡
atm.setAccount(null);
System.out.println("-->程序运行结束");
Object o = new ATM();
}
}