实验题目三:
修改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());
}
}
}