合肥生活安徽新闻合肥交通合肥房产生活服务合肥教育合肥招聘合肥旅游文化艺术合肥美食合肥地图合肥社保合肥医院企业服务合肥法律

program代做、Java程序语言代写

时间:2024-02-01  来源:合肥网hfw.cc  作者:hfw.cc 我要纠错



Interfaces & Abstract Classes
Bank Account
1.2  What to do
For this lab, you will design and implement the start of a banking solution for a neighborhood bank. There are two types of accounts the bank wants you to implement: one called SavingsAccount and one called CheckingAccount. Your interface and all classes must be in the bank package.
Both accounts can do the following:
Create a new account by specifying a “starter” amount of money to open it with. The starter amount must be greater than or equal to one cent.
Do this: Create a constructor that takes a single parameter (of type double) that represents the “starter amount” for the account. If the amount specified is negative OR the amount is less than one cent ($0.01), throw an IllegalArgumentException
Deposit into their account.
Do this: Create a method called deposit that takes a single parameter (of type double) that represents the amount deposited into the account. If the amount specified is negative, throw an IllegalArgumentException
Withdraw from their account. If the amount specified is greater than the balance available, this operation fails and returns false.
Do this: Create a method called withdraw that reduces the account balance by the amount specified. Return true if the transaction is successful, false otherwise. (Hint:  test for a variety of cases here, i.e. values > 0, 0 ...etc, what other cases may cause the withdraw transaction to fail)
Check their balance. 
Do this: Create a method getBalance that returns a double (the current account balance)
Non-customer behavior you must implement:
Bank administrators can perform monthly maintenance to assess monthly fees and give a “clean slate” for the subsequent month.
Do this: Create a performMonthlyMaintenance method to charge any fees and then reset transaction counters to zero.
Do this: Create a toString method that prints the account balance in dollars/cents format (e.g: $10.00). You may want to look up the documentation for the String.format method for this part, or use the DecimalFormat class if you wish.
 
You are required to use the IAccount interface as specified below.  Both types of accounts implement this interface, so that the bank can access either account through that common protocol. You will need to consider behavior variations as described below.
Behavior variations for a SavingsAccount withdraw() method: Savings accounts allow for 6 penalty-free withdrawal transactions per month. Savings accounts allow for an unlimited number of deposits per month.
Rules:
If the amount specified for the withdrawal is negative, the operation fails. If the number of withdrawals for the month is greater than 6, a transaction penalty of $14 is deducted from the account when monthly maintenance is performed
Behavior variations for a CheckingAccount performMonthlyMaintenance() method: A minimum balance of $100 must be maintained throughout the month to avoid fees
Rules:
If the checking balance falls below $100 at ANY time during the month (before maintenance is performed) an account maintenance fee of $5 is charged when the monthly maintenance is performed.
Notes
For each method you write:
Design the signature of the method.
Write Javadoc-style comments for that method.
Write the body for the method.
Write one or more tests that check that the method works as specified in all cases.
Avoid duplicating code as much as possible. You will likely want to use an abstract superclass and “push” common method code up to that class. Feel free to create private “helper” methods if you need to.
Be sure to use access modifiers, private, default (no keyword), protected, and public appropriately.
Include JavaDoc for your classes and constructors as appropriate. You do not need to repeat JavaDoc already existing in a superclass or interface when you override a method. (This is true for the course in general.)
Provide a UML class diagram for your solution.
Here is the IAccount interface. This is the "contract" your solution is agreeing to implement
/**
 * This interface represents a bank account. It is the super-type for
 * any other type of traditional financial account a bank might offer
 */

public interface IAccount {
  void deposit(double amount);
  boolean withdraw(double amount);
  double getBalance();
  void performMonthlyMaintenance();
}
如有需要,请加QQ:99515681 或WX:codehelp

扫一扫在手机打开当前页
  • 上一篇:COSC2276代做、C/C++语言程序代写
  • 下一篇:代做CSCI203、代写Python/c++编程语言
  • 无相关信息
    合肥生活资讯

    合肥图文信息
    海信罗马假日洗衣机亮相AWE  复古美学与现代科技完美结合
    海信罗马假日洗衣机亮相AWE 复古美学与现代
    合肥机场巴士4号线
    合肥机场巴士4号线
    合肥机场巴士3号线
    合肥机场巴士3号线
    合肥机场巴士2号线
    合肥机场巴士2号线
    合肥机场巴士1号线
    合肥机场巴士1号线
    合肥轨道交通线路图
    合肥轨道交通线路图
    合肥地铁5号线 运营时刻表
    合肥地铁5号线 运营时刻表
    合肥地铁4号线 运营时刻表
    合肥地铁4号线 运营时刻表
  • 关于我们 | 打赏支持 | 广告服务 | 联系我们 | 网站地图 | 免责声明 | 帮助中心 | 友情链接 |

    Copyright © 2020 hfw.cc Inc. All Rights Reserved. 合肥网 版权所有
    ICP备06013414号-3 公安备 42010502001045