📅  最后修改于: 2023-12-03 14:58:32.607000             🧑  作者: Mango
这是GATE-IT-2004考试中的一个编程题,题号为83。以下是对该题的介绍和解析。
给定一个银行账户的类Account
,要求实现以下方法:
public void withdraw(double amount) throws InsufficientFundsException;
public void deposit(double amount);
public double getBalance();
其中withdraw
方法用于从账户中提取指定金额的钱,但如果账户余额不足,就会抛出InsufficientFundsException
异常。deposit
方法用于向账户存款。getBalance
方法用于获取账户的当前余额。
你需要根据提供的类定义实现这些方法,并编写测试用例以验证其正确性。
要解决这个问题,我们需要创建一个Account
类,并实现所需要的方法。具体的解题思路如下:
balance
变量,用于存储账户余额。deposit
方法,将传入的金额加到balance
中。withdraw
方法,首先检查账户余额是否足够,如果足够则将提取的金额从balance
中减去,否则抛出InsufficientFundsException
异常。getBalance
方法,返回当前账户余额。以下是Java代码的示例实现:
public class Account {
private double balance;
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) throws InsufficientFundsException {
if (balance >= amount) {
balance -= amount;
} else {
throw new InsufficientFundsException("Insufficient funds");
}
}
public double getBalance() {
return balance;
}
}
为了验证代码的正确性,我们可以编写一些测试用例:
public class AccountTest {
@Test
public void testDeposit() {
Account account = new Account();
account.deposit(100);
assertEquals(100, account.getBalance(), 0.01);
}
@Test
public void testWithdrawSufficientFunds() throws InsufficientFundsException {
Account account = new Account();
account.deposit(100);
account.withdraw(50);
assertEquals(50, account.getBalance(), 0.01);
}
@Test(expected = InsufficientFundsException.class)
public void testWithdrawInsufficientFunds() throws InsufficientFundsException {
Account account = new Account();
account.deposit(100);
account.withdraw(150);
}
}
使用JUnit框架来运行这些测试用例,并确保所有的测试都能通过。
以上就是对于'门 | GATE-IT-2004 | 第83题'的介绍和解析。希望能对你理解和解决这道编程题提供一些帮助。