海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java教程:面向对象之银行ATM存取款机操作

未分类
2020-08-10 20:28:37
1822677238@qq.com

手机扫码查看

2020java教程:面向对象之银行ATM存取款机操作

面向对象之银行ATM存取款机操作

下面是银行ATM存取款机操作

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



public class demos{
    public static void main(String[] args) {
        Bank bank=new Bank();
        bank.Welcome();
    }
}
class Bank{
    String BankName;
    String BankNo;
    User[] users=new User[999];
    int size=0;
    static Scanner sc=new Scanner(System.in);
    public Bank(){
        users=new User[]{
                new User("62221234",
                        "1","你好银行",
                        "admin",
                        "123456","6413","110","addr",
                        1000,1),
                new User(
                        "622212345",
                        "1","你好银行",
                        "admin8888","123456",
                        "6413","110","addr",
                        1000,1)
        };
    }
    public void Welcome(){
        int n=0;
        do{
            System.out.println("========欢迎来到银行自助ATM机==========");
            System.out.println("1.开户 2.登录 0.退出");
            System.out.println("============================");
            System.out.print("请输入编号:");
            n=sc.nextInt();
            switch (n){
                case 1:
                    Reg();
                    break;
                case 2:
                    Login();
                    break;
                case 0:
                    return;
                default:
                    System.out.println("输入有误,请重新输入");
                    break;
            }
        }while (n<0);
    }
    public void Reg(){
        User user=new User();
        String username,identity,mobile,address,password;
        double balance=0;
        do{
            System.out.print("请输入大于5位数用户名:");
            username=sc.next();
            if(username.length()<5){
                System.out.println("用户名长度不正确,请重新输入");
            }else{
                user.setUsername(username);
            }
        }while(username.length()<5);

        do{
            System.out.print("请输入6位数密码:");
            password=sc.next();
            if(password.length()<5){
                System.out.println("密码长度不正确,请重新输入");
            }else{
                user.setPassword(password);
            }
        }while(password.length()<5);

        do{
            System.out.print("请输入身份证号:");
            identity=sc.next();
            if(identity.length()!=18){
                System.out.println("身份证号长度不正确,请重新输入");
            }else{
                user.setIdentity(identity);
            }
        }while(identity.length()!=18);

        do{
            System.out.print("请输入手机号:");
            mobile=sc.next();
            if(mobile.length()!=11){
                System.out.println("手机号长度不正确,请重新输入");
            }else{
                user.setMobile(mobile);
            }
        }while(mobile.length()!=11);

        do{
            System.out.print("请输入地址:");
            address=sc.next();
            if(address.length()<=10){
                System.out.println("地址长度不正确,请重新输入");
            }else{
                user.setAddress(address);
            }
        }while(address.length()<=10);

        do{
            System.out.print("请输入预存金额:");
            balance=sc.nextDouble();
            if(balance<=0){
                System.out.println("预存金额不正确,请重新输入");
            }else{
                user.setBalance(balance);
            }
        }while(balance<=0);
        String CardNo=CardNo();
        user.setCardNo(CardNo);
        users[size]=user;
        size++;
        System.out.println();
        System.out.println("注册成功,您的卡号为"+CardNo+"正在跳转登录");
        System.out.println();
        Login();
    }
    public void Login(){
        System.out.print("请输入卡号:");
        String CardNo=sc.next();
        System.out.print("请输入密码:");
        String password=sc.next();
        User u=CheckLogin(CardNo,password);
        do{
            if(u!=null){
                System.out.println("登录成功,正在为你跳转到菜单");
                System.out.println();
                menu(u);
            }else{
                System.out.println();
                System.out.println("用户名或密码不正确,请重新输入");
                System.out.print("请输入卡号:");
                CardNo=sc.next();
                System.out.print("请输入密码:");
                password=sc.next();
                u=CheckLogin(CardNo,password);
                if(u!=null){
                    System.out.println("登录成功,正在为你跳转到菜单");
                    System.out.println();
                    menu(u);
                }
                System.out.println();
            }
        }while (u==null);
    }
    public User CheckLogin(String CardNo,String password){
        for(int i=0;i<users.length;i++){
            if(CardNo.equals(users[i].getCardNo())&&password.equals(users[i].getPassword())){
                return users[i];
            }
        }
        return null;
    }
    public String CardNo(){
        String str="6222";
        Random random=new Random();
        int s=random.nextInt(999999);
        return str+s;
    }
    public void menu(User u){
        int n=0,c=0;
        while (n>=0){
            System.out.println("========欢迎来到银行自助ATM机==========");
            System.out.println("1.存款 2.取款 3.转账 4.查看个人信息 5.修改信息 6.查询余额 0.退出");
            System.out.println("============================");
            System.out.print("请输入编号:");
            n=sc.nextInt();
            switch (n){
                case 1:
                    ck(u);
                    break;
                case 2:
                    qk(u);
                    break;
                case 3:
                    zz(u);
                    break;
                case 4:
                    info(u);
                    break;
                case 5:
                    update(u);
                    break;
                case 6:
                    select(u);
                    break;
                case 0:
                    System.out.println("已为你退出,欢迎下次使用");
                    return;
                default:
                    c++;
                    System.out.println("输入有误,请重新输入,您已错误"+c+"次");
                    break;
            }
            if(c==3){
                System.out.println("操作错误次数达到3次,卡被吞了,请于工作人员联系");
                return;
            }
        }
    }
    public void ck(User u){
        double balance;
        do{
            System.out.println("您当前余额为"+u.getBalance()+"元");
            System.out.print("请输入存款金额");
            balance=sc.nextDouble();
            if(balance<=0){
                System.out.println("您的输入不正确,请重新输入");
                System.out.println();
            }else{
                u.setBalance(balance+u.getBalance());
                System.out.println("您当前余额为"+u.getBalance()+"元");
                System.out.println();
            }
        }while (balance<=0);
    }
    public void qk(User u){
        double balance;
        do{
            System.out.println("您当前余额为"+u.getBalance()+"元");
            System.out.print("请输入取款金额");
            balance=sc.nextDouble();
            if(balance>u.getBalance()){
                System.out.println("可用余额不足,请重新输入");
                System.out.println();
            }else if(balance<=0){
                System.out.println("您的输入不正确,请重新输入");
                System.out.println();
            }else{
                u.setBalance(u.getBalance()-balance);
                System.out.println("您当前余额为"+u.getBalance()+"元");
                System.out.println();
            }
        }while (balance<=0||balance>u.getBalance());
    }
    public void zz(User u){
        System.out.println("请输入对方姓名");
        String username=sc.next();
        User f=friend(username);
        if(f!=null){
            System.out.println("对方卡号为"+f.getCardNo());
            System.out.println("对方姓名为"+f.getUsername());
            System.out.println("请输入转账金额");
            double m=sc.nextDouble();
            if(m>u.getBalance()){
                System.out.println("转账失败,可用余额不足,请重新输入");
            }else{
                f.setBalance(u.getBalance()+m);
                u.setBalance(u.getBalance()-m);
                System.out.println("对方余额为"+f.getBalance());
                System.out.println("您的余额为"+u.getBalance());
            }
        }else{
            System.out.println("输入有误,请重新输入");
            System.out.println();
        }
    }
    public void info(User u){
        System.out.println("您正在查看个人资料");
        System.out.println();
        System.out.println("卡号为"+u.getCardNo());
        System.out.println("开户行编号"+u.getBankNo());
        System.out.println("开户行名称"+u.getBankName());
        System.out.println("身份证号"+u.getIdentity());
        System.out.println("手机号为"+u.getMobile());
        System.out.println("地址为"+u.getAddress());
        System.out.println("余额为"+u.getBalance());
        System.out.println();
    }
    public void update(User user){
        System.out.println("您正在修改个人资料");
        String username,identity,mobile,address,password;
        double balance=0;
        do{
            System.out.print("请输入大于5位数用户名:");
            username=sc.next();
            if(username.length()<5){
                System.out.println("用户名长度不正确,请重新输入");
            }else{
                user.setUsername(username);
            }
        }while(username.length()<5);

        do{
            System.out.print("请输入6位数密码:");
            password=sc.next();
            if(password.length()<5){
                System.out.println("密码长度不正确,请重新输入");
            }else{
                user.setPassword(password);
            }
        }while(password.length()<5);

        do{
            System.out.print("请输入身份证号:");
            identity=sc.next();
            if(identity.length()!=18){
                System.out.println("身份证号长度不正确,请重新输入");
            }else{
                user.setIdentity(identity);
            }
        }while(identity.length()!=18);

        do{
            System.out.print("请输入手机号:");
            mobile=sc.next();
            if(mobile.length()!=11){
                System.out.println("手机号长度不正确,请重新输入");
            }else{
                user.setMobile(mobile);
            }
        }while(mobile.length()!=11);

        do{
            System.out.print("请输入地址:");
            address=sc.next();
            if(address.length()<=10){
                System.out.println("地址长度不正确,请重新输入");
            }else{
                user.setAddress(address);
            }
        }while(address.length()<=10);

        do{
            System.out.print("请输入预存金额:");
            balance=sc.nextDouble();
            if(balance<=0){
                System.out.println("预存金额不正确,请重新输入");
            }else{
                user.setBalance(balance);
            }
        }while(balance<=0);
    }
    public void select(User u){
        System.out.println();
        System.out.println("您当前余额为:"+u.getBalance());
        System.out.println();
    }
    public User friend(String username){
        for(int i=0;i<users.length;i++){
            if(username.equals(users[i].getUsername())){
                return users[i];
            }
        }
        return null;
    }
}
class User{
    private String CardNo;
    private String BankNo;
    private String BankName;
    private String username;
    private String password;
    private String identity;
    private String mobile;
    private String address;
    private double balance;
    private int access;
    public User() {
    }
    public User(String cardNo, String bankNo, String bankName, String username, String password, String identity, String mobile, String address, double balance, int access) {
        CardNo = cardNo;
        BankNo = bankNo;
        BankName = bankName;
        this.username = username;
        this.password = password;
        this.identity = identity;
        this.mobile = mobile;
        this.address = address;
        this.balance = balance;
        this.access = access;
    }

    public String getCardNo() {
        return CardNo;
    }

    public void setCardNo(String cardNo) {
        CardNo = cardNo;
    }

    public String getBankNo() {
        return BankNo;
    }

    public void setBankNo(String bankNo) {
        BankNo = bankNo;
    }

    public String getBankName() {
        return BankName;
    }

    public void setBankName(String bankName) {
        BankName = bankName;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getIdentity() {
        return identity;
    }

    public void setIdentity(String identity) {
        this.identity = identity;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

    public int getAccess() {
        return access;
    }

    public void setAccess(int access) {
        this.access = access;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注