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;//常量控制开户账号每次+1Scanner 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();//调用显示账户信息函数aSystem.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) {//贷款上限为10000System.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.还款金额大于0if (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) {//贷款上限为10000System.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.还款金额大于0if (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简单的银行管理系统
账户类
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;//常量控制开户账号每次+1Scanner 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();//调用显示账户信息函数aSystem.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) {//贷款上限为10000System.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.还款金额大于0if (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) {//贷款上限为10000System.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.还款金额大于0if (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;}}}}