Java项目--ATM机控制台程序

学习目标:

用java语言基础知识写一个简易的ATM机控制台程序


代码如下

import java.util.Scanner;
public class ATM {
	public static void main(String[] args) throws InterruptedException {
		String[][] name = new String[10][5];
		name[0][0]="hy";name[0][1]="hy";
		name[1][0]="xw";name[1][1]="xw";
        double[][] balance = new double[10][5];
        balance[0][0]=999;
        balance[1][0]=999;
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("---------欢迎使用湖北银行ATM机---------");
            System.out.println("请选择以下功能:");
            System.out.println("1.注册账号\n2.登录账号\n3.退出系统");
            int i = sc.nextInt();
            switch (i) {
                case 1:
                	System.out.println("请输入注册账号:");
                    String a = sc.next();
                    System.out.println("请输入注册密码:");
                    String b = sc.next();
                    boolean duplicate = false;//检查是否已经存在相同的账户
                    for (int j = 0; j < name.length; j++) {
                        if (name[j][0] == null) { // 新建账户
                            break;
                        } else if (name[j][0].equals(a)) { // 账户已存在
                            System.out.println("该账号已存在,请重新输入!");
                            duplicate = true;
                            break;
                        }
                    }
                    if (!duplicate) {
                        for (int j = 2; j < name.length; j++) {
                            if (name[j][0] == null) {
                                name[j][0] = a;
                                name[j][1] = b;
                                balance[j][0] = 0.0;
                                System.out.println("注册成功!");
                                break;
                            }
                        }
                    }
                    break;
                case 2:
                	int tryTimes = 0;
                	while (tryTimes < 3) {
                		System.out.println("请输入您的银行卡账号:");
                        String d = sc.next();
                	    System.out.println("请输入您的密码:");
                	    String e = sc.next();
                	    for (int j = 2; j < name.length; j++) {
                	    if (name[j][0] != null && name[j][0].equals(d) && name[j][1].equals(e)) {
                	        // 登录成功,重置登录次数
                	        tryTimes = 0;
                	        boolean flag = true;
                            while (flag) {
                                System.out.println("========================");
                                System.out.println("请选择以下功能:");
                                System.out.println("1.查询余额\n2.取款\n3.存款\n4.转账\n5.修改密码\n6.退卡");
                                System.out.println("========================");
                                int n = sc.nextInt();
                                switch (n) {
                                    case 1:
                                        System.out.println("您的账户余额为:" + balance[j][0]);
                                        break;
                                    case 2:
                                        System.out.println("请输入取款金额:");
                                        double l1 = sc.nextDouble();
                                        if (l1 % 50 != 0 || l1 <= 0) { 
                                            System.out.println("取款金额应为50或100的整数倍!");
                                        } else if (balance[j][0] < l1) {
                                            System.out.println("对不起,账户余额不足!");
                                        } else {
                                            balance[j][0] -= l1;
                                            System.out.println("取款成功!您的账户余额为:" + balance[j][0]);
                                        }
                                        break;
                                    case 3:
                                        System.out.println("请输入存款金额:");
                                        double j1 = sc.nextDouble();
                                        if (j1 % 50 != 0 || j1 <= 0) { 
                                            System.out.println("存款金额应为50或100的整数倍!");
                                        } else {
                                            balance[j][0] += j1;
                                            System.out.println("存款成功!您的账户余额为:" + balance[j][0]);
                                        }
                                        break;
                                    case 4:
                                    	System.out.println("请输入转账账号:");
                                        String l2 = sc.next();
                                        System.out.println("请输入转账金额:");
                                        double t1 = sc.nextDouble();
                                        int j2 = -1;
                                        for (int k = 0; k < name.length; k++) {
                                            if (name[k][0] != null && name[k][0].equals(l2)) {
                                                j2 = k;
                                                break;
                                            }
                                        }
                                        if (j2 == -1 || j2 == j) {
                                            System.out.println("对不起,转账账号不存在或者不能向自己转账!");
                                        } else if (t1 % 50 != 0 || t1 <= 0) {
                                            System.out.println("取款金额应为50或100的整数倍!");
                                        } else if (balance[j][0] < t1) {
                                            System.out.println("对不起,账户余额不足!");
                                        } else {
                                            balance[j][0] -= t1;
                                            balance[j2][0] += t1;
                                            System.out.println("转账成功!您的余额为¥" + balance[j][0]);
                                        }
                                        break;
                                    case 5:
                                    	 System.out.println("请输入原密码:");
                                         String oldPwd = sc.next();
                                         if (oldPwd.equals(name[j][1])) {
                                             System.out.println("请输入新密码:");
                                             String newPwd = sc.next();
                                             System.out.println("请再次输入新密码确认修改:");
                                             String newPwd2 = sc.next();
                                             if (oldPwd.equals(newPwd)) {
                                            	 System.out.println("原密码与新密码重复,密码修改失败!");                                             
                                             } 
                                             else if(newPwd.equals(newPwd2)) {
                                            	 name[j][1] = newPwd;
                                                 System.out.println("密码修改成功!请重新登录");
                                                 flag = false;
                                             }
                                             else {
                                                 System.out.println("两次输入的新密码不一致,密码修改失败!");
                                             }
                                         } else {
                                             System.out.println("原密码不正确,密码修改失败!");
                                         }
                                         break;
                                    case 6:
                                        System.out.println("已成功退卡!");
                                        System.out.println("-----返回到登录界面-----");
                                        flag = false;
                                        break;
                                    default:
                                        System.out.println("输入有误,请输入1—6的数字!"); 
                                        break;
                                }
                            }
                            break;
                	    } else {
                	        // 登录失败,记录登录次数
                	        tryTimes++;
                	        System.out.println("密码错误,请重新输入!还有" + (3 - tryTimes) + "次机会!");
                	    }
                	}}
                	// 登录超过限制,等待5分钟
                	System.out.println("登录次数超过限制,请等待5分钟之后再尝试登录!");
                	Thread.sleep(300000); // 5分钟=300秒=300000毫秒
                    break;
                case 3:
                    System.out.println("感谢您的使用,再见!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入有误,请输入1—3的数字!");
                    break;
            }
        }
  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在奋斗的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值