前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【项目实战】萌新银行账户管理系统

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

作者头像
sidiot
发布2023-08-31 13:24:24
1840
发布2023-08-31 13:24:24
举报
文章被收录于专栏:技术大杂烩

前言

由于是 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;
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 题目
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档