Bank项目实战演练(又两个接6月20).

实验题目三:

修改withdraw方法返回一个boolean值,指示交易是否成功。

实验目的:

          使用有返回值的方法。

提示:

1、修改Account类

a、修改deposi方法返回他true(意味着所有存款是成功的)。

b、修改withdraw方法来检查提款数目是否大于余额。如果amt小于balance,则从余额中扣除提款数目并返回true;否则余额不变返回false。

2、在exericise3主目录编译并运行TestBanking程序,将看到下列输出:

程序代码实现:

(1)、包banking3中的Account类:

package banking3;



public class Account {

    public double balance;         //账户余额


    public Account(double init_balance) {

        balance=init_balance;

    }

    public double getBalance() {

        return balance;

    }
   
    //存钱

    public boolean deposit(double amt) {

        balance+=amt;

        return true;

    }

    //取钱

    public boolean withdraw(double amt) {

        if(balance>=amt) {

            balance-=amt;

            return true;

        }else {

            System.out.println("余额不足!");

            return false;      //或者return false;写在else的外边。

        }

    }

}

(2)、包banking3中的Customer类:

package banking3;



public class Customer {

    private String firstName;

    private String lastName;

    private Account account;

    public Customer(String f,String l) {

        firstName=f;

        lastName=l;

    }

    public String getFirstName() {

        return firstName;

    }

    public String getLastName() {

        return lastName;

    }

    public void setAccount(Account acct) {

        account=acct;

    }

    public Account getAccount() {

        return account;

    }

}

(3)、包testbanking中的TestBanking3类:

package testbanking;



import banking3.Account;

import banking3.Customer;



public class TestBanking3 {

    public static void main(String[] args) {

        Customer customer;

        Account account;

       

        //创建构造器;如果不创建,则以后的customer和account会出错。

        customer=new Customer("杨","廷帅");

        account=new Account(500.00);

               

        //Create an account that can has a 500.00 balance

        System.out.println("Creating the customer 杨廷帅");

        //code

        customer.setAccount(account);

       

        account=customer.getAccount();

        System.out.println("Creating her account with a 500.00 balance");

       

        //code

        //Perform some account transactions

        System.out.println("Withdraw 150.00:"+account.withdraw(150.00));

        System.out.println("Deposit 22.50:"+account.deposit(22.50));

        System.out.println("Withdraw 47.62:"+account.withdraw(47.62));

        System.out.println("Withdraw 400.00:"+account.withdraw(400.00));

       

        //Print out the final account balance

        System.out.println("Customer ["+customer.getLastName()+","+customer.getFirstName()+"] has a balance of:"+account.getBalance());

    }

}

实验题目四:

将用数组实现银行与客户间的多重关系。

实验目的:

在类中使用数组作为模拟集合操作。

提示:

1、对银行来说,可添加Bank类。Bank对象跟踪自身与其客户间的的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

       a 、创建Bank类

       b、为Bank类增加两个属性:customers(Customer对象的数组)和numberOfCustomers(整数,跟踪下一个customers数组索引)

       c、添加公有构造器,以合适的最大尺寸(至少大于5)初始化customers数组。

       d、添加addCustomer方法。该方法必须依照(姓,名)构造一个新的Customer对象e、然后把它放到customer数组中。还必须把numberofCustomers属性的值加1。

2、添加getNumOfCustomers访问方法,它返回numberofCustomer属性

(1)、banking4包中的Account类:

package banking4;



public class Account {

    public double balance;         //账户余额

   

    public Account(double init_balance) {     //构造函数

        balance=init_balance;

    }

    public double getBalance() {

        return balance;

    }

   

    //存钱

    public boolean deposit(double amt) {

        balance+=amt;

        return true;

    }

    //取钱

    public boolean withdraw(double amt) {

        if(balance>=amt) {

            balance-=amt;

            return true;

        }else {

            System.out.println("余额不足!");

            return false;      //或者return false;写在else的外边。

        }

    }

}

(2)、banking4包中的Customer类:

package banking4;



public class Customer {

    private String firstName;

    private String lastName;

    private Account account;

    public Customer(String f,String l) {

        firstName=f;

        lastName=l;

    }

    public String getFirstName() {

        return firstName;

    }

    public String getLastName() {

        return lastName;

    }

    public void setAccount(Account acct) {

        account=acct;

    }

    public Account getAccount() {

        return account;

    }

}

(3)、包banking4中的Bank类:

package banking4;



public class Bank {

   

    private Customer[] customers;  //用于来存放一个银行中的客户。

    private int numberOfCustomers; //记录Customer的个数

   

    public Bank() {

        customers=new Customer[5]; //构造器(构造一个有五位客户的银行,五位客户放在Customer数组中)

    }

    //添加Customer(客户)到Customer数组中

    public void addCustomer(String f,String l) {  //添加Customer方法

        Customer cust=new Customer(f,l);  //依照(姓,名)为参数构造一个新的Customer对象。

        customers[numberOfCustomers]=cust; //把构造出的新的Customer对象放到上边定义的Customer数组中。

        numberOfCustomers++;

    }

    //获取customer的个数

    public int getNumOfCustomers() {

        return numberOfCustomers;

    }

    //返回指定索引位置的Customer,Customer中输出的是姓和名。

    public Customer getCustomer(int index) {

        return customers[index];

    }

}

 (4)、包testbanking中的TestBanking4类:

package testbanking;



import banking4.Bank;

import banking4.Customer;



public class TestBanking4 {

    public static void main(String[] args) {

        Bank bank=new Bank();

       

        //Add Customer Jane,Simms

        bank.addCustomer("Jane","Simms");

        //code

        //Add Customer Owen,Bryant

        bank.addCustomer("Owen","Bryant");

        //code

        //Add Customer Tim,Soley

        bank.addCustomer("Tim","Soley");

        //code

        //Add Customer Maria,Soley

        bank.addCustomer("Maria","Soley");

        //code

        for(int i=0;i<bank.getNumOfCustomers();i++) {

            Customer customer=bank.getCustomer(i);

            System.out.println("Customer ["+(i+1)+"] is "+customer.getLastName()+","+customer.getFirstName());

        }

    }

}

 

猜你喜欢

转载自blog.csdn.net/qq_39044046/article/details/93156803