Java基础练习之ATM机简单实现

标签: java java基础 atm while循环 类型转换
22人阅读 评论(1) 收藏 举报
分类:

ATM机

1、ATM机
要求:
1)注册(两个):
用户名,密码,余额
在请输入用户名(英文),密码(数字,长度必须为6个长度),余额(double,必须大于10)。用一个数组装。
提示:注册成功。
否则失败。
2)登录,欢迎页面。
限制登录三次就被吃卡不能再次登录,提示还剩多少次登录机会(登录失败)
3)登录成功
1)查询余额
2)取款
3)转账
4)存钱
5)修改密码
6)退出

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        String[][] message = new String[2][4];
        String username = null;
        String password = null;
        String index = null;
        String userid = null;
        Scanner scanner = new Scanner(System.in);
        boolean flag1 = true;
        int regcount1 = 0;
        while (flag1) {
            System.out.println("----欢迎使用ATM服务----");
            System.out.println("----------1 登录-----------");
            System.out.println("----------2 注册-----------");
            System.out.println("----------3 退出-----------");
            System.out.println("----------------------------");
            index = scanner.next();
            if ("1".equals(index)) {
                boolean flag3 = true;
                int logincount = 3;
                System.out.println("-----登录-----");
                while (flag3) {
                    for (int x = 0; x < message.length; x++) {
                        if (!flag3) {
                            break;
                        }
                        for (int j = 1; j < message[x].length - 2; j++) {
                            System.out.println("请输入用户名");
                            if (scanner.next().equals(message[x][j])) {
                                System.out.println("请输入密码");
                                if (scanner.next().equals(message[x][j + 1])) {
                                    userid = message[x][0];
                                    // System.out.println(userid);
                                    System.out.println("登录成功");
                                    boolean flag4 = true;
                                    while (flag4) {
                                        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("----------6 退出-----------");
                                        System.out.println("----------------------------");
                                        index = scanner.next();
                                        if (index.matches("^[1-6]+$")) {
                                            switch (index) {
                                            case "1":
                                                System.out.println("您的余额为:" + message[Integer.parseInt(userid)][3]);
                                                break;
                                            case "2":
                                                System.out.println("请输入你要取款的金额");
                                                String getmoney = scanner.next();
                                                double savemoney = Double.parseDouble(message[Integer.parseInt(userid)][3]);
                                                if (getmoney.matches("^[0-9]+$")) {
                                                    if (Double.parseDouble(getmoney) <= Double.parseDouble(message[Integer.parseInt(userid)][3])) {
                                                        message[Integer.parseInt(userid)][3] = String.valueOf(savemoney - (Double.parseDouble(getmoney)));
                                                        System.out.println("取款成功");
                                                    } else {
                                                        System.out.println("您的余额不足");
                                                    }
                                                } else {
                                                    System.out.println("你输入的金额不合法");
                                                }
                                                break;
                                            case "3":
                                                System.out.println("请输入转账账号");
                                                String account = scanner.next();
                                                if (!message[Integer.parseInt(userid)][1].equals(account)) {
                                                    int count3 = 0;
                                                    for (int k = 0; k < 2 && k < message[k].length - 2; k++) {
                                                        if (account.equals(message[k][1]) && message[Integer.parseInt(userid)][1] != message[k][1]) {
                                                            System.out.println("请输入你要转入的金额");
                                                            double gomoney = Double.parseDouble(scanner.next());
                                                            message[k][3] = String.valueOf(Double.parseDouble(message[k][3]) + gomoney);
                                                            message[Integer.parseInt(userid)][3] = String.valueOf(Double.parseDouble(message[Integer.parseInt(userid)][3]) - gomoney);
                                                            System.out.println("转账成功");
                                                            count3++;
                                                        }
                                                    }
                                                    if (count3 == 0) {
                                                        System.out.println("没有这个账户");
                                                    }
                                                } else {
                                                    System.out.println("不能转账给自己,账号错误");
                                                }
                                                break;
                                            case "4":
                                                System.out.println("请输入你要存入的金额");
                                                String getmoney2 = scanner.next();
                                                double savemoney2 = Double.parseDouble(message[Integer.parseInt(userid)][3]);
                                                if (getmoney2.matches("^[0-9]+$")) {
                                                    if (Double.parseDouble(getmoney2) >= 10) {
                                                        message[Integer.parseInt(userid)][3] = String.valueOf(savemoney2 + (Double.parseDouble(getmoney2)));
                                                        System.out.println("存款成功");
                                                    } else {
                                                        System.out.println("存入金额至少10元");
                                                    }
                                                } else {
                                                    System.out.println("你输入的金额不合法");
                                                }
                                                break;
                                            case "5":
                                                System.out.println("请输入新密码");
                                                String newpassword = scanner.next();
                                                if (newpassword.matches("^[0-9]+$")) {
                                                    if (newpassword.length() >= 6) {
                                                        message[Integer.parseInt(userid)][2] = newpassword;
                                                        System.out.println("修改成功");
                                                    } else {
                                                        System.out.println("密码至少6位");
                                                    }
                                                } else {
                                                    System.out.println("你输入的密码必须是数字");
                                                }
                                                break;
                                            case "6":
                                                flag3 = false;
                                                flag4 = false;
                                                System.out.println("返回主页");
                                                break;
                                            default:
                                                flag3 = false;
                                                break;
                                            }
                                        } else {
                                            System.out.println("输入有误");
                                        }
                                    }
                                } else {
                                    System.out.println("登录失败,用户名或者密码错误 剩余登陆次数" + (logincount - 1));
                                }
                            } else {
                                System.out.println("用户错误");
                            }
                        }
                    }
                }
            } else if ("2".equals(index)) {
                System.out.println("----注册-----");
                int count2 = 0;
                boolean flag2 = true;
                while (flag2) {
                    if (regcount1 <= 1) {
                        System.out.println("请输入用户名 必须是英文");
                        username = scanner.next();
                        if (username != null && !username.isEmpty()) {
                            if (username.matches("^[A-Za-z]+$")) {
                                while (true) {
                                    System.out.println("请输入密码 必须是数字 6位长度");
                                    password = scanner.next();
                                    if (password != null && !password.isEmpty()) {
                                        if (password.matches("^[0-9]+$") && password.length() == 6) {
                                            message[regcount1][count2] = String.valueOf(regcount1);
                                            message[regcount1][count2 + 1] = username;
                                            message[regcount1][count2 + 2] = password;
                                            message[regcount1][count2 + 3] = String.valueOf(regcount1);
                                            regcount1++;
                                            System.out.println("注册成功");
                                            flag2 = false;
                                            break;
                                        } else {
                                            System.out.println("密码不符合要求,请重新输入");
                                        }
                                    } else {
                                        System.out.println("你没有输入任何内容,请重新输入");
                                    }
                                }
                            } else {
                                System.out.println("用户名不是英文,请重新输入");
                            }
                        } else {
                            System.out.println("你没有输入任何内容,请重新输入");
                        }
                    } else {
                        System.out.println("注册用户已满");
                        flag2 = false;
                        break;
                    }
                }
            } else if ("3".equals(index)) {
                System.out.println("退出成功");
                flag1 = false;
                scanner.close();
                break;
            } else {
                System.out.println("输入选项有误,请重新输入");
            }
        }
    }
}

