ATM银行机

package Lianxi2;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

/**
 * 模拟Atm机的一些简单功能
 */
public class ATM {
    /**
     * 定义初始化信息
     */
    private static String account = "123";        //账号
    private static String password = "123";      //密码
    private static double balance = 10000;      //余额
    private static String name = "tom";        //姓名

    private static String account1 = "321";   //账号
    private static String password1= "321";  //密码
    private static double balance1 = 100;   //余额
    private static String name1 = "jack";  //姓名

    private static boolean type = true;      //判断是否继续循环

    public static void main(String[] args) {
        //1、显示一段欢迎的信息
        System.out.println("欢迎使用ATM");
        while (type){
            //显示登录
            login();
            optionMenu();
        }
    }
    //定义一个方法 , 显示登录
    private static void login() {
        //2.提示输入卡号
        System.out.println("请输入卡号");
        //获取控制台对象
        Scanner scanner=new Scanner(System.in);
        //获取卡号
        String inAcount=scanner.next();
        //提示输入密码
        System.out.println("请输入密码");
        //3.获取输入密码
        String inPassword = scanner.next();
        //判断,输入的账号和密码是否和初始账号密码一样,如果一样, 显示主菜单,如果不一样,返回,继续输入卡号密码
        if (inAcount.equals(account)&&inPassword.equals(password)){
            showMenu();
        }else {
            login();
        }
    }
    //显示主菜单
    private static void showMenu() {
        //4.显示主菜单
        System.out.println("请输入你想要操作类型");
        System.out.println("1.余额查询 2.取款 3.存款 4.转账 5.打印 6.退卡");
    }
    //显示操作主菜单
    private static void optionMenu() {
        //获取控制台对象
        Scanner scanner=new Scanner(System.in);
        //提示让它选择操作类型
        String chose=scanner.next();
        switch (chose){
            case "1":
                //显示余额
                showMoney();
                //显示主菜单
                showMenu();
                //操作主菜单
                optionMenu();
                break;
            case "2":
                //取款快捷菜单
                getMoneyMenu();
                //取款操作
                getMoeny();
                //显示主菜单
                showMenu();
                //操作主菜单
                optionMenu();
                break;
            case "3" :
                //存款
                saveMoney();
                //显示主菜单
                showMenu();
                //操作主菜单
                optionMenu();
                break;
            case "4" :
                //转账
                tranMoney();
                //显示主菜单
                showMenu();
                //操作主菜单
                optionMenu();
                break;
            case "5" :
                //打印
                print();
                //显示主菜单
                showMenu();
                //操作主菜单
                optionMenu();
                break;
            case "6" :
                //退卡
                System.out.println("当前用户已退出!");
                //设置当前循环字段为false,退出while循环
                type = false;
                break;
                default : ;
                break;
        }
    }
    //打印显示当前余额
    private static void showMoney() {
        System.out.println("你当前的余额为:"+balance);
    }
    //显示取款快捷菜单
    private static void getMoneyMenu() {
        System.out.println("请输入你想要操作类型");
        System.out.println("1.100 2.200 3.500 4.1000 5.2000 6.其它");
    }
    //操作快捷取款
    private static void getMoeny() {
        //获取控制台对象
        Scanner scanner=new Scanner(System.in);
        String chose=scanner.next();
        switch (chose){
            case "1" :
                balance -=100;
                //显示余额
                showMoney();
                break;
            case "2" :
                balance -=200;
                //显示余额
                showMoney();
                break;
            case "3" :
                balance -=500;
                //显示余额
                showMoney();
                break;
            case "4" :
                balance -=1000;
                //显示余额
                showMoney();
                break;
            case "5" :
                balance -=2000;
                //显示余额
                showMoney();
                break;
            case "6" :

                break;
            default : ;
                break;
        }
    }
    //存款
    private static void saveMoney() {
        //获取控制台对象
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入存款金额:");
        double inMoney = scanner.nextDouble();
        balance+=inMoney;
        //显示余额
        showMoney();
    }
    //转账
    //		 逻辑分析 :
    //
    //		 实现转账的功能
    private static void tranMoney() {
        //1.输入对方账号
        System.out.println("请输入对方账号");
        //获取控制台对象
        Scanner scanner=new Scanner(System.in);
        //接收输入的字符串
        String inAccount  = scanner.next();
        //2.账号是否存在
        if(inAccount.equals(account1)){
            //3.输入转账金额
            System.out.println("请输入转账金额");
            double inMoney  = scanner.nextDouble();
            //4.余额是否足够
            if (balance>=inMoney){
                balance=balance-inMoney;
                balance1+=inMoney;
                //5.显示当前账户余额
                System.out.println("转账成功\n当前账户余额为:"+balance);
            }else {
                //提示余额不足
                System.out.println("账户余额不足");
                tranMoney();
            }
        }else {
            //提示你输入的账号不存在
            System.out.println("你输入的账号不存在,请重新输入");
            tranMoney();
        }
    }
    //打印
    //		逻辑分析:
    //		打印前前用户信息
    //
    //		1、显示打印文件的路径 。
    //		   1.1、把前账号,姓名,余额打印到本地.txt文件中。
    //		2、返回主菜单
    private static void print() {
        //首先定义一个路径
        String path = "d:\\file.txt";
        //1、显示打印文件的路径
        System.out.println(path);
        String str = "账号:"+account + "	余额:"+balance +"	姓名:"+ name;
        //创建一个文件对象
        File file=new File(path);
        //文件是否存在,不存在则创建
        if (file.exists()){
            file.delete();
        }else {
            //创建一个文件
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //把数据写入进入
        FileWriter FileWriter=null;
        try {
            FileWriter=new FileWriter(file);
            FileWriter.write(str);
            FileWriter.flush();
        } catch (IOException e) {
            e.printStackTrace();
            try {
                FileWriter.close();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值