JAVA基础模拟ATM系统
2020-07-19 14:53
197 查看
ATM系统
题目
封装类
ATM类
package com.cpd.atmTest.entity; import com.cpd.atmTest.entity.Card; import java.util.List; import java.util.Map; import java.util.Set; public class Atm { private String name; // 名字 private String num; // 编号 private boolean type; // 是否继续循环 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } public boolean isType() { return type; } public void setType(boolean type) { this.type = type; } }
Card类
package com.cpd.atmTest.entity; public class Card { private String account; //账号 private String password; //密码 private double balance; //余额 private String bankName; //银行卡名字 private String name; //持卡人姓名 public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } 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; } public Card(String account, String password, double balance, String bankName, String name) { this.account = account; this.password = password; this.balance = balance; this.bankName = bankName; this.name = name; } public Card() { } @Override public String toString() { return "Card{" + "account='" + account + '\'' + ", password='" + password + '\'' + ", balance=" + balance + ", bankName='" + bankName + '\'' + ", name='" + name + '\'' + '}'; } }
ATM的接口方法
package com.cpd.atmTest.dao; import com.cpd.atmTest.entity.Card; public interface AtmDao { //1.余额查询 inquireMoney public void inquireMoney(); //2.取款 takeMoney public void takeMoney(); //3.存款 saveMoney public void saveMoney(); //4.转账 turnMoney public void turnMoney(); //5.打印 print public void print(); //6.退卡 checkCard public void checkCard(); //7.查询转账信息 queryTurnI public void queryTurnI(); }
ATM的接口方法实现ATMimpl
package com.cpd.atmTest.impl; import com.cpd.atmTest.entity.CardInfo; import com.cpd.atmTest.dao.AtmDao; import com.cpd.atmTest.entity.Card; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.*; public class AtmDaoImpl implements AtmDao{ // 获取银行卡信息的List,Map,Set集合 private List<Card> cardList = null; private Map<String, Card> cardMap = null; private Set<Card> cardSet = null; private Card card = null; // ATM机构造方法 public AtmDaoImpl() { cardInfo(); } //存储账号所有操作信息 List<String> AllIn=new ArrayList<>(); //存储转账信息 List<String> OutIn=new ArrayList<>(); //扫描仪对象 Scanner scanner = new Scanner(System.in); // 初始化银行卡信息 public void cardInfo() { CardInfo cardInfo = new CardInfo(); cardList = cardInfo.getCardInfo(); cardMap = cardInfo.getCardInfoMap(); cardSet = cardInfo.getCardInfoSet(); } public void login(){ if(card!=null){ //显示菜单 showMenu(); } System.out.println("请输入银行卡账号:"); String inaccount=scanner.next(); boolean cz=true; //判断卡号是否存在 for (String key : cardMap.keySet()) { if(inaccount.equals(key)){ card=cardMap.get(key); System.out.println("请输入银行卡密码:"); String inpassword=scanner.next(); cz=false; //判断密码是否正确 if(inpassword.equals(card.getPassword())){ //将登录信息存入Alllist String str="户主:"+card.getName()+" 账号:"+card.getAccount(); AllIn.add(str); OutIn.add(str); //显示菜单 showMenu(); }else { System.out.println("密码错误,请重新输入"); login(); } }else{//重新登录 continue; } } if (cz){ System.out.println("账号不存在"); login(); } } // 显示主菜单 public void showMenu() { // 4、显示主菜单。 System.out.println("***********************************"); 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("**********************************"); } @Override public void inquireMoney() { //将当前操作存入Alllist String str="查询余额————>当前账户余额查询"+card.getBalance(); AllIn.add(str); System.out.println("当前账户余额查询"+card.getBalance()); } @Override public void takeMoney() { System.out.println("请输入取款金额:"); double outMoney=scanner.nextDouble(); if(outMoney>=0&&outMoney<=card.getBalance()){ card.setBalance(card.getBalance()-outMoney); //将当前操作存入Alllist String str="取款————>取款前:"+(card.getBalance()+outMoney)+" 取款:"+outMoney+" 当前账户余额查询:"+card.getBalance(); AllIn.add(str); System.out.println("当前账户余额查询"+card.getBalance()); }else { System.out.println("取款金额错误或余额不足:"); takeMoney(); } } @Override public void saveMoney() { System.out.println("请输入存款金额:"); double inMoney=scanner.nextDouble(); if(inMoney>=0){ card.setBalance(card.getBalance()+inMoney); //将当前操作存入Alllist String str="存款————>存款前:"+(card.getBalance()-inMoney)+" 存款:"+inMoney+" 当前账户余额查询:"+card.getBalance(); AllIn.add(str); System.out.println("当前账户余额查询"+card.getBalance()); }else { System.out.println("存款金额输入错误:"); saveMoney(); } } @Override public void turnMoney() { System.out.println("请输入转账银行卡账号:"); String turnaccount=scanner.next(); boolean cz=true; if(turnaccount.equals(card.getAccount())){ System.out.println("不能给自己转账!!!!"); cz=false; turnMoney(); }else { //判断卡号是否存在 for (String key : cardMap.keySet()) { if(turnaccount.equals(key)){ Card turncard=cardMap.get(key); System.out.println("请输入转账金额:"); double turnMoney=scanner.nextDouble(); cz=false; //判断密码是否正确 if(turnMoney>=0&&turnMoney<=card.getBalance()){ card.setBalance(card.getBalance()-turnMoney); turncard.setBalance(turncard.getBalance()+turnMoney); //将当前操作存入Alllist ,OUtin String str="转账————>转账前:"+(card.getBalance()+turnMoney)+" 转账:"+turnMoney+" 当前账户余额查询:"+card.getBalance()+" 转账户主:"+turncard.getName()+" 转账账户:"+turncard.getAccount(); AllIn.add(str); OutIn.add(str); System.out.println("当前账户余额查询"+card.getBalance()); }else { System.out.println("转账金额错误或余额不足:"); turnMoney(); } }else{//重新登录 continue; } } } if (cz){ System.out.println("账号不存在"); turnMoney(); } } @Override public void print() { System.out.println("文件存放路径:C:\\m.txt"); // 打开一个文件 File file = new File("C:\\m.txt"); if (file.exists()) {//判断文件是否存在,存在删除 file.delete(); } try { FileWriter fw = new FileWriter(file);; for (String str:AllIn){ fw.write(str+"\n"); fw.write("--------------------------------------"+"\n"); fw.flush(); } } catch (IOException e) { e.printStackTrace(); } } @Override public void checkCard() { System.out.println("当前账户信息:"+card.toString()); System.out.println("谢谢您的使用,欢迎下次光临!!!"); } @Override public void queryTurnI() { // 使用Map循环显示用户信息 System.out.println("-----------------------"); for (String str : cardMap.keySet()) { Card card = cardMap.get(str); System.out.println(card.getName() + "\t" + card.getAccount()+ "\t" + card.getPassword() + "\t" + card.getBalance()+ "\t" + card.getBankName()); } System.out.println("------当前用户转账信息----"); for (String str : OutIn) { System.out.println(str); } if (OutIn.size()==1){ System.out.println("当前用户无转账信息!!!!"); } System.out.println("-----------------------"); } }
Person测试类
package com.cpd.atmTest.test; import com.cpd.atmTest.entity.Card; import com.cpd.atmTest.impl.AtmDaoImpl; import java.util.Scanner; public class Person { public static void main(String[] args) { //欢迎登录 System.out.println("---欢迎登录ATM系统---"); AtmDaoImpl atmDao = new AtmDaoImpl(); Scanner scanner = new Scanner(System.in); boolean type=true; //调用登录方法 atmDao.login(); while (type){ System.out.println("---请选择你想要操作类型*---"); int choose=scanner.nextInt(); switch (choose){ case 1: atmDao.inquireMoney(); atmDao.showMenu(); break; case 2: atmDao.takeMoney(); atmDao.showMenu(); break; case 3: atmDao.saveMoney(); atmDao.showMenu(); break; case 4: atmDao.turnMoney(); atmDao.showMenu(); break; case 5: atmDao.print(); atmDao.showMenu(); break; case 6: atmDao.checkCard(); type=false; break; case 7: atmDao.queryTurnI(); atmDao.showMenu(); break; default: System.out.println("default"); break; } } } }
代码实现展示
相关文章推荐
- 黑马程序员_java_基础加强_模拟银行管理系统
- 黑马程序员_java_基础加强_模拟银行管理系统
- Java基础之模拟购物系统案例
- 黑马程序员_java_基础加强_模拟交通灯管理系统
- JAVA基础作业练习—自定义异常之模拟ATM
- 金融IT——模拟银行ATM系统Java实现
- JAVA基础代码分享--模拟人机猜拳系统
- 模拟ATM系统(Java实现)
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[文件保存](1) 推荐
- 黑马程序员 18 Java基础教学 - 18 - 银行业务调度系统
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟
- java基础--简单交通灯管理系统
- Java模拟登录系统抓取内容【转载】
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1) 推荐
- java语言编程模拟ATM自动取款机
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
- 黑马程序员_java进阶之-银行业务调度系统模拟(二)
- 黑马程序员--Java基础学习之网络编程(TCP、UDP、Socket、模拟发送和接收数据)
- Lesson_for_java_day21--java的多线程练习(ATM存取款机、多窗口卖票系统、5人赛跑)
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](2) 推荐