栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

适合初学者java小项目———银行ATM系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

适合初学者java小项目———银行ATM系统

 本项目包含java se最基础的知识,在保证不超纲的条件下能很好锻炼逻辑思维,各方面的功能知识点都有用到,以下是讲解 

先创建一个包,这个包有4个类,以下是具体步骤

一.首先我们要创建一个用户对象类 ,在进行封装。


public class UserStruct {
    private String name;//户主名字
    private String Id;//卡号
    private String code;//密码
    private double money1;//提款限额
    private double money;//余额
    public UserStruct(double money) {
        this.money = money;
    }

    public double getMoney() {
        return money;
    }

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

    public UserStruct() {
    }

    public UserStruct(String name, String id,String code,  double money1) {
        this.name = name;
        Id = id;
        this.code = code;
        this.money1 = money1;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }


    public double getMoney1() {
        return money1;
    }

    public void setMoney1(double money1) {
        this.money1 = money1;
    }
}

二. 创建一个测试类 也是用户的主页面 ,先用集合录入对象,用方法把各功能区域分开,保证每一个类都有每一个的功能,方便调试的同时更加美观,不会看起来乱糟糟。

    1.用户注册页面

public class Lil_6 {
    public static void main(String[] args) {
        // 创建集合数据库,用于储存用户信息
        ArrayList home = new ArrayList<>();
        // 1.首页
        System.out.println("==========测试版ATM======");
        ControlMenu(home);
    }

    
    public static void ControlMenu(ArrayList home){
        while (true) {
            System.out.println("==========欢迎来到12ATM系统======");
            Scanner sc = new Scanner(System.in);
            System.out.println("1.登陆账号");
            System.out.println("2.注册账号");
            int number = sc.nextInt();
            switch (number) {
                case 1: ControlLogin(home); break; // 登陆功能
                case 2: ControlReg(home,sc); break; // 注册功能
                default: System.out.println("没有这个功能");break;
            }
        }
    }

    
    private static void ControlReg(ArrayList home,Scanner sc) {
        //注册功能方法
        System.out.println("==============================");
        System.out.println("请您输入您的名字");
        String name = sc.next();
        String code3;
        while (true) {
            System.out.println("请您输入您的密码");
            String code = sc.next();
            System.out.println("请确认密码");
            String code2 = sc.next();
            if (code.equals(code2)){
                code3=code;
                break;
            }else{
                System.out.println("两次密码有误,请重新输入");
            }
        }
        System.out.println("请您输入您的提款限额");
        double money1 = sc.nextDouble();
        //生成卡号
        String Id = Utils.GetCardId(home);
        //录入集合数据库
        UserStruct card = new UserStruct(name,Id,code3,money1);
        home.add(card);
        //显示信息
        System.out.println("恭喜你开户成功n"+"名称"+card.getName()+"n卡号"+card.getId()+"n限额"+card.getMoney1());
    }

    
    public static void ControlLogin(ArrayList home) {
        if(home.size()==0){
            System.out.println("请注册您的账户");
            return;
        }
        while (true) {
           System.out.println("================================");
           Scanner sc = new Scanner(System.in);
           System.out.println("请您输入卡号");
           String ID = sc.next();
           UserStruct ss =Utils.FindCard(home,ID);
           if (ss!=null){
               while(true) {
                   System.out.println("请您输入密码");
                   String code = sc.next();
                   if (ss.getCode().equals(code)){
                       System.out.println("登陆成功,欢迎您");
                       Power.ADD1(ss,sc,home);
                       return;
                   }else{
                       System.out.println("密码错误请重新输入");
                   }
               }
           }else{
               System.out.println("对不起,不存在这个账户");
           }
       }
    }
}

  2. 工具类单独放一个类,记住把这个类设置私密,以防用这个包面向对象,并且更加专业

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


public class Utils {
     //private私密
       private Utils() {
    }


    
    public static String GetCardId(ArrayList home) {
        //生成功能卡号方法,8位数卡号并遍历集合是否有相同卡号功能
        Random vc = new Random();
        while (true) {
            String number2 = "";
            for (int i = 0; i < 8; i++) {
                number2 += vc.nextInt(10);
            }
            //检测
            UserStruct s =FindCard(home,number2);
            if (s==null){
                return number2;
            }
        }
    }

    
    public static UserStruct FindCard(ArrayList home, String number2) {
        for (int i = 0; i < home.size(); i++) {
            UserStruct ID = home.get(i);
            if (ID.getId().equals(number2)){
                return ID;
            }
        }
        return null ;
    }
}

  

三. 在创一个类,用于用户登录页面  

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


public class Power {
    public static void ADD1(UserStruct ss, Scanner sc, ArrayList home) {
        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.注销账户");
            int number = sc.nextInt();
            switch (number) {
                case 1: GetInfo(ss); break; // 查询
                case 2: AddMoney(ss,sc); break; // 存款
                case 3: GetMoney(ss,sc); break; // 取款
                case 4: TransferMoney(ss,sc,home); break; // 转账
                case 5: ChangePassword(ss,sc); //修改密码
                           return;
                case 6: System.out.println("祝您有美好的一天~"); break; //退出
                case 7: DeleteUser(ss,sc,home); break; // 注销账户
                default: System.out.println("指令错误"); break;
            }
        }
    }

    
    public static void DeleteUser(UserStruct ss,Scanner sc, ArrayList home) {
        System.out.println("注销前请取出所有余额");
        GetMoney(ss, sc);
        UserStruct ID = ss;
        if(ss.getMoney()==0){
            while (true) {
                for (int i = 0; i < home.size(); i++) {
                    UserStruct kk = home.get(i);
                    if (ID.getId().equals(kk.getId())) {
                        home.remove(i);
                        System.out.println("注销成功");
                        return;
                    }
                }
            }
        }else{
            System.out.println("账户金额暂未清零,无法注销,如有疑问请致电110");
        }
    }

    
    public static void ChangePassword(UserStruct ss, Scanner sc) {
        while (true) {
            System.out.println("请您输入您的密码");
            String code = sc.next();
            System.out.println("请确认密码");
            String code2 = sc.next();
            if (code.equals(code2)){
                ss.setCode(code);
                System.out.println("修改成功");
                return;
            }else{
                System.out.println("两次密码有误,请重新输入");
            }
        }
    }

    
    public static void TransferMoney(UserStruct ss, Scanner sc,ArrayList home) {
        while (true) {
            System.out.println("请您输入对方卡号");
            String ID = sc.next();
            //调用对方用户信息
            UserStruct vc = Utils.FindCard(home, ID);
            if (vc != null) {
                System.out.println("请您确认户主名字" + vc.getName());
                System.out.println("确认请输入1,不确认请输入2");
                int c = sc.nextInt();
                if (c==1){
                    while(true) {
                        System.out.println("请您输入转账金额");
                        double money = sc.nextDouble();
                        if (money <= ss.getMoney()) {
                            double money2 = vc.getMoney()+money;
                            vc.setMoney(money2);
                            System.out.println("转账成功");
                            return;
                        } else {
                            System.out.println("您的余额不足");
                        }
                    }
                }
            } else {
                System.out.println("没有这个卡号");
            }
        }
    }

    
    public static void GetMoney(UserStruct ss, Scanner sc) {
        UserStruct kk =ss;
        while(true) {
            System.out.println("您的账户余额为" + kk.getMoney() + "请您输入取款金额");
            double money = sc.nextDouble();
            if (kk.getMoney() >= money) {
                if (money <= kk.getMoney1()) {
                    double a = kk.getMoney();
                    double b = a - money;
                    kk.setMoney(b);
                    System.out.println("取款成功");
                    return;
                } else {
                    System.out.println("超出提款限额,您的提款限额为" + kk.getMoney1());
                }
            } else {
                System.out.println("取款金额大于存款金额");
            }
        }
    }

    
    public static void AddMoney(UserStruct ss,Scanner sc) {
        UserStruct vc = ss;
        System.out.println("请您输入存款金额");
        double money =sc.nextDouble();
        double vc1 = ss.getMoney();
        vc1+=money;
        ss.setMoney(vc1);
        System.out.println("存款成功");
    }

    
    public static void GetInfo(UserStruct ss) {
        UserStruct one =ss;
        System.out.println("户主名字:"+one.getName());
        System.out.println("您的卡号:"+one.getId());
        System.out.println("您的存款:"+one.getMoney());
        System.out.println("您的提款限额:"+one.getMoney1());
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号