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