【项目实战】萌新银行账户管理系统

2023-08-31 13:24:24 浏览数 (1)

前言

由于是 Java 萌新,所以本题只要完成上述操作即可,不必过于完善,下面提供的代码在完成上述题目要求的基础上,实现了可注册多个账户而不造成数据混乱,注册时密码不少于六位,有需求者可自行添加,如需数字字母混合之类的,登录时验证用户名是否存在和密码是否匹配,不过没有设计注册时用户名是否有重复,可自行添加。

本题使用 HashMap函 数较为简单。

如有错误或写的麻烦了,请评论区交流讨论,谢谢。

题目

设计一个银行账户管理系统

欢迎使用银行账户管理系统

  1. 登录
  2. 注册
  3. 退出

请输入要执行的操作


当前用户:xxx

  1. 查询账户余额
  2. 转入
  3. 支出
  4. 查询交易记录
  5. 退出

请输入要执行的操作

代码

BankUser.java

代码语言:javascript复制
import java.util.ArrayList;
import java.util.Scanner;

public class BankUser {
    ArrayList<Double> record = new ArrayList<Double>();
    Scanner in = new Scanner(System.in);

    private String userName;            //用户名
    private String password;            //密码
    double sum = 0.0;                   //银行账户总额
    double input;                       //转入金额
    double output;                      //支出金额

    public BankUser(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    public void userResearch(String number){                //用于实现银行的基本业务,即登录后的相关操作
        if(number.equals("1")){                             //查询账户余额
            System.out.println("账户余额为" sum);
        }
        else if(number.equals("2")){                         //转入金额
            System.out.print("请输入转入多少金额:");
            input = in.nextDouble();
            sum  = input;
            record.add(input);
            System.out.println("交易完成!");
        }
        else if(number.equals("3")){                         //支出金额
            System.out.println("请输入支出多少金额:");
            output = in.nextDouble();
            sum -= output;
            record.add(-output);
            System.out.println("交易完成!");
        }
        else if(number.equals("4")){                          //交易明细
            for(int j=1;j<=record.size();j  ){
                if(record.get(j-1)>=0.0)
                    System.out.println(j ".  " record.get(j-1));
                else
                    System.out.println(j ". " record.get(j-1));
            }

        }
        else{                                                 //返回上个界面
            number="5";
        }
    }

    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;
    }
}

Register.java

代码语言:javascript复制
import java.util.ArrayList;
import java.util.Scanner;

public class Register {
    ArrayList<BankUser> useRegister = new ArrayList<BankUser>();
    Scanner in = new Scanner(System.in);

    String name;        //用户名
    String word;        //密码

    public void addUser(BankUser user){             //将注册的信息添加进数组
        useRegister.add(user);
    }

    public void registerUser(){                     //注册
        System.out.print("请输入用户名:");
        name = in.nextLine();
        System.out.print("请输入密码:");
        word=in.nextLine();

        while(true){                                //密码不少于6位
            if(word.length()<6){
                System.out.println("密码长度不能小于6位,请重新输入:");
                word=in.nextLine();
            }
            else
                break;
        }

        BankUser customer = new BankUser(name,word);
        addUser(customer);
        System.out.println("注册成功!");
    }
}

Land.java

代码语言:javascript复制
import java.util.Scanner;

public class Land {
    Scanner in = new Scanner(System.in);

    String name;                //用户名
    String word;                //密码
    String number;              //操作选项
    Register register;

    public Land (Register register){
        this.register=register;
    }

    public void userLand(){                 //登录
        System.out.print("用户名:");
        name = in.nextLine();
        System.out.print("密码:");
        word = in.nextLine();

        while (true){
            int i = 0;          //用于标记是否登录成功,方便退出循环
            int k = 0;
            for(BankUser user:register.useRegister){
                if(user.getUserName().equals(name)){
                    while (true){
                        int n = 0;
                        if(user.getPassword().equals(word)){
                            System.out.println("登录成功!");
                            i = 1;
                            n = 1;

                            /*--------------登录之后的界面--------------*/
                            System.out.println("当前用户:" name);
                            System.out.println("1.查询账户余额");
                            System.out.println("2.转入");
                            System.out.println("3.支出");
                            System.out.println("4.查询交易记录");
                            System.out.println("5.退出");
                            System.out.println("请输入要执行的操作:");
                            /*----------------------------------------*/

                            while(true){                       //实现银行职能重复进行
                                number = in.nextLine();
                                user.userResearch(number);
                                if(number.equals("5")){
                                    k = 0;
                                    break;
                                }
                            }

                        }
                        else{
                            System.out.print("密码错误,请重新输入:");
                            word = in.nextLine();
                        }
                        if(n==1)break;
                    }
                }
                if(i==1)break;
                k  ;
            }

            if(k==register.useRegister.size()){                 //遍历数组,若没相同用户名即不存在
                System.out.println("用户名不存在,请重新输入!");
                System.out.print("用户名:");
                name = in.nextLine();
                System.out.print("密码:");
                word = in.nextLine();
            }

            if(i==1)break;
        }
    }
}

Test.java

代码语言:javascript复制
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Register register = new Register();
        Land land = new Land(register);
        Scanner in = new Scanner(System.in);

        String number;

        while(true){
            
          /*------------------初始界面------------------*/  
            System.out.println("欢迎使用银行账户管理系统");
            System.out.println("1.登录");
            System.out.println("2.注册");
            System.out.println("3.退出");
            System.out.print("请输入要执行的操作:");
            number = in.nextLine();
          /*--------------------------------------------*/

            if(number.equals("2")){                 //注册
                register.registerUser();
            }
            else if(number.equals("1")){            //登录
                land.userLand();
            }
            else if(number.equals("3"))             //退出
                break;
        }
    }
}

0 人点赞