通过java 代码来建立一个小型银行

首先 我写这个银行管理系统也是 通过建立类,在类与类之间调用数据的方法实现的,我这次的银行系统用到了三个类,分别是个人账户类,银行类,银行界面显示类,通过账户类的构造函数来实现数据在这三个类之间的调用,银行类实现数据的保存等等,具体代码如下,如果你需要看源文件 请到我的博客里面找到mytest_bank压缩包。

//账户类

package mybank;

import mybank.account;

public class account {
//账户子类
protected String name;
protected String accountid;////帐号
protected int number;//身份证号码
protected Double balance;//余额
protected String starttime;//开户时间

public account(String accountid){
// TODO Auto-generated constructor stub
this(accountid,null,null,0,0);
}
//构造方法
public account(String accountid,String name,String starttime,int number,double balance){

this.accountid = accountid;
this.name=name;
this.starttime=starttime;
this.number=number;
this.balance=balance;
}


//下面的这个方法至关重要,有了它就可以实现对象的添加删除,存款等等
// 实现了equals方法,list比较时才能正确
@Override
public boolean equals(Object obj) {
if(obj == null){
return false;
}
if(this == obj){
return true;
}
if(obj instanceof account){
return this.accountid.equals(((account)obj).accountid);
}
return false;
}







//存款
public void savemoney(double money){
if(money<=0){
System.out.println("存款金额必须大于0");
}
this.balance+=money;
System.out.println("存款成功");
}
//取款
public double getmoney(double money){
if(money>this.balance){
System.out.println("余额不足,取款失败");
return 0;
}
if(money<=this.balance){
this.balance-=money;
System.out.println("取款成功");
System.out.println("目前余额为"+this.balance);
return this.balance;
}
return this.balance;

}
public String toString() {
// TODO Auto-generated method stub
return "账户: " + accountid + " 姓名:" + name + " \n开户时间: "+starttime+" \n身份证号码: "+number+" \n余额: " + balance+"\n";
}

//存款
public void saveMoney(double money){
if(money <= 0){
System.out.println("存款金额必须大于0");
}
this.balance+= money;
System.out.println("存款成功");
}
public double getBalance(){
return this.balance;

}
//取款
public double getMoney(double money){
if(money <= 0){
System.out.println("取款金额必须大于0");
return 0;
}
if(this.balance <= money){
System.out.println("余额不足,无法取款");
return 0;
}
this.balance -= money;
System.out.println("取款成功");
return money;
}

}

//银行类

package mybank;


//import Account;
import mybank.account;
import mybank.Banks;

