ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简单的银行小案例

2020-11-28 19:32:44  阅读:218  来源: 互联网

标签:String 银行 System 案例 User 简单 println public out


银行案例

  • 实现银行功能

    • 用户输入正确卡号和密码可执行一下操作
    • 菜单如下:1.存款 2.取款 3.转账 4.查询余额 5.修改密码 0.退出
  • 分析:

    • User类(cardNo、identity、username、password、phone、balance)
    • Bank类主要包括以下功能
      • 初始化用户(initial)
      • 用户登录(login)
      • 显示菜单
      • 存款(save)、取款(withDraw)、转账(trans)、查询余额(query)、修改密码(modifyPassword)
        该案例未实现保存数据的功能,再次运行仍为初始数据
package com.lemon.bank;
/**
 *用户类
 * @author gyq
 */

public class User {
    //卡号
    private String cardNo;
    //身份证号
    private String identity;
    //用户名
    private String username;
    //密码
    private String password;
    //电话
    private String phone;
    //余额
    private double balance;

    //默认构造方法
    public User() {
    }
    //带参构造方法


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

    public String getCardNo() {
        return cardNo;
    }

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

    public String getIdentity() {
        return identity;
    }

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

    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 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 com.lemon.bank;

import sun.security.util.Password;

import java.util.Scanner;

/**
 * 银行类
 * @author gyq
 */
public class Bank {
    //保存用户的数组
    private User[] users = new User[5];
    //保存个数
    private int size;
    //初始化方法
    public void initial(){
        //创建用户1
        User user1=new User();
        user1.setCardNo("1234567890");
        user1.setIdentity("411123456");
        user1.setUsername("xiaoming");
        user1.setPassword("123456");
        user1.setPhone("110");
        user1.setBalance (100000);
        //创建用户2
        User user2=new User("1234567891","411123451","xiaoli","123123","111",12000);
        //放入数组
        users[0]=user1;
        users[1]=user2;
        size=2;
        //System.out.println ("用户初始化完成!");
    }
    public Bank(){
        initial ();
    }
    //2用户登录
    public void login(){
        Scanner input = new Scanner (System.in);
        System.out.println ("请输入卡号:");
        String cardNo=input.next ();
        System.out.println ("请输入密码:");
        String password=input.next ();
        //遍历数组
        User u=null;
        for (int i = 0; i < size; i++) {
            if(users[i].getCardNo ().equals (cardNo)&&users[i].getPassword ().equals (password)){
                u=users[i];
                break;
            }
        }
        if (u!=null){
            //登陆成功!
            System.out.println ("登录成功!");
            //显示菜单
            showMenu(u);
        }else{
            System.out.println ("卡号或密码错误~!");
        }
    }
    //显示菜单
    public void showMenu(User u){
        Scanner input = new Scanner (System.in);
        System.out.println ("==============欢迎进入xxx银行系统=====当前用户:"+u.getCardNo ()+"=================");

        do{
            System.out.println ("1.存款   2.取款    3.转账    4.查询余额  5.修改密码  0.退出");

            int choice=input.nextInt ();
            switch (choice){
                case 1://存钱
                    this.save (u);
                    break;
                case 2://取款
                    this.withDraw (u);
                    break;
                case 3://转账
                    this.trans (u);
                    break;
                case 4://查询余额
                    this.query (u);
                    break;
                case 5://修改密码
                    this.modifyPassword (u);
                    break;
                case 0://退出

                    return;
                default:
                    break;
            }
        }while (true);

    }
    //存钱
    public void save(User u){
        Scanner input = new Scanner (System.in);
        System.out.println ("请输入存款金额");
        double m = input.nextDouble ();
        if (m>0){
            u.setBalance (u.getBalance ()+m);
            System.out.println ("存钱成功:余额:"+u.getBalance ());
        }else{
            System.out.println ("存钱失败,请重新输入!");
        }

    }
    //5.取钱
    public void withDraw(User u){
        Scanner input = new Scanner (System.in);
        System.out.println ("请输入取款金额");
        double m = input.nextDouble ();
        if (m>0){
            if (u.getBalance ()>=m) {
                u.setBalance (u.getBalance () - m);
                System.out.println ("取钱成功:余额:" + u.getBalance ());
            }else {
                System.out.println ("余额不足!");
            }
        }else{
            System.out.println ("取钱失败,请重新输入!");
        }

    }
    //6.转账
    public void trans(User u){
        Scanner input = new Scanner (System.in);
        System.out.println ("请输入对方卡号:");
        String cardNo = input.next ();
        System.out.println ("请输入转账金额:");
        double m=input.nextDouble ();
        //判断对方卡号是否存在
        User toUser=null;
        for (int i=0;i<size;i++){
            if (users[i].getCardNo ().equals (cardNo)){
                toUser=users[i];
                break;
            }
        }
        if (toUser!=null){//存在对方卡号
            if(u.getBalance ()>=m){
                //转账
                //扣钱
                u.setBalance (u.getBalance ()-m);
                //加钱
                toUser.setBalance (toUser.getBalance ()+m);
                System.out.println ("转账成功!当前您的余额为"+u.getBalance ());
            }else{
                System.out.println ("转账失败!余额不足!");
            }

        }else{
            System.out.println ("对方卡号不存在,请重新输入");
        }
    }
    //7查询余额
    public void query(User u){
        System.out.println ("卡号:"+u.getCardNo ()+"用户名:"+u.getUsername ()+"余额:"+u.getBalance ());
    }
    //8修改密码
    public void modifyPassword(User u){
        Scanner input = new Scanner (System.in);
        System.out.println ("请输入新密码(密码长度6位):");
        String newpassword=input.next ();
        if (newpassword.length ()==6){
            u.setPassword (newpassword);
            System.out.println ("修改成功!");
        }else {
            System.out.println ("输入密码不符合要求!");
        }
    }
}
package com.lemon.bank;

public class TestBank {
    public static void main(String[] args) {
        Bank bank = new Bank ();
        //bank.initial ();
        bank.login ();
    }
}

标签:String,银行,System,案例,User,简单,println,public,out
来源: https://www.cnblogs.com/lemonlover/p/14053677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有