Java基础练习,代码有问题的地方,欢迎评论指出。

查看评论

java语言程序设计第八版 习题10.7 ATM机

用Account类来模拟一台ATM机 Account类源码: import java.util.Date; public class Account { private int id = ...
  • koalacoco
  • koalacoco
  • 2013-04-18 15:19:25
  • 2261

Lesson_for_java_day21--java的多线程练习(ATM存取款机、多窗口卖票系统、5人赛跑)

一、ATM存取款机: 二、多窗口卖票系统:
  • u013233075
  • u013233075
  • 2014-05-04 16:02:47
  • 1003

ATM机 JAVA编写 基本功能都实现

  • 2013年04月03日 20:26
  • 38KB
  • 下载

用Java模仿银行自助存取一体机(ATM)

package pricate.use; import java.util.Scanner; //模仿银行自助存取一体机(ATM) public class TestUser4 {   pub...
  • pangqiandou
  • pangqiandou
  • 2016-08-11 20:33:35
  • 7825

java简单项目atm机

一个简单的j2se项目
  • Moon561
  • Moon561
  • 2016-09-13 00:02:21
  • 1080

简单Atm系统JAVA代码

简单的ATM系统Java代码,有自己写的,请教过别人,借鉴过别人,但对像自己一开始根本没学过Java的来说,在惠普学习三个周后,能写出来也是一种提高。。。继续加油...
  • huangjuntao_1
  • huangjuntao_1
  • 2015-09-20 10:12:59
  • 6324

Java:利用嵌套循环模拟ATM机取款业务

代码:package com.jredu.ch03; import java.util.Scanner; public class Work4 { public static void mai...
  • xuehyunyu
  • xuehyunyu
  • 2017-07-28 22:25:41
  • 701

如何做一个简易的ATM机

下图是我做一个简易的ATM机的思路和步骤:(以人性化为原则,再根据生活中实际ATM机补充) 代码实现为: package lesson816; import java.util.Sc...
  • hugo_java
  • hugo_java
  • 2016-08-16 21:27:08
  • 2379

用java完成一个简单的ATM项目

那么在这个轻量级的ATM项目中,我将完成添加储蓄账号,添加信用账户,提款,取款等基本功能。...
  • wymolin
  • wymolin
  • 2017-12-22 15:31:11
  • 217
    个人资料
    等级:
    访问量: 22
    积分: 11
    排名: 236万+
    文章分类
    文章存档