zoukankan      html  css  js  c++  java
  • 模拟ATM的功能

    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Scanner;
    public class AccountManager {
    
    public static void main(String[] args) {
    LinkedList<Account> acc=new LinkedList<Account>();
    Scanner shuru=new Scanner(System.in);
    getInformation(acc);
    int flag;
    // System.out.println(acc.get(0).getAccountID());
    // System.out.println(acc.size());
    panding(acc);
    
    }
    
    
    // 判定账号
    public static void panding(LinkedList<Account> acc) {
    Scanner shuru = new Scanner(System.in);
    int flag = 0;
    int j=0;
    String zhanghao;
    while (flag == 0) {
    System.out.println("***************************************************************");
    System.out.println("    欢迎使用中国工商银行自动柜员系统");
    System.out.println("****************************************************************");
    System.out.println(" 请输入您的账号:");
    System.out.println();
    System.out.println("****************************************************************");
    zhanghao = shuru.next();
    //System.out.println(zhanghao);
    if (zhanghao.length() != 8) {
    System.out.println("该卡不是工行卡");
    } else {
    //System.out.println(zhanghao);
    for (int i = 0; i < acc.size(); i++) {
    if (zhanghao.equals(acc.get(i).getAccountID())) {
    flag = 1;
    j=i;
    }
    //System.out.println(j);
    
    }
    {
    if (flag == 0) {
    System.out.println("该账号不存在");
    } else {
    shurumima(acc,j);
    }
    }
    }
    
    }
    }
    //判定密码 a为固定的账户
    public static void shurumima(LinkedList<Account> acc,int a)
    {
    
    int i=0;
    while(i<3)
    {    
    System.out.println("***************************************************************");
    System.out.printf("    欢迎 ");
    System.out.print(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println(" 请输入您的密码:");
    System.out.println();
    System.out.println("****************************************************************");
    String mima ;
    Scanner shuru = new Scanner(System.in);
    mima=shuru.next();
    if(mima.equals(acc.get(a).getAccontpassword()))
    {
    i=5;
    }
    else {
    System.out.println("密码录入错误");
    i=i+1;
    }
    }
    if(i==5)
    {
    gongneng(acc,a);
    }
    else 
    {
    System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
    }
    }
    //主界面
    public static void gongneng(LinkedList<Account> acc, int a) {
    String q="q";
    while (q.equals("q")) {
    
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    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();
    System.out.println("****************************************************************");
    int key = 0;
    Scanner shuru = new Scanner(System.in);
    key = shuru.nextInt();
    acc.get(a).setOperatetype(key);
    switch (key) {
    case 1:
    cunkuan(acc,a);
    q=shuru.next();
    break;
    case 2:
    qukuan(acc,a);
    q=shuru.next();
    break;
    case 3:
    zhuanzhang(acc,a);
    q=shuru.next();
    break;
    case 4:
    xiugai(acc,a);
    q=shuru.next();
    break;
    case 5:
    chaxun(acc,a);
    q=shuru.next();
    break;
    
    }
    }
    }
    public static void chaxun(LinkedList<Account> acc, int a)
    {
    getList(a, acc);
    System.out.println("*************;**************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.printf(" 当前账户余额为:");
    System.out.println(acc.get(a).getAccountbalance());
    System.out.println("账户清单信息为:");
    acc.get(a);
    acc.get(a).setAmount(0);
    acc.get(a).setOperatetype(5);
    acc.get(a).setOperatedate("");
    setList(a, acc);
    System.out.println("****************************************************************");
    }
    public static void cunkuan(LinkedList<Account> acc, int a)
    {
    int qian;
    int i=0;
    while(i==0)
    {
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println(" 请输入存款金额:");
    System.out.println();
    System.out.println("****************************************************************");
    Scanner shuru = new Scanner(System.in);
    qian=shuru.nextInt();    
    if(qian>0)
    {
    int yue=0;
    yue=acc.get(a).getAccountbalance()+qian;
    acc.get(a).setAccountbalance(yue);
    i=1;
    acc.get(a).setAmount(qian);
    acc.get(a).setOperatedate("");
    setInformation(acc);
    setList(a, acc);
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println(" 当前账户存款操作成功。");
    System.out.printf(" 当前账户余额为:");
    System.out.println(yue);
    System.out.println();
    System.out.println("****************************************************************");
    }
    else 
    {
    System.out.println("输入金额有误");
    }
    }
    }
    
    public static void xiugai (LinkedList<Account> acc, int a)
    {
    String mima="";
    String mima1="";
    String mima2="";
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("请输入当前密码::");
    System.out.println("****************************************************************");
    Scanner shuru = new Scanner(System.in);
    mima=shuru.next();
    if(mima.equals(acc.get(a).getAccontpassword()))
    {
    System.out.println("请输入修改密码:");
    mima1=shuru.next();
    System.out.println("请再输入修改密码:");
    mima2=shuru.next();
    if(mima1.equals(mima2))
    {
    acc.get(a).setAccontpassword(mima1);
    acc.get(a).setOperatedate("");
    setInformation(acc);
    setList(a, acc);
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("当前账户密码修改成功");
    System.out.println("****************************************************************");
    }
    else
    {
    System.out.println("修改密码与确认密码不一致");
    }
    }
    else
    {
    System.out.println("当前密码录入错误");
    }
    }
    //转账操作
    public static void zhuanzhang(LinkedList<Account> acc, int a) {
    int qian = 0;
    String zhanghao = "";
    int j = 0;
    int flag = 0;
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("请输入转账账户:");
    System.out.println("****************************************************************");
    Scanner shuru = new Scanner(System.in);
    zhanghao = shuru.next();
    for (int i = 0; i < acc.size(); i++) {
    if (zhanghao.equals(acc.get(i).getAccountID())) {
    j = i;
    flag = 1;
    }
    }
    if (flag == 1) {
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("请输入转账金额:");
    System.out.println("****************************************************************");
    qian = shuru.nextInt();
    if (qian < acc.get(a).getAccountbalance()) {
    
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.println("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.printf("请确认是否向");
    System.out.print(acc.get(j).getAccountname());
    System.out.print(qian);
    System.out.println("元。");
    System.out.println("****************************************************************");
    String f;
    f=shuru.next();
    if(f.equals("N"))
    {
    acc.get(j).setAmount(qian);
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(j).setOperatedate("");
    setInformation(acc);
    setList(a, acc);
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.println("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.printf("当前账户成功向");
    System.out.print(acc.get(j).getAccountname());
    System.out.print(qian);
    System.out.println("元。");
    System.out.println("****************************************************************");
    }
    
    } else {
    System.out.println("账户余额不足");
    }
    } else {
    System.out.println("该账户不存在");
    }
    }
    public static void qukuan(LinkedList<Account> acc, int a)
    {
    int key=0;
    int qian=0;
    int i=0;
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("1、100元");
    System.out.println("2、500元");
    System.out.println("3、1000元");
    System.out.println("4、1500元");
    System.out.println("5、2000元");
    System.out.println("6、5000元;");
    System.out.println("7、其他金额");
    System.out.println("8、退卡");
    System.out.println("9、返回");
    Scanner shuru = new Scanner(System.in);
    key=shuru.nextInt();
    switch(key)
    {
    case 1:
    if(acc.get(a).getAccountbalance()>100) 
    {
    qian =100;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 2:
    if(acc.get(a).getAccountbalance()>500) 
    {
    qian =500;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 3:
    if(acc.get(a).getAccountbalance()>1000) 
    {
    qian =1000;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 4:
    if(acc.get(a).getAccountbalance()>1500) 
    {
    qian =1500;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 5:
    if(acc.get(a).getAccountbalance()>2000) 
    {
    qian =2000;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 6:
    if(acc.get(a).getAccountbalance()>5000) 
    {
    qian =5000;
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    acc.get(a).setAmount(qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 7:
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.println("请输入取款金额:");
    System.out.println("****************************************************************");
    qian=shuru.nextInt();
    if(acc.get(a).getAccountbalance()>qian) 
    {
    acc.get(a).setAmount(qian);
    acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
    i=1;
    }
    else 
    {
    System.out.println("账户余额不足");
    }
    break;
    case 8:
    gongneng(acc,a);
    break;
    case 9:
    panding(acc);
    break;
    }
    acc.get(a).setOperatedate("");
    setInformation(acc);
    setList(a, acc);
    getInformation(acc);
    if(i==1)
    {
    System.out.println("***************************************************************");
    System.out.printf("    欢迎");
    System.out.printf(acc.get(a).getAccountname());
    System.out.printf("    使用中国工商银行自助柜员系统");
    System.out.println("****************************************************************");
    System.out.printf("当前账户取款操作");
    System.out.print(qian);
    System.out.println("元成功。");
    System.out.printf("当前账户余额为:");
    System.out.print(acc.get(a).getAccountbalance());
    System.out.println("元");
    System.out.println("****************************************************************");
    }
    }
    public static String getList(int i,LinkedList<Account> acc)//读取流水
    {
    try
    {
    FileReader fr=new FileReader("E:\新建文件夹 (3)\src\java第一周学习2\AccountList");
    Scanner in=new Scanner(fr);
    String iid=acc.get(i).getAccountID();
    String id=new String();
    String s=new String();
    String sum="";
    int z=1;
    while(in.hasNextLine())
    {
    id=in.next();
    if(iid.equals(id))
    {
    s=id+" "+in.nextLine()+"
    ";
    sum=sum+"( "+z+" )	"+s;
    z++;
    }
    }
    fr.close();
    in.close();
    return sum;
    }
    catch(Exception e)
    {
    System.out.println("文件读取失败");
    return "";
    }
    }
    public static void setList(int i,LinkedList<Account> acc)//写入流水
    {
    try
    {
    Account a=acc.get(i);
    FileWriter fw=new FileWriter("E:\新建文件夹 (3)\src\java第一周学习2\AccountList",true);
    PrintWriter pw=new PrintWriter(fw);
    pw.println(a.getAccountID()+" "+a.getAccountname()+" "+ a.getOperatedate()+" "+a.getOperatetype()+" "+a.getAmount());
    pw.flush();
    pw.close();
    fw.close();
    }
    catch(Exception e)
    {
    System.out.println("文件写入失败");
    }
    }
    
    
    
    
    
    
    
    
    public static void getInformation(LinkedList<Account> acc)//获得信息
    {
    
    try
    {
    FileReader fr=new FileReader("E:\新建文件夹 (3)\src\java第一周学习2\AccountInformation");
    Scanner r=new Scanner(fr);
    while(r.hasNext())
    {
    Account a=new Account();
    a.setAccountID(r.next());
    a.setAccontpassword(r.next());
    a.setAccountname(r.next());
    a.setAccountbalance(r.nextInt());
    acc.add(a);
    }
    fr.close();
    r.close();
    }
    catch(Exception e)
    {
    System.out.println("文件写入失败");
    }
    }
    public static void setInformation(LinkedList<Account> acc)//写入信息
    {
    try
    {
    int i=0;
    FileWriter fw=new FileWriter("E:\新建文件夹 (3)\src\java第一周学习2\AccountInformation");
    PrintWriter pw=new PrintWriter(fw);
    for(i=0;i<acc.size();i++)
    {
    
    pw.println(acc.get(i).getAccountID()+" "+acc.get(i).getAccontpassword()+" "+ acc.get(i).getAccountname()+" "+acc.get(i).getAccountbalance());
    }
    pw.flush();
    pw.close();
    fw.close();
    }
    catch(Exception e)
    {
    System.out.println("文件写入失败");
    }
    }
    
    }

    通过这次的练习,我了解了我自己对java的学习还有很大的欠缺。还有很多的东西需要去学习,去理解。

    在那次课之中,好多东西的用法我都不熟悉,所以并没有写出多少。

    今后我会更加努力的学习有关Java的知识,不断提升自己的能力。

  • 相关阅读:
    java 请求响应乱码
    基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681
    基于eclipse的mybatis映射代码自动生成的插件
    使用Mybatis Generator自动生成Mybatis相关代码
    MyBatis使用Generator自动生成代码
    selector是在文件夹drawable中进行定义的xml文件。
    新浪微博布局学习——妙用TabHost
    分布的拟合和检验
    python学习之--SyntaxError: Non-ASCII character 'xe5'
    两天学会DirectX 3D之入门
  • 原文地址:https://www.cnblogs.com/chenyuchun/p/9697012.html
Copyright © 2011-2022 走看看