import java.util.Scanner;
public class Bank {
private static Banks banks = new Banks();
public static void main(String[] args) {
choose();
}
//选择方法
public static void choose(){
int x;
Scanner scanner=new Scanner(System.in);
System.out.println("1.开户");
Bank n1 = new Bank();
System.out.println("2.存款");
System.out.println("3.取款");
System.out.println("4.查询");
System.out.println("5.销户");
System.out.print("请输入你需要的服务编号:");
x=scanner.nextInt();
switch (x){
case 1:
n1.account();
break;
case 2:
n1.saveMoney();
break;
case 3:
n1.getmoney();
break;
case 4:
//banks.getAccount(2);
n1.showNowAccount();
break;
case 6:
banks.getAccountNum();
break;
case 5:
n1.delete();
break;
case 7:
banks.All();
break;
}
choose();
}

//account方法 开户方法
public void account() {
int balance=0;
Scanner scanner=new Scanner(System.in);

System.out.print("请输入储户姓名:");
String name=scanner.next();
System.out.print("请输入开户时间:");
String starttime = scanner.next();
System.out.print("请输入账号:");
String accountid=scanner.next();
System.out.print("请输入身份证号:");
int number=scanner.nextInt();
System.out.println("储户姓名:"+name+" "+
"账号:"+accountid+" "+
"身份证号:"+number+" "+
"余额:"+balance+" "+
"开户时间:"+starttime);

account person = new account(accountid,name,starttime, number,balance);
banks.addaccount(person);



}
//销户方法
public void delete(){
System.out.print("请输入你要销户的id:");
Scanner scanner = new Scanner(System.in);

String id=scanner.nextLine();
//account accountid=id;
banks.deleteaccount(id);

}

//显示所有账户
public static void showNowAccount(){

for (account account : banks.getAllAccount()) {
System.out.println(account);
}


}

//存款的方法
public static void saveMoney(){

Scanner input = new Scanner(System.in);
System.out.println("请输入要存款的账户:");
String accountId = input.nextLine();
if (banks.existAccount(accountId)) {
account addmoney = banks.getAccount(accountId);
System.out.println("请输入存款金额:");
double money = input.nextDouble();
addmoney.saveMoney(money);
System.out.println("当前余额:"+addmoney.getBalance());
}else {
System.out.println("该账户不存在,请重新输入:");
saveMoney();
}
//showNowAccount();

}

//取款的方法
public static void getmoney(){

Scanner input = new Scanner(System.in);
System.out.println("请输入要取款的账户:");
String accountId = input.nextLine();
if(banks.existAccount(accountId)){
account acc = banks.getAccount(accountId);
System.out.println("当前余额=" + acc.getBalance());
System.out.println("请输入取款金额:");
double money = input.nextDouble();
acc.getMoney(money);
System.out.println("取后余额=" + acc.getBalance());
}else {
System.out.println("该账户不存在,请重新输入:");
getmoney();
}
//openAccount();
}





}

 //银行界面显示类

package mybank;

 

import mybank.account;
import java.util.ArrayList;
import java.util.List;
public class Banks {
private List<account> account_list;// 这句话是什么意思

public Banks(){

//创建一个账户数组
account_list = new ArrayList<account>();//创建了一个数组对象 account_list
}

//添加账户
public void addaccount(account person){
if(account_list.contains(person)){ //方法返回true,当且仅当此字符串包含指定的char值序列
System.out.println("添加失败,此账户已存在!");
}else{
//将账户添加进账户数组
account_list.add(person);
System.out.println("账户添加成功!");
}
/*account_list.add(account);
System.out.println("添加成功");*/
}
//判断账户列表中是否已存在要修改的账户
public boolean existAccount(String accountId) {
account existaccount = new account(accountId);
return account_list.contains(existaccount);

}

//删除用户
public void deleteaccount(String accountid){
account delaccount = new account(accountid);//account_list = new ArrayList<Account>();
account_list.remove(delaccount);
if(account_list.contains(accountid)){
System.out.println("销户失败");
}else{
System.out.println("销户成功");
}
/* if(account_list.contains(accountid)){
if(account_list.remove(accountid)){
System.out.println("销户成功");
}else{
System.out.println("销户失败");
}
//account delaccount = new account(account);//account_list = new ArrayList<Account>();
//return account_list.remove(delaccount);

}else{
System.out.println("没有该用户");
}*/
/* if(account_list.contains(accountid)){
account deleteaccount = new account(accountid);//创建一个子类
account_list.remove(accountid);
if(account_list.contains(accountid)){
System.out.println("销户失败");
}else{
System.out.println("销户成功");
}
//System.out.println("销户成功");
}
*/
}


//获取账户总数
public void getAccountNum(){

System.out.println("目前有"+account_list.size()+"个用户");
//return account_list.size();

}

//获取某个账户
public account getAccount(String accountId){
account getaccount = new account(accountId);
return account_list.get(account_list.indexOf(getaccount));//Java中字符串中子串的查找共有四种方法,如下:
//1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
//2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
//3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
//4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

}
public List<account> getAllAccount(){

return account_list;

}
public void All(){

System.out.println("目前有"+account_list+"个用户");

}
}

posted @ 2017-10-04 17:30  fendou300  阅读(2271)  评论(0编辑  收藏  举报