Java各个银行存取款

创建Bank类,三个成员变量
double money;        //银行卡余额
String userName;      //银行卡账号
String password;      //银行卡密码

  定义如下方法,方法中不需填写任何代码
public boolean saveMoney(double money){},用于执行存款功能,只需设立返回值为false即可
public boolean getMoney(double money){},用于执行取款功能,只需设立返回值为false即可

  定义如下方法,按照需求编写代码
public boolean createAccount(String userName, String password, String confirmPassword){},用于开户操作,只有当两次密码一致时才可给账号密码赋值并返回true,否则返回false
public boolean updatePassword(String userName, String password, String newPassword){},用于修改密码,当原账号密码信息正确时,将密码修改为newPassword,并返回true,否则返回false
public boolean login(String userName, String password){},用于登陆操作,当形参账号密码和成员变量账号密码一致时,方法返回true,否则返回false
public void showMoney(){},用于显示余额,将银行卡余额直接输出


  创建CCBBank继承Bank类(建设银行),重写saveMoney和getMoney方法,并按照要求编写代码
saveMoney方法中只有当形参在0 ~ 50000之间时才可完成存款操作并返回true,否则方法返回false

getMoney方法中只有当形参小于实际银行卡余额时才可完成取钱功能,并且取钱时会额外扣取1%的手续费,并返回true,否则返回false(注意取钱后,需要考虑剩下的余额是否足够支付手续费)


  创建ICBCBank继承Bank类(工商银行),重写saveMoney和getMoney方法,并按照要求编写代码
saveMoney方法中只有当形参在0 ~ 100000之间时才可完成存款操作并返回true,否则方法返回false

getMoney方法中只有当形参小于实际银行卡余额时才可完成取钱功能,并且取钱时会额外扣取0.5%的手续费,并返回true,否则返回false(注意取钱后,需要考虑剩下的余额是否足够支付手续费)


  创建ChinaBank继承Bank类(中国银行),重写saveMoney和getMoney方法,并按照要求编写代码
saveMoney方法中只有当形参在0 ~ 200000之间时才可完成存款操作并返回true,否则方法返回false

getMoney方法中只有当形参小于实际银行卡余额时才可完成取钱功能,并且取钱时会额外扣取0.8%的手续费,并返回true,否则返回false(注意取钱后,需要考虑剩下的余额是否足够支付手续费)


  创建TestBank类,定义main方法,设置循环,并根据要求,创建子类对象,调用相关方法完成如下要求,例如:

"请选择对应的银行:1. 建设银行   2. 工商银行   3. 中国银行"
"4"
"输入错误,请重试"
"请选择对应的银行:1. 建设银行   2. 工商银行   3. 中国银行"
"1"

"欢迎进入建设银行,请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统"
"1"
"请输入开户账号:"
"123456789"
"请输入开户密码:"
"123456"
"请再次输入开户密码:"
"1234"
"开户失败,请重新选择相关业务"

"欢迎进入建设银行,请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统"
"1"
"请输入开户账号:"
"123456789"
"请输入开户密码:"
"123456"
"请再次输入开户密码:"
"123456"
"开户成功"

"欢迎进入建设银行,请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统"
"2"
"请输入账号:"
"123456789"
"请输入原密码:"
"123"
"请输入修改后的密码:"
"1111"
"修改失败,请重新选择相关业务"

"欢迎进入建设银行,请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统"
"2"
"请输入账号:"
"123456789"
"请输入原密码:"
"123456"
"请输入修改后的密码:"
"111111"
"修改成功"

"欢迎进入建设银行,请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统"
"3"
"请输入账号:"
"123456789"
"请输入密码:"
"111111"
"登陆成功"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"1"
"请输入存钱数额:"
"9999999"
"数额有误,请重新选择"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"1"
"请输入存钱数额:"
"30000"
"存款成功"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"2"
"请输入取钱数额:"
"100000"
"取钱失败,银行卡余额不足"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"2"
"请输入取钱数额:"
"100000"
"取钱失败,银行卡余额不足"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"2"
"请输入取钱数额:"
"20000"
"取钱成功,扣除手续费200元"   (因为刚才选了建设银行,所以收取1%手续费)

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"3"
"您当前账户余额为:9800元"

"欢迎进入存取款业务,请选择:1. 存钱   2. 取钱   3. 显示余额   4. 退出系统"
"4"
"退出成功,感谢您的使用"

方法:

package day0118;

import java.util.Scanner;

public class Bank {
    double money;       //银行卡余额
    String userName;    //银行卡账号
    String password;       //银行卡密码


    //执行存款功能
    public boolean saveMoney(double money) {
        return false;
    }

    //执行取款功能
    public boolean getMoney(double money) {
        return false;
    }

    //开户操作,只有当两次密码一致时才可给账号密码赋值并返回true,否则返回false
    public boolean createAccount(String userName, String password, String confirmPassword) {
        if (password.equals(confirmPassword)) {
            return true;
        } else {
            return false;
        }
    }

    //修改密码,当原账号密码信息正确时,将密码修改为newPassword,并返回true,否则返回false
    public boolean updatePassword(String userName, String password, String newPassword) {
        if (this.userName.equals(userName) && this.password.equals(password)) {
            this.password = password;
            return true;
        } else {
            return false;
        }
    }

    //登陆操作,当形参账号密码和成员变量账号密码一致时,方法返回true,否则返回false
    public boolean login(String userName, String password) {
        if (this.userName.equals(userName) && this.password.equals(password)) {
            return true;
        } else {
            return false;
        }
    }

    //显示余额,将银行卡余额直接输出
    public void showMoney() {
        System.out.println(money);
    }
}

class CCBBank extends Bank {
    public boolean saveMoney(double money) {
        if (money > 0 && money <= 50000) {
            this.money += money;
            return true;
        } else {
            return false;
        }
    }

    public boolean getMoney(double money) {
        if (this.money < money + money * 0.01) {
            return false;
        } else {
            this.money -= money;
            return true;
        }
    }
}

class ICBCBank extends Bank {
    public boolean saveMoney(double money) {
        if (money > 0 && money <= 100000) {
            this.money += money;
            return true;
        } else {
            return false;
        }
    }

    public boolean getMoney(double money) {
        if (this.money < money + money * 0.005) {
            return false;
        } else {
            this.money -= money;
            return true;
        }
    }
}

class ChinaBank extends Bank {
    public boolean saveMoney(double money) {
        if (money > 0 && money <= 200000) {
            this.money += money;
            return true;
        } else {
            return false;
        }
    }

    public boolean getMoney(double money) {
        if (this.money < money + money * 0.008) {
            return false;
        } else {
            this.money -= money;
            return true;
        }
    }
}




主函数部分:

package day0118;

import java.util.Scanner;

public class TestBank {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请选择对应的银行:1. 建设银行   2. 工商银行   3. 中国银行");
            String str1 = "";
            switch (sc.nextInt()) {
                case 1:
                    CCBBank ccbBank = new CCBBank();
                    str1 = "建设银行";
                    Sys(str1, ccbBank);

                    return;
                case 2:
                    ICBCBank icbcBank = new ICBCBank();
                    str1 = "工商银行";
                    Sys(str1, icbcBank);

                    return;
                case 3:
                    ChinaBank chinaBank = new ChinaBank();
                    str1 = "中国银行";
                    Sys(str1, chinaBank);
                    return;
                default:
                    System.out.println("输入错误,请重新输入");
            }
        }
    }

    public static void Sys(String bankName, Bank bank) {
        while (true) {
            System.out.println("欢迎进入" + bankName + ",请选择相关业务:1. 开户   2. 修改密码   3. 登陆   4. 退出系统");
            Scanner sc = new Scanner(System.in);
            switch (sc.nextInt()) {
                //开户
                case 1:
                    Bank bank1 = new Bank();
                    bank1.userName = bank.userName;
                    bank1.password = bank.password;
                    System.out.println("请输入开户账号");
                    bank.userName = sc.next();
                    System.out.println("请输入开户密码");
                    bank.password = sc.next();
                    System.out.println("请再次输入开户密码:");
                    String paw = sc.next();
                    if (paw.equals(bank.password)) {
                        System.out.println("开户成功,请选择相关业务");
                    } else {
                        bank = bank1;
                        System.out.println("开户失败,请重新选择相关业务");
                    }
                    break;
                case 2:
                    System.out.println("请输入账号:");
                    String use = sc.next();
                    if (!use.equals(bank.userName)) {
                        System.out.println("该用户不存在");
                    }
                    System.out.println("请输入原密码:");
                    String pwd = sc.next();
                    if (!pwd.equals(bank.password)) {
                        System.out.println("密码错误,请重新输入密码");
                        String pwd2 = sc.next();
                        bank.password = pwd2;
                    }
                case 3:
                    System.out.println("请输入账号:");
                    String use2 = sc.next();
                    if (!use2.equals(bank.userName)) {
                        System.out.println("该用户不存在");
                    }
                    System.out.println("请输入密码:");
                    String pwd3 = sc.next();
                    if (!pwd3.equals(bank.password)) {
                        System.out.println("密码错误");
                        break;
                    } else {
                        System.out.println("登录成功");
                        denglu(bank);
                    }
                    break;
                case 4:
                    System.out.println("退出成功,感谢您的使用");
                    return;
            }
        }
    }

    public static void denglu(Bank bank) {
        while (true) {
            System.out.println("欢迎进入请选择相关业务:1. 存钱 2. 取钱  3.显示余额 4. 退出系统");
            Scanner scanner = new Scanner(System.in);
            switch (scanner.nextInt()) {
                case 1:
                    System.out.println("请输入存钱数额:");
                    double money = scanner.nextDouble();
                    bank.money += money;
                    System.out.println("存钱成功");
                    break;
                case 2:
                    System.out.println("请输入取钱数额:");
                    double money2 = scanner.nextDouble();
                    if (money2 > bank.money) {
                        System.out.println("输入有误,银行卡余额不足");
                    }
                    bank.money -= money2;
                    System.out.println("取钱成功");
                    break;
                case 3:
                    System.out.println("您当前账户余额为:" + bank.money);
                case 4:
                    System.out.println("退出成功,感谢您的使用");
                    return;
            }
        }
    }

}

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

以&七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值