📄 bankusst.java
字号:
import java.io.*;
import java.util.Vector;
import java.math.*;
abstract class Account{
private String type;
private double balance;
private int accountNum;
private Vector transactions=new Vector();
public Account(String i,double j,int k){
type=i;
balance=j;
accountNum=k;
}
public double getBalance(){
return balance;
}
public int getAccountNum(){
return accountNum;
}
public String getType(){
return type;
}
public void addTransaction(Transaction k){
transactions.addElement(k);
}
public void setBalance(double num){
balance=num;
}
public void deposit(double num){
balance=balance+num;
}
public abstract void withDrawal(double num);
public abstract void displayAccountDetails();
public void displayAccount(){
System.out.print("Account's info is... Type:"+type+" balance:"+balance+" accountNum:"+accountNum);
}
public void displayAllTransactions(){
for (int i=0;i<transactions.size();i++){
Transaction transactionFromVector=(Transaction)transactions.elementAt(i);
transactionFromVector.displayDetails();}
}
}
class CurrentAccount extends Account{
private int creditLimit;
public CurrentAccount(String i,double j,int k,int m){
super(i,j,k);
creditLimit=m;
}
public void displayAccountDetails(){
super.displayAccount();
System.out.println(" creditLimit:"+creditLimit);
}
public void withDrawal(double num){
if (super.getBalance()-num>=creditLimit){
super.setBalance(super.getBalance()-num);}
else {System.out.println("Warning, you can't get any more money...");}
}
}
class SavingAccount extends Account{
private double interestRate;
public SavingAccount(String i,double j,int k,double m){
super(i,j,k);
interestRate=m;
}
public void displayAccountDetails(){
super.displayAccount();
System.out.println(" interestRate:"+interestRate+" you got "+calInterestRate()+" interest");
}
public double calInterestRate(){
double result;
result=super.getBalance()*this.interestRate;
return result;
}
public void withDrawal(double num){
if (super.getBalance()-num>=0){
super.setBalance(super.getBalance()-num);}
else {System.out.println("Sorry, not enough money in your account...");}
}
}
class Customer{
private String name;
private String address;
private Vector Accounts=new Vector();
public Customer(String i,String j){
name=i;
address=j;
}
public void addAccount(Account k){
Accounts.addElement(k);
}
public void displayAll(){
System.out.println("Customer info is... name:"+name+" address:"+address);
for (int i=0;i<Accounts.size();i++){
Account accountFromVector=(Account)Accounts.elementAt(i);
accountFromVector.displayAccountDetails();
}
}
}
abstract class Transaction{
private Account belongAccount;
private Customer customerShow;
private double money;
private String type;
public Transaction(Account k,double num,Customer j,String m){
belongAccount=k;
money=num;
customerShow=j;
type=m;
}
public void displayDetails(){
System.out.println("The operation's imformation is... Type:"+type+" num:"+money+" belongs to:"+this.belongAccount.getAccountNum());
}
}
class depositTransaction extends Transaction{
public depositTransaction(Account k,double num,Customer j){
super(k,num,j,"deposit");
k.deposit(num);
}
}
class withDrawalTransaction extends Transaction{
public withDrawalTransaction(Account k,double num,Customer j){
super(k,num,j,"withDrawal");
k.withDrawal(num);
}
}
public class BankUsst{
public static void main(String args[]){
Vector customers=new Vector();
int accountTest=1;
Customer cust1=null;
Customer cust2=null;
Customer cust3=null;
Account ac1=null;
Transaction ta1=null;
Transaction ta2=null;
cust1=new Customer("jocund","shanghai");
cust2=new Customer("ray","beijing");
cust3=new Customer("malloc","hubei");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
int choice=(int)(Math.random()*10000)%3+1;;
switch (choice){
case 1:for (int j=0;j<3;j++){
int secondChoice=(int)(Math.random()*10000)%2+1;
if (secondChoice==1){
ac1=new CurrentAccount("Current",0.0,accountTest,-100);accountTest++;}
else if(secondChoice==2){
ac1=new SavingAccount("Saving",0.0,accountTest,0.02);accountTest++;}
cust1.addAccount(ac1);
ac1.displayAccountDetails();
for (int i=0;i<5;i++){
ta1=new depositTransaction(ac1,100,cust1);
ac1.addTransaction(ta1);
ac1.displayAccountDetails();}
for (int i=0;i<3;i++){
ta2=new withDrawalTransaction(ac1,50,cust1);
ac1.addTransaction(ta2);
ac1.displayAccountDetails();}
ac1.displayAllTransactions();
}//end for
cust1.displayAll();
break;
case 2:for (int j=0;j<3;j++){
int secondChoice=(int)(Math.random()*10000)%2+1;
if (secondChoice==1){
ac1=new CurrentAccount("Current",0.0,accountTest,-100);accountTest++;}
else if(secondChoice==2){
ac1=new SavingAccount("Saving",0.0,accountTest,0.02);accountTest++;}
cust2.addAccount(ac1);
ac1.displayAccountDetails();
for (int i=0;i<5;i++){
ta1=new depositTransaction(ac1,100,cust2);
ac1.addTransaction(ta1);
ac1.displayAccountDetails();}
for (int i=0;i<3;i++){
ta2=new withDrawalTransaction(ac1,50,cust2);
ac1.addTransaction(ta2);
ac1.displayAccountDetails();}
ac1.displayAllTransactions();
}//end for
cust2.displayAll();
break;
case 3:for (int j=0;j<3;j++){
int secondChoice=(int)(Math.random()*10000)%2+1;
if (secondChoice==1){
ac1=new CurrentAccount("Current",0.0,accountTest,-100);accountTest++;}
else if(secondChoice==2){
ac1=new SavingAccount("Saving",0.0,accountTest,0.02);accountTest++;}
cust3.addAccount(ac1);
ac1.displayAccountDetails();
for (int i=0;i<5;i++){
ta1=new depositTransaction(ac1,100,cust3);
ac1.addTransaction(ta1);
ac1.displayAccountDetails();}
for (int i=0;i<3;i++){
ta2=new withDrawalTransaction(ac1,50,cust3);
ac1.addTransaction(ta2);
ac1.displayAccountDetails();}
ac1.displayAllTransactions();
}//end for
cust3.displayAll();
break;
}//end switch
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -