100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 模拟银行取款 存款 转账 余额查询等功能7-19

模拟银行取款 存款 转账 余额查询等功能7-19

时间:2020-01-27 05:45:06

相关推荐

模拟银行取款 存款 转账 余额查询等功能7-19

需要ATM机类,该类完成主菜单的相关操作,在取钱和转账时,需判断余额情况

要求:实现数据持久化存储(方式不限)

根据自身需要看是否要创建BankCard银行卡类,如需创建,可以直接用以下属性:

创建模拟ATM银行类实现各种功能

package cn.zuoye;import java.io.*;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/*** 该类完成主菜单的相关操作,在取钱和转账时,需判断余额情况*/public class ATM {private BankCard bankCard;//卡槽private BankCard bankCard2;//收款账号Scanner scanner = new Scanner(System.in);/*** 登录ATM*/public void login(){System.out.println("*****************");System.out.println("*** 欢迎使用ATM **");System.out.println("*****************");System.out.println("请输入卡号:");String account = new Scanner(System.in).next();System.out.println("请输入密码:");String password = new Scanner(System.in).next();//如果正确了就继续使用try {BufferedReader br = new BufferedReader(new FileReader("data.txt"));String s = null;while((s=br.readLine())!=null){//把读取到的一行数据(一个账户信息)获取账号和密码字段,判断是否正确String[] arr = s.split(",");//001,123456,2000,中国银行,令狐冲if(account.equals(arr[0]) && password.equals(arr[1])){System.out.println("-->登录成功!!");BankCard bankCard = new BankCard();bankCard.setAccount(arr[0]);bankCard.setPassword(arr[1]);bankCard.setBalance(Double.parseDouble(arr[2]));bankCard.setBankName(arr[3]);bankCard.setName(arr[4]);this.bankCard=bankCard;//卡连接到卡槽main();//登录成功后,进入ATM操作菜单break;}}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}if(this.bankCard==null){System.out.println("--警告:登录失败");login();}}/*** 菜单*/private void main() {while(true){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("**********❤ ❤ ❤ ❤**********");//选择执行功能int key = new Scanner(System.in).nextInt();switch (key){case 1:this.balanceSearch();break; //余额查询case 2:this.withdrawMoney();break; //取款case 3:this.deposit();break; //存款case 4:this.transferAccounts();break; //转账case 5:this.print();break; //打印case 6://把数据更新到data.txt文件中dataUpdate();System.exit(0); //退卡case 7:this.searchTransferAccounts();break; //查询转账信息}}}/*** 更新数据*/private void dataUpdate() {List<String> list = new ArrayList<>();try {BufferedReader br = new BufferedReader(new FileReader("data.txt"));String s = null;while((s=br.readLine())!=null){//把读取到的一行数据(一个账户信息)获取账号和密码字段,判断是否正确String[] arr = s.split(",");//001,123456,2000,中国银行,令狐冲if(this.bankCard.getAccount().equals(arr[0])){list.add(this.bankCard.getAccount()+","+this.bankCard.getPassword()+","+this.bankCard.getBalance()+","+this.bankCard.getBankName()+","+this.bankCard.getName());}else if(this.bankCard2!=null && this.bankCard2.getAccount().equals(arr[0])){list.add(this.bankCard2.getAccount()+","+this.bankCard2.getPassword()+","+this.bankCard2.getBalance()+","+this.bankCard2.getBankName()+","+this.bankCard2.getName());}else {list.add(s);}}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}try {//写入文件BufferedWriter bw = new BufferedWriter(new FileWriter("data.txt"));for (String s:list) {bw.write(s);bw.newLine();}bw.close();} catch (IOException e) {e.printStackTrace();}}private void searchTransferAccounts() {}private void print() {}/*** 转账* 把钱转到另一个账号*/private void transferAccounts() {System.out.println("请输入收款卡号");String account = scanner.next();//收款账号System.out.println("请输入转账金额");double money = scanner.nextDouble();//转多少钱//从data.txt查询收款卡号的信息try {BufferedReader br = new BufferedReader(new FileReader("data.txt"));String s = null;while((s=br.readLine())!=null){//把读取到的一行数据(一个账户信息)获取账号和密码字段,判断是否正确String[] arr = s.split(",");//001,123456,2000,中国银行,令狐冲if(account.equals(arr[0])){System.out.println("-->收款账号存在!!");BankCard bankCard = new BankCard();bankCard.setAccount(arr[0]);bankCard.setPassword(arr[1]);bankCard.setBalance(Double.parseDouble(arr[2]));bankCard.setBankName(arr[3]);bankCard.setName(arr[4]);this.bankCard2=bankCard;//收款银行卡break;}}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}if(this.bankCard2==null){System.out.println("收款卡号不存在!!!转账失败");return;}//收款账号,收款账号要+钱this.bankCard2.setBalance(this.bankCard2.getBalance()+money);//当前账号,要-钱this.bankCard.setBalance(this.bankCard.getBalance()-money);DecimalFormat df = new DecimalFormat("0.0");String balance = df.format(this.bankCard.getBalance());System.out.println("当前余额为 "+balance);dataUpdate();//转账后直接写入this.bankCard2=null;}/*** 存款*/private void deposit() {}/*** 取款*/private void withdrawMoney() {System.out.println("*****请选择你要操作菜单的序号*****");System.out.println("*****1.100 2.200****");System.out.println("*****3.500 4.800****");System.out.println("*****5.1000 6.2000***");System.out.println("*****7.其它 8.返回****");int key = scanner.nextInt();double money=0;if(key==1){money=100;}else if(key==2){money=200;}else if(key==3){money=500;}else if(key==4){money=800;}else if(key==5){money=1000;}else if(key==6){money=2000;}else if(key==7){money=scanner.nextInt();}else if(key==8){return;}this.bankCard.setBalance(this.bankCard.getBalance()-money);DecimalFormat df = new DecimalFormat("0.0");String balance = df.format(this.bankCard.getBalance());System.out.println("当前余额为 "+balance);}/*** 余额查询*/private void balanceSearch() {DecimalFormat df = new DecimalFormat("0.0");String balance = df.format(this.bankCard.getBalance());System.out.println("当前账户余额为:"+balance);}public BankCard getBankCard2() {return bankCard2;}public void setBankCard2(BankCard bankCard2) {this.bankCard2 = bankCard2;}public BankCard getBankCard() {return bankCard;}public void setBankCard(BankCard bankCard) {this.bankCard = bankCard;}}

创建BankCard类设置属性及构造方法、set、get等方法

package cn.zuoye;/*** 银行卡*/public class BankCard {private String account; //账号private String password; //密码private double balance; //余额private String bankName; //银行卡名字private String name;//持卡人姓名@Overridepublic String toString() {return "BankCard{" +"account='" + account + '\'' +", password='" + password + '\'' +", balance=" + balance +", bankName='" + bankName + '\'' +", name='" + 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;}}

测试Demo01类

package cn.zuoye;import .objectweb.asm.tree.MultiANewArrayInsnNode;public class Demo01 {public static void main(String[] args) {ATM atm = new ATM();atm.login();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。