我是靠谱客的博主 活力鸡,最近开发中收集的这篇文章主要介绍Java ATM系统课程设计完整代码详细注释,注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码

首先定义一个用户类。代码如下

 

 

package mima;

/**
 * 账户私有成员
 *
 */
public class Acount1 {
    private String cardId;
    private String userNamer;//用户名;
    private String passWard;
    private double money;
    private double qoutmoney;//余额


    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getUserNamer() {
        return userNamer;
    }

    public void setUserNamer(String userNamer) {
        this.userNamer = userNamer;
    }

    public String getPassWard() {
        return passWard;
    }

    public void setPassWard(String passWard) {
        this.passWard = passWard;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getQoutmoney() {
        return qoutmoney;
    }

    public void setQoutmoney(double qoutmoney) {
        this.qoutmoney = qoutmoney;
    }
}

然后就是完整的核心代码

package mima;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Atmsystem {
    public static void main(String[] args) {
        ArrayList<Acount1> acount1s = new ArrayList<>();//创建一个集合
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("======欢迎进入ATM系统=======");
            System.out.println("1.账户登录");
            System.out.println("2.账户注册");
            System.out.println("请选择你的操作:");
            int co = sc.nextInt();
            switch (co) {
                case 1:
                    //登录操作
                    login(acount1s, sc);
                    break;
                case 2:
                    //注册操作ALT+ENTER;
                    register(acount1s, sc);//传入扫描
                    break;
                default:
                    System.out.println("你的选择不存在-");
            }
        }


    }

    /**
     * @param acount1s 全部账户对象的集合
     * @param sc
     */
    private static void login(ArrayList<Acount1> acount1s, Scanner sc) {
        System.out.println("=============登陆操作============");
        if (acount1s.size() == 0) {
            System.out.println("账号不存在--");
            return;
        }
        while (true) {
            System.out.println("请您输入卡号:");
            String cardd = sc.next();
            Acount1 acc = getaccomtcardid(acount1s, cardd);//接受返回的对象
            if (acc != null) {//登录密码
                while (true) {
                    System.out.println("请您输入密码:");
                    String paward = sc.next();
                    if (acc.getPassWard().equals(paward)) {
                        System.out.println("登录成功!欢迎" + acc.getUserNamer() + "进入");

                        usermenu(sc, acc, acount1s);
                        return;
                    } else {
                        System.out.println("密码错误!");
                    }
                }


            } else {
                System.out.println("该账号不存在!");
            }
        }

    }

    /**
     * 用户操作页面
     *
     * @param sc
     */
    private static void usermenu(Scanner sc, Acount1 acc, ArrayList<Acount1> acount1s) {
        while (true) {
            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("7,注销账户");
            System.out.println("请选择:");
            int com = sc.nextInt();
            switch (com) {
                case 1:
                    showaccont(acc);
                    break;
                case 2:
                    setmoney(sc, acc);

                    break;
                case 3:
                    pushmoney(sc, acc);
                    break;
                case 4:
                    tranermoney(sc, acount1s, acc);
                    break;
                case 5:
                    updatapassword(sc,acc,acount1s);
                    return;
                case 6:
                    System.out.println("退出成功");
                    return;

                case 7:
                    if (deletueser(acc,acount1s,sc)) {
                        return;
                    }
                    else {
                        break;
                    }
                default:
                    System.out.println("您的选择错误:");
            }
        }
    }

    private static boolean  deletueser(Acount1 acc, ArrayList<Acount1> acount1s, Scanner sc) {
        System.out.println("==========销户操作页面==========");
        System.out.println("确认销户?(输入”是“进行销户)");
        String k = sc.next();
        switch (k){
            case "是":
                if(acc.getMoney()>0)
                {
                    System.out.println("您账户中还有余额,不能销户");
                    return false;
                }
                else
                {
                    acount1s.remove(acc);
                    System.out.println("销户成功");
                    return true;
                }

            default:
                System.out.println("返回操作菜单");
                return  false;
        }
    }

    /**
     *
     * @param sc
     * @param acc
     */
    private static void updatapassword(Scanner sc,Acount1 acc,ArrayList<Acount1> acount1s) {
        System.out.println("===============密码修改操作页面=============");
        while (true) {
            System.out.println("请输入原始密码:");
            String passwd = sc.next();
            if(acc.getPassWard().equals(passwd))
            {
                while (true) {
                    System.out.println("请输入新密码:");
                    String paw = sc.next();
                    System.out.println("请确认新密码:");
                    String pd = sc.next();
                    if(pd.equals(paw))
                    {
                        acc.setPassWard(pd);
                        System.out.println("密码修改成功");
                        return;
                    }
                    else
                    {
                        System.out.println("两次输入不相同,请重新输入:");
                    }
                }

            }
            else
            {
                System.out.println("密码错误请重新输入;");
            }
        }
    }

    /**
     * 转账,
     *
     * @param sc
     * @param acount1s 集合
     * @param acc      登录用户,对象
     */
    private static void tranermoney(Scanner sc, ArrayList<Acount1> acount1s, Acount1 acc) {
        System.out.println("===========进入转账============");
        if (acount1s.size() < 2) {
            System.out.println("无其他用户");
            return;
        }
        if (acc.getMoney() == 0) {
            System.out.println("余额不足-");
            return;
        }
        while (true) {
            System.out.println("请输入对方卡号:");
            String cid1 = sc.next();
            if (acc.getCardId().equals(cid1)) {
                System.out.println("您不可以向自己转账");
                continue;

            }
            Acount1 acont = getaccomtcardid(acount1s, cid1);
            if (acont == null) {
                System.out.println("账户不存在");
            } else {
                String UserName = acont.getUserNamer();
                String tip = "*" + UserName.substring(1);
                System.out.println("请您输入[" + tip + "]姓氏");
                String pername = sc.next();
                if (UserName.startsWith(pername)) {
                    while (true) {
                        System.out.println("请输入转账金额:");
                        double money = sc.nextDouble();
                        if (acc.getMoney() < money) {
                            System.out.println("余额不足,你最多可以转" + acc.getMoney());
                        } else {
                            acc.setMoney(acc.getMoney() - money);
                            acont.setMoney(acont.getMoney() + money);
                            System.out.println("转账成功,当余额为" + acc.getMoney());
                            return;

                        }
                    }

                } else {
                    System.out.println("输入信息错误");
                }
            }

        }


    }

    private static void pushmoney(Scanner sc, Acount1 acc) {
        if (acc.getMoney() < 100) {
            System.out.println("您当前余额小于100元,无法取出!");
            return;
        }
        while (true) {
            System.out.println("请输入取款金额:");
            double pmomey = sc.nextDouble();
            if (pmomey > acc.getQoutmoney()) {
                System.out.println("您当前取出金额大于限定金额:" + acc.getQoutmoney() + "元");
            } else {
                if (acc.getMoney() < pmomey) {
                    System.out.println("您所剩余额不足 " + acc.getMoney() + "元");
                } else {
                    acc.setMoney(acc.getMoney() - pmomey);
                    showaccont(acc);
                    return;
                }
            }
        }

    }

    /**
     * 存钱
     */
    private static void setmoney(Scanner sc, Acount1 acc) {
        System.out.println("请输入存取金额:");
        double money = sc.nextDouble();
        acc.setMoney(acc.getMoney() + money);
        showaccont(acc);


    }

    /**
     * 用户信息展示;
     */
    private static void showaccont(Acount1 acc) {
        System.out.println("当用户前信息如下:");
        System.out.println("用户名:" + acc.getUserNamer());
        System.out.println("卡号:" + acc.getCardId());
        System.out.println("当前余额:" + acc.getMoney() + "元");
        System.out.println("限额:" + acc.getQoutmoney() + "元");
    }

    /**
     * 注册开户
     *
     * @param acount1s//接收信息的集合
     */
    private static void register(ArrayList<Acount1> acount1s, Scanner sc) {
        System.out.println("========注册开户操作========");
        //创建一个账户对象,用于后期封装账户信息,
        Acount1 acount1 = new Acount1();
        //录入当前信息注入到,对象中去。
        System.out.println("请输入用户名:");
        String usernamer = sc.next();
        acount1.setUserNamer(usernamer);
        while (true) {
            System.out.println("请输入密码:");
            String password = sc.next();
            System.out.println("请确认密码:");
            String password1 = sc.next();
            if (password.equals(password1)) {
                acount1.setPassWard(password1);
                break;
            } else {
                System.out.println("两次密码输入不一样,请重新输入");

            }

        }
        System.out.println("请输入每次限额;");
        double tomoney = sc.nextDouble();
        acount1.setQoutmoney(tomoney);
        System.out.println("ok");
        //为账户随机一个八位数且不重复,独立方法
        String cardid = getrandomcard(acount1s);
        System.out.println("恭喜你" + usernamer + "开户成功!" + "您的卡号为" + cardid);
        acount1.setCardId(cardid);
        acount1s.add(acount1);

    }

    private static String getrandomcard(ArrayList<Acount1> acount1s) {
        //生成八位数
        while (true) {
            Random r = new Random();
            String cId = "";
            for (int i = 0; i < 8; i++) {
                cId += r.nextInt(10);
            }
            //System.out.println("ok");
            Acount1 acc = getaccomtcardid(acount1s, cId);
            if (acc == null) {
                return cId;
            }
        }
    }

    private static Acount1 getaccomtcardid(ArrayList<Acount1> acount1s, String cId) {//比较是否重复
        for (int i = 0; i < acount1s.size(); i++) {
            Acount1 acc = acount1s.get(i);
            if (acc.getCardId().equals(cId)) {
                return acc;
            }
        }
        return null;//查无此账户
    }
}

最后

以上就是活力鸡为你收集整理的Java ATM系统课程设计完整代码详细注释,注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码的全部内容,希望文章能够帮你解决Java ATM系统课程设计完整代码详细注释,注册,登录,查询,取款·,转账,修改密码 等功能 。直接上代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部