java-用户账号密码验证扩展功能(3)

package day12.bark;

public class TestBank {
       public static void main(String[] args) {
          //  0.完成过开户的操作(卡号,密码,姓名,身份证号,电话号,余额)
          //  1.输入卡号输入密码
          //  2.卡密的效验,成功展示菜单,失败重新输入
          //  3.显示showMenu的菜单,完成业务编号的选择
          //  4.完成具体的业务操作, 
           
           
           //程序的开始
           Bank bank = new Bank();
          
           bank.inintial();
           bank.welcomeMenu();
          // bank.login();
           
          // User user =null;
          // System.out.println(user.getBalance());
           
           
          //bank.showMenu();
           
            
    }
}
 

 

package day12.bark;

public class User {
    // 卡号、密码、姓名、身份证号、电话号、余额
    private String cardNo; // 卡号
    private String password; // 密码
    private String username; // 姓名
    private String identityCard; // 身份证号
    private String phone; // 电话
    private double balance; // 余额
    public User() {
        
    }

    public User(String cardNo, String password, String username, String identityCard, String phone, double balance) {
        super();
        this.cardNo = cardNo;
        this.password = password;
        this.username = username;
        this.identityCard = identityCard;
        this.phone = phone;
        this.balance = balance;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getPassword() {
        return password;
    }

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

    public String getUsername() {
        return username;
    }

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

    public String getIdentityCard() {
        return identityCard;
    }

    public void setIdentityCard(String identityCard) {
        this.identityCard = identityCard;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public double getBalance() {
        return balance;
    }

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

 

package day12.bark;

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


public class Bank {
            Scanner input = new Scanner(System.in);
            User[] users = new User[5];
            int size = 4;
            public void inintial() {
                          
                User user = new User();
                user.setCardNo("6222020200001234567");
                user.setPassword("123456");
                user.setUsername("tom123");
                user.setIdentityCard("1085099913");
                user.setPhone("2733728"); 
                user.setBalance(300.99);
                
                
                
                
                users[0] = user;
                
                User user2 = new User("6222020200001234543", "123456","marry","1085099913","2733828",300.99);
                users[1] = user2;
                
                users[2] = new User("6222020200001234567","235753","annie","1085099913666","2733828777",500.99);
                
                users[3] = new User("6222020200003548692","659896","atome","1085099913888","2733828999",700.99);
            }
            public void welcomeMenu() {
                System.out.println("------------------------------欢迎使用银行系统-------------------------------");
                System.out.println("1开户 2登录");
                int choice = input.nextInt();
                switch (choice) {
                case 1:
                    this.showAll();
                    this.register();                    
                    this.showAll();
                    break;
                case 2:
                    this.login();
                    break;
                default:
                    break;
                }
            }
            
            public void login() {
                
                System.out.println("请输入卡号");
                String no = input.next();
                
                 System.out.println("请输入密码");
                String pwd = input.next();
                
                User myAccount = this.check(no, pwd);
                if(myAccount != null) {
                    this.showMenu(myAccount);
                }else {
                    System.out.println("账号密码错误");
                } 
                
                this.check(no,pwd);
                //this.showMenu();
                }
            //验证用户名密码是否正确
            public User check(String no,String pwd) {
                 
                for (int i = 0; i < users.length; i++) {
                    if(users[i] != null) { 
                       if(no.equals(users[i].getCardNo()) && pwd.equals(users[i].getPassword())) {
                            //System.out.println("登录成功" + users[i].getUsername());
                             return users[i];   //查找到跟自己账号匹配的用户
                       }
                    }
                        
                    }
                return null;
            }
            
            //注册账户
            public void register() {
                Random random = new Random(); 
                
                System.out.println("请输入密码");
                String pwd = input.next();
                
                System.out.println("请输入姓名");
                String name = input.next();
                
                System.out.println("请输入身份证号码");
                String id = input.next();
                
                System.out.println("请输入电话");
                String phone = input.next();
                
                //卡号生成
                //固定前缀
                String prefix = "622202020000";
                
                int suffix = (int)Math.random() *1000000 + 100000;
                
                String no = prefix + suffix;   //拼接生成的卡号
                
                User  user = new User();
                user.setCardNo(no);
                user.setPassword(pwd);
                user.setUsername(name);
                user.setPhone(phone);
                user.setIdentityCard(id);
                
                users[size] = user;
                size++;
            }
            
            //取款功能
            public void withdrawal(User myAccount) {
                System.out.println("取款功能操作中");
                
                System.out.println("请输入取款金额");
                double  money = input.nextDouble();
                
                if(money> 0 && money < myAccount.getBalance()) {
                 double surrentBalance = myAccount.getBalance() - money;
                 myAccount.setBalance(surrentBalance);
                 System.out.println("取款成功,当前余额为" +myAccount.getBalance());
                }else {
                    System.out.println("余额不足");
                }
            }
            //转账功能
            public void transfer(User myAccount) {
                //1判断对方 卡号和姓名
                //2输入转账的金额menoy
                //3判断自己的余额
                //4自己账户的余额-menoy
                //5对方账户的余额+menoy
                
            }
            
        public void showMenu(User myAccount) {
            int choice;
            outer:while(true) {
            System.out.println(" 2.存款 3.取款 4.转账 5.余额查询 6.修改密码 7.修改预留手机号 8.注销账号 0.提出");
            System.out.println("-----------------------------------------------------------------------------");
            choice = input.nextInt();
            switch (choice) {
            
            case 2:
                System.out.println("存款");
                break;
            case 3:
                //System.out.println("取款");
                this.withdrawal(myAccount);
                break;
            case 4:
                this.transfer(myAccount);
                //System.out.println("转账");
                break;
            case 5:
                System.out.println("余额查询");
                break;
            case 6:
                System.out.println("修改密码");
                break;
            case 7:
                System.out.println("修改预留手机号");
                break;
            case 8:
                System.out.println("注销账号");
                break;    
            case 0:
                System.out.println("退出");
                break outer;
                    
            default:
                System.out.println("无此选项");
                break;
            }
            }
            
            
        }
        //遍历所有用户
        public void showAll() {
            for (int i = 0; i < size; i++) {
                System.out.println(users[i].getCardNo() + "\t" + users[i].getUsername() + "\t" + users[i].getBalance());
            }
        }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值