java实现简单银行管理系统
本文实例为大家分享了java银行管理系统的具体代码,供大家参考,具体内容如下
账户类
package Account;
public abstract class Account {
private int id;//账号
private String password;//密码
private String name;//姓名
private String personId;//身份证号码
private String email;//邮箱
private double ceiling;//贷款属性
private static double balance;//账户余额
public Account() {}
public Account(int id, String password, String name, String personId,
String email, double balance,double ceiling) {
super();
this.id = id;
this.password = password;
this.name = name;
this.personId = personId;
this.email = email;
this.balance = balance;
this.ceiling = ceiling;
}
public Account(int id, String password, String name, String personId,
String email) {
super();
this.id = id;
this.password = password;
this.name = name;
this.personId = personId;
this.email = email;
}
public Account(int id, String password) {
this.id =id;
this.password = password;
}
//开户函数
public Account openAccount() {
return null;
}
//显示开户成功的信息函数
public void show() {
System.out.println("账户ID为 : " + id + "密码为: " + password + "姓名为: " + name + "身份证号码为: " + personId + "邮箱为: " + email);
}
//登入函数
public void enter() {
}
//取款方法 为抽象方法
public abstract void deposit(double money);
//存款方法
public static void withdraw(double money) {
balance = balance + money;
System.out.println("您已经存入" + money + "元,账户余额为" + balance );
}
// public abstract void requestLoan(double money);
public double getCeiling() {
return ceiling;
}
public void setCeiling(double ceiling) {
this.ceiling = ceiling;
}
public int getId() {
return id;
}
public void setId( int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
Bank类
package Account;
import java.util.Scanner;
public class Bank {
int i;// 账户编号
private Account[] account = new Account[100];// 账户对象数组
private int accountNum = 0;// 账户数量
private int type;// 账户类型
private String password1;// 确认密码
int id = 100000;//第一个开户账号
int j = 1;//常量控制开户账号每次+1
Scanner sc = new Scanner(System.in);
int insert;
public Bank() {
}
// 主界面
public void mainView() {
System.out.println("******欢迎登入银行管理系统********");
System.out.println("******请选择业务***************");
System.out.println("******1、创建账户**************");
System.out.println("******2、登入账户**************");
}
//功能选择函数
public void select() {
int select = sc.nextInt();
switch(select) {
case 1 : this.openAccount();
break;
case 2 : this.enter();
break;
}
}
// 开户函数
public Account openAccount() {
System.out.println("请输入您的姓名");
String name = sc.next();
// System.out.println("请输入您的卡号");
// int id = sc.nextInt();
System.out.println("请输入您的密码");
String password = sc.next();
System.out.println("请再次确认您的密码");
String password1 = sc.next();
while (!password1.equals(password)) {
System.out.println("对不起,两次输入的密码不一致,请重新输入");
System.out.println("请重新输入您的密码");
password = sc.next();
System.out.println("请再次确认您的密码");
password1 = sc.next();
}
System.out.println("请输入您的身份证号码");
String personId = sc.next();
System.out.println("请输入您的邮箱");
String email = sc.next();
System.out.println("请输入您的账户类型");
System.out.println("1、存储卡 2、信用卡");
type = sc.nextInt();
switch (type) {
case 1:
account[accountNum] = new LoanSavingAccount(100000 + j, password, name,
personId, email, 0, 0); // 创建存储卡账户对象,初始余额为0,默认贷款金额为0元
account[accountNum].show();//调用显示账户信息函数
System.out.println("卡类型为:存储卡");
accountNum++;
j++;
return account[accountNum];
case 2:
account[accountNum] = new LoanCreditAccount(100000 + j, password, name,
personId, email, 0, 0, 5000); // 创建信用卡账户对象,多一个透资属性,初始透资金额为5000元
account[accountNum].show();//调用显示账户信息函数a
System.out.println("卡类型为: 信用卡");
accountNum++;
j++;
return account[accountNum];
}
return null;
}
// System.out.println("恭喜您,创建账号成功啦!!!" + "您的账号名为"+ account.getId() +
// "您的账户类型为" + type);
// return account;
// 登入函数
public Account enter() {
System.out.println("请输入您的银行卡号");
int id = sc.nextInt();
System.out.println("请输入您的密码");
String password = sc.next();
if (accountNum == 0) {
System.out.println("未注册账户,请先注册!");
this.openAccount();
this.mainView();
this.select();
}
boolean flag = false;
for (i = 0; i < accountNum; i++) {
if (id == account[i].getId() && password.equals(account[i].getPassword())) {//判断Id和输入的账户密码是否一致
flag = true;
break;
}
}
if (!flag) {
System.out.println("登入失败!!!");
}
if (flag) {
System.out.println("登入成功!!!!");
do {
System.out.println("请选择业务");
System.out.println("******1、存款*****************");
System.out.println("******2、取款*****************");
System.out.println("******3、贷款*****************");
System.out.println("******4、还款*****************");
System.out.println("******3、按任意键退出*************");
insert = sc.nextInt();
switch(insert) {
case 1 :
System.out.println("******请输入存款金额*****************");
int money = sc.nextInt();
account[i].withdraw(money);
break;
case 2: System.out.println("******请输入取款金额*****************");
money = sc.nextInt();
account[i].deposit(money);//调用取款方法
break;
case 3: judge();
break;
case 4: repay();
break;
}
} while(insert == 1 || insert == 2 || insert == 3 || insert == 4);
}
return account[i];
}
//存款方法
public void withdraw() {
System.out.println("请输入存款金额");
int money = sc.nextInt();
account[i].withdraw(money);
}
//取款方法
public void deposit() {
System.out.println("请输入取款金额");
int money = sc.nextInt();
account[i].deposit(200);
}
//计算银行余额总数方法
public void Accountsum() {
double savSum = 0;
for (int i = 0; i < accountNum; i++) {
savSum += account[i].getBalance();
}
}
//判断是LoanSavingAccount 类还是LoacCreditAccount
//贷款方法
public void judge() {
System.out.println("******请输入贷款金额*****************");
int money = sc.nextInt();
if (account[accountNum - 1] instanceof LoanSavingAccount) {
LoanSavingAccount a = (LoanSavingAccount) account[accountNum - 1];
a.requestLoan(money);
}else {
LoanCreditAccount b = (LoanCreditAccount) account[accountNum -1 ];
b.requestLoan(money);
System.out.println("成功调用了贷款方法");
}
}
//还款方法
public void repay() {
System.out.println("******请输入还款金额*****************");
int money = sc.nextInt();
if (account[accountNum - 1] instanceof LoanSavingAccount) {
// System.out.println("判断过了1");
LoanSavingAccount a = (LoanSavingAccount) account[accountNum - 1];
a.payLoan(money);
}else {
// System.out.println("判断过了2");
LoanCreditAccount b1 = (LoanCreditAccount) account[accountNum - 1];
b1.payLoan(money);
}
}
}
信用卡类
package Account;
public class CreditAccount extends Account { //信用卡
private double overdraft;//透资属性
public CreditAccount() {}
public CreditAccount(int id, String password, String name, String personId,String email, double balance, double ceiling, double overdraft) {
super(id,password,name, personId, email, balance, ceiling);
this.overdraft = overdraft;//多出一个透资属性
}
// public void withdraw(double money) {
// super.setBalance(super.getBalance() + money);
// System.out.println("你的卡号为" + super.getId() +"的卡,您已经存入" + money + "元,账户余额为" + super.getBalance() );
// }
public void deposit(double money) {//信用卡取款方法
if ((super.getBalance() + overdraft) >= money) {
super.setBalance(super.getBalance() - money) ;
System.out.println("您取了" + money + "钱,您的余额为" + super.getBalance());
}else System.out.println("对不起您的余额和透支额度不足!");
}
// @Override
// public void requestLoan() {
// // TODO Auto-generated method stub
//
// }
}
package Account;
public interface General {
void requestLoan(double money);//贷款方法
void payLoan(double money);//还款
// void getLoan();//获取用户总额
}
信用卡子类
package Account;
import java.util.Scanner;
public class LoanCreditAccount extends CreditAccount implements General {
Scanner sc = new Scanner(System.in);
public LoanCreditAccount(){}
public LoanCreditAccount(int id, String password, String name, String personId,String email, double balance, double ceiling,double overdraft) {
super(id, password, name, personId, email, balance, ceiling, overdraft);
}
public void requestLoan(double money) {//贷款方法
if ( 0 <= money&& money <= 10000) {//贷款上限为10000
System.out.println("贷款成功,您的贷款金额为: " + money);
System.out.println("您还能贷款的金额为: " + (10000 - money));
super.setCeiling(money);//把贷款的钱传给贷款属性
super.setBalance(super.getBalance() + money);//更新余额值
System.out.println("您现在的余额为: " + super.getBalance());
}else {
System.out.println("对不起您的额度不够,贷款失败!");
}
}
public void payLoan(double money) {//还款
//三个判断条件:1. 还款金额小于等于贷款金额 2.还款金额小于所剩余额 3.还款金额大于0
if (super.getBalance() >= money && money <= super.getCeiling() && money >= 0) {
super.setBalance(super.getBalance() - money); //更新余额
super.setCeiling(super.getCeiling() - money);
System.out.println(" 您现在的余额为" + super.getBalance());
if (super.getCeiling() ==0) {
System.out.println("您已经全部还清!!谢谢光临!!");
}else {
System.out.println("您已经还了" + money +"您还需要还" + super.getCeiling() );
}
}else {
System.out.println("对不起,您的账户余额不足或者输入的还款额度超出范围!");
}
}
public void getLoan() {//获取用户贷款总额
double savSum = 0;
};
}
package Account;
import java.util.Scanner;
import com_Day_7_11.SavingAccount;
//存储卡子类
public class LoanSavingAccount extends SavingAccount implements General{
Scanner sc = new Scanner(System.in);
public LoanSavingAccount(int id, String password, String name,
String personId, String email, double balance, double ceiling) {
super(id, password, name, personId, email, balance, ceiling);
}
public void requestLoan(double money) {//贷款方法
if ( 0 <= money&& money <= 10000) {//贷款上限为10000
System.out.println("贷款成功,您的贷款金额为: " + money);
System.out.println("您还能贷款的金额为: " + (10000 - money));
super.setCeiling(money);//把贷款的钱传给贷款属性
super.setBalance(super.getBalance() + money);//更新余额值
System.out.println("您现在的余额为: " + super.getBalance());
}else {
System.out.println("对不起您的额度不够,贷款失败!");
}
}
public void payLoan(double money) {//还款
//三个判断条件:1. 还款金额小于等于贷款金额 2.还款金额小于所剩余额 3.还款金额大于0
if (super.getBalance() >= money && money <= super.getCeiling() && money >= 0) {
super.setBalance(super.getBalance() - money); //更新余额
super.setCeiling(super.getCeiling() - money);
System.out.println(" 您现在的余额为" + super.getBalance());
if (super.getCeiling() ==0) {
System.out.println("您已经全部还清!!谢谢光临!!");
}else {
System.out.println("您已经还了" + money +"您还需要还" + super.getCeiling() );
}
}else {
System.out.println("对不起,您的账户余额不足或者输入的还款额度超出范围!");
}
}
}
主界面测试函数
package Account;
import java.util.Scanner;
public class Text {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Bank b = new Bank();
while (true) {
b.mainView();//调用界面函数
int select = sc.nextInt();
switch(select) {
case 1: b.openAccount();//创建账户
break;
case 2: b.enter();//登入
break;
default: System.out.println("选择业务异常,请重新选择");
break;
}
System.out.println("是否继续选择其他业务");
System.out.println("退出请按 0");
System.out.println("继续选择其他业务请按 1");
select = sc.nextInt();
if (select == 0) {
break;
}
}
}
}
更多学习资料请关注专题《管理系统开发》。
以上是 java实现简单银行管理系统 的全部内容, 来源链接: utcz.com/z/359401.html