java atm 简单_Java的简易ATM系统

大纲

ATM 机系统

1.注册(账户(系统随机生成 15 位) - 密码(6位) - 余额)

2.登录

4.修改密码

3.查询余额

4.存钱 -(显示操作完成后的余额)

5.取钱 - (显示操作完成后的余额)

6.退出

7.支持通过银行卡转账功能(未完成)

8.数据持久化(未完成)

public class User {

//用户类

private String userId;//账户

private String userPassword;//密码

private double money;//余额

public User() {

super();

}

public String getUserId() {

return userId;

}

public void setUserId(String userId) {

this.userId = userId;

}

public String getUserPassword() {

return userPassword;

}

public void setUserPassword(String userPassword) {

this.userPassword = userPassword;

}

public double getMoney() {

return money;

}

public void setMoney(double money) {

this.money = money;

}

}

//功能类

import java.util.ArrayList;

import java.util.Random;

import java.util.Scanner;

import java.util.function.DoublePredicate;

import java.util.regex.Pattern;

public class ATMSystem {

private ArrayList users;

private Scanner scanner;

private int loginIndex;

public ATMSystem() {

this.users = new ArrayList<>();//分配空间

this.scanner = new Scanner(System.in);

stratCaiDan();

}

private void stratCaiDan() {

System.out.println("【1】注册 【2】登录 【3】退出");

System.out.print(">");

String result = scanner.nextLine();

switch (result) {

case "1":// 注册

register();

stratCaiDan();

break;

case "2":// 登入

login();

break;

case "3":// 退出

break;

}

}

//功能菜单

private void bankCaiDan() {

System.out.println("【1】查询余额 【2】 存钱 【3】取钱 【4】修改密码 【5】转账 【6】退出");

System.out.print(">");

String result = scanner.nextLine();

switch (result) {

case "1"://查询余额

showMoney();

bankCaiDan();

break;

case "2"://存钱

saveMoney();

bankCaiDan();

break;

case "3"://取钱

drawMoney();

bankCaiDan();

break;

case "4"://修改密码

updatePassword();

bankCaiDan();

break;

case "5"://转账

break;

case "6"://退出

break;

}

}

//查询余额

public void showMoney() {

System.out.println("余额:"+users.get(loginIndex).getMoney());

}

//存钱

public void saveMoney() {

System.out.print("请输入存款金额:");

String money = scanner.nextLine();

users.get(loginIndex).setMoney(users.get(loginIndex).getMoney()+Double.parseDouble(money));

System.out.println("存款成功");

showMoney();

}

//取钱

public void drawMoney() {

System.out.print("请输入取款金额:");

String money = scanner.nextLine();

if(users.get(loginIndex).getMoney()>=Double.parseDouble(money)) {

users.get(loginIndex).setMoney(users.get(loginIndex).getMoney()-                                 Double.parseDouble(money));

}else {

System.out.println("余额不足!");

return;

}

System.out.println("取款成功");

showMoney();

}

//修改密码方法

public void updatePassword() {

System.out.print("请输入原密码:");

String password = scanner.nextLine();

if(!users.get(loginIndex).getUserPassword().equals(password)) {

System.out.println("密码错误!");

return;

}

while (true) {

System.out.print("请输入新密码:");// 设置密码

String newPassword = scanner.nextLine();

if (!Pattern.matches("[0-9]{6}", newPassword)) {

System.out.println("密码输入有误,请重新输入");

continue;

}

System.out.print("请确认新密码:");

String rePassword = scanner.nextLine();

if (!rePassword.equals(newPassword)) {

System.out.println("您两次输入的密码不一样,请重新输入");

continue;

}

users.get(loginIndex).setUserPassword(newPassword);

System.out.println("修改密码成功");

break;

}

}

// 登录方法

private void login() {

System.out.print("请输入您的卡号:");

String id = scanner.nextLine();

int index = getUserIndexById(id);

if (index == -1) {

System.out.println("您输入的账号不存在,请检查后再试");

}

System.out.print("请输入密码:");

String password = scanner.nextLine();

if(users.get(index).getUserPassword().equals(password)) {

System.out.println("登入成功");

this.loginIndex = index;

//                        stratCaiDan();

//登录成功,跳转功能页面

bankCaiDan();

}else {

System.out.println("密码错误,请检查后再试");

login();

return;

}

}

//根据下标获取用户方法

private int getUserIndexById(String id) {

for (int index = 0; index < users.size(); index++) {

if (users.get(index).getUserId().equals(id)) {

return index;

}

}

return -1;

}

// 注册方法

private void register() {

User user = new User();

Random ran = new Random();

// 随机生成一个账号

for (int i = 0; i < 15; i++) {

if (i == 0) {

user.setUserId(ran.nextInt(9) + 1 + "");

} else {

user.setUserId(user.getUserId() + ran.nextInt(10));

}

}

System.out.println("账号 :" + user.getUserId() + "请妥善保管");

while (true) {

System.out.print("请输入密码:");// 设置密码

String password = scanner.nextLine();

if (!Pattern.matches("[0-9]{6}", password)) {

System.out.println("密码输入有误,请重新输入");

continue;

}

System.out.print("请确认密码:");

String rePassword = scanner.nextLine();

if (!rePassword.equals(password)) {

System.out.println("您两次输入的密码不一样,请重新输入");

continue;

}

user.setUserPassword(password);

users.add(user);

System.out.println("注册成功。账户为:" + user.getUserId());

break;

}

}

}

//启动测试类

public class Test {

public static void main(String[] args) {

new ATMSystem();

}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值