用java写的一个模拟银行系统,比较初级。

ATM.java

 package cn.tedu.yinhang;

 import java.util.Scanner;

 /**
* @author 赵瑞鑫 E-mail:1922250303@qq.com
* @version 1.0
* @创建时间:2020年7月27日 下午7:04:27
* @类说明:
*/
public class ATM implements PayTelInter {
private UnionCard card;
Scanner sc = new Scanner(System.in); // 插卡,不同卡片显示不同的menu
public void insertCard(UnionCard card) {
this.card = card;
// 测试卡片是否为BOC,
// BOC为Card的实例对象
if (card instanceof BOC) {
checkPWA();
}
} public void checkPWA() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入密码:");
int pw = sc.nextInt();
if (card.checkPw(pw)) {
while (true)
showBocMenu();
} else {
System.out.println("密码错误");
}
} // BOC菜单
public void showBocMenu() {
/*Scanner sc = new Scanner(System.in);
System.out.println("请输入密码:");
int pw = sc.nextInt();
if (card.checkPw(pw)) {
while (true) {*/
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(" 操作5 退 出");
System.out.println("请您选择操作数:");
int key = sc.nextInt();
switch (key) {
case 1:
showBalance();
System.out.println("输入0返回:");
int n = sc.nextInt();
if(n==0)showBocMenu();
break;
case 2:
saveBalance();
System.out.println("输入0返回:");
int n1 = sc.nextInt();
if(n1==0)showBocMenu();
break;
case 3:
takeBalance();
System.out.println("输入0返回:");
int n2 = sc.nextInt();
if(n2==0)showBocMenu();
break;
case 4:
payMethod();
System.out.println("输入0返回:");
int n4 = sc.nextInt();
if(n4==0)showBocMenu();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("请选择合法操作!");
System.out.println("输入0返回:");
int n5 = sc.nextInt();
if(n5==0)showBocMenu();
break;
}
} /*} else {
System.out.println("密码错误");
}*/ // 显示余额
private void showBalance() {
System.out.println(card.getBalance());
} // 存钱
private void saveBalance() {
Scanner sc = new Scanner(System.in);
System.out.println("请存款:(提示:存款数值应不小于100且为100的倍数)");
int money = sc.nextInt();
card.saveMoney(money);
System.out.println("成功!");
System.out.println("您当前余额为:");
System.out.println(card.getBalance());
} // 取钱
private void takeBalance() {
Scanner sc = new Scanner(System.in);
System.out.println("请取款:(提示:取款数值应不小于100且为100的倍数)");
int money = sc.nextInt();
card.takeMoney(money);
System.out.println("您当前余额为:");
System.out.println(card.getBalance());
} private void payMethod() {
System.out.println("*******************************");
System.out.println(" 云尚天成银行ATM系统 ");
System.out.println(" 操作1 手机话费");
System.out.println(" 操作2 水电费");
System.out.println(" 操作3 医疗费 ");
System.out.println(" 操作4 煤气费");
System.out.println(" 操作5 返 回");
System.out.println("请您选择操作数:");
int key = sc.nextInt();
switch (key) {
case 1:
Scanner sc = new Scanner(System.in);
System.out.println("请输入充值数额:");
int money = sc.nextInt();
payTel(money);
System.out.println("成功!");
System.out.println("您当前余额为:");
System.out.println(card.getBalance());
break;
case 2: break;
case 3: break;
case 4: break;
case 5: break;
default:
break;
}
} @Override
public boolean payTel(int money) {
// TODO Auto-generated method stub
if (money<0&&money%100!=0) {
System.err.println("数值不合法!");
}else{
double balance = card.getBalance();
balance -= money;
card.setBalance(balance);
}
return false;
} }

ATM.java

BOC.java

 package cn.tedu.yinhang;

 /**
* @author 赵瑞鑫 E-mail:1922250303@qq.com
* @version 1.0
* @创建时间:2020年7月27日 下午6:58:32
* @类说明:中国银行卡类
*/
public class BOC extends UnionCard {
//构造方法传值
public BOC(String id, double balance, int pw) {
// TODO Auto-generated constructor stub
super(id, balance, pw);
}
}

BOC.java

MainClass.java

 package cn.tedu.yinhang;

 import cn.tedu.yinhang.ATM;
import cn.tedu.yinhang.BOC; /**
* @author 赵瑞鑫 E-mail:1922250303@qq.com
* @version 1.0
* @创建时间:2020年7月27日 下午7:53:08
* @类说明: 测试类
*/
public class MainClass { public static void main(String[] args) {
// TODO Auto-generated method stub
new ATM().insertCard(new BOC("0001", 200, 123)); } }

MainClass.java

PayTelInter.java

 package cn.tedu.yinhang;

 /**
* @author 赵瑞鑫 E-mail:1922250303@qq.com
* @version 1.0
* @创建时间:2020年7月27日 下午7:02:50
* @类说明: 交电话费接口
*/
public interface PayTelInter {
public abstract boolean payTel(int money);
}

PayTelInter

UnionCard.java

 package cn.tedu.yinhang;

 /**
* @author 赵瑞鑫 E-mail:1922250303@qq.com
* @version 1.0
* @创建时间:2020年7月27日 下午6:45:08
* @类说明: UnionCard类,银联卡
*/
public class UnionCard {
private String id;// 卡号
private double balance;// 余额
private int pw;// 密码 // 初始化成员变量
public UnionCard(String id, double balance, int pw) {
super();
this.id = id;
this.balance = balance;
this.pw = pw;
} // set,get方法
public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public double getBalance() {
return balance;
} public void setBalance(double balance) {
this.balance = balance;
} public int getPw() {
return pw;
} public void setPw(int pw) {
if (pw<0&&pw>6) {
System.err.println("您输入的密码有误,请检查。");
}else{
this.pw = pw;
}
} // 存钱的方法
public void saveMoney(int money) {
if (money%100==0) {
balance += money;
}else{
System.err.println("数值不合法!");
}
} // 取钱的方法
public void takeMoney(int money) {
if (money%100==0) {
balance -= money;
}else{
System.out.println("数值不合法!");
}
} // 验证密码是否相同,相同返回true,否则返回false
public boolean checkPw(int pw) {
if (pw == this.pw) {
return true;
} else {
return false;
}
}
}

UnionCard.java

最新文章

  1. Delphi名站以及高手Blog
  2. cf340D Bubble Sort Graph
  3. 事务复制中的msrepl_ccs
  4. 部署时,出现用户代码未处理 System.Security.Cryptography.CryptographicException 错误解决方法
  5. [AFUI]App Framework Quickstart
  6. java基础回顾(三)——HashMap与HashTable
  7. 时序列数据库武斗大会之什么是 TSDB ?
  8. redis主从 哨兵
  9. 获取mysqli函数的值和字段名
  10. linux学习(七)环境变量、cp、mv、cat,less,more,head,tail
  11. 为什么很多类甚者底层源码要implements Serializable ?
  12. Sass 笔记
  13. Spring MVC 使用介绍(十一)—— 跨域与静态资源访问
  14. JPA 连表查询
  15. scrapy splash 之一二
  16. 【Spring】SpringMVC配置文件
  17. Python记录13:软件开发目录规范
  18. vue打包
  19. bootstrap 3.0 LESS源代码浅析(二)
  20. XMind8 安装

热门文章

  1. day45 数据库基础
  2. Let&#39;s GO(一)
  3. 关于echarts中的饼状图的label文字显示过长的问题
  4. 谈谈你对 TCP 三次握手和四次挥手的理解
  5. 三、python函数详解
  6. JVM 专题十:运行时数据区(五)堆
  7. Dynamics CRM Audit Performance Troubleshooting
  8. 关于Haskell计算斐波那契数列的思考
  9. bzoj2561最小生成树
  10. 什么?你正在学web自动化测试?那这些Selenium的基本操作你了解过吗?