Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Opened: 867 дена
- Систем за банкарско работење Problem 2 (3 / 29)
- Треба да се креира апликација за банка која ќе управа со сметките на повеќе корисниците и ќе врши трансакции помеѓу нив. Банката работи само со долари и притоа сите суми на пари се претставуваат како стрингови со знакот $ на крај, и точка помеѓу бројот на центи и бројот на долари без празни места. Бројот на центи треба да се состои од две цифри без разлика на износот. Пример: 10 долари 10.00$ 15 долари и 50 центи 15.50$
- За потребите на ваквата апликација треба да се напишат класите Account,Transaction и Bank. Класата Account претставува една сметка на еден корисник и треба да ги чува следните податоци: Име на корисникот, единствен идентификационен број и тековното салдо на сметката. Оваа класа исто така треба да ги имплементира и следниве методи
- Account(String user_name,String initial_balance) – конструктор со параметри (id-то треба да го генерирате сами)
- getBalance():String
- getUserName():String
- getID():long
- setBalance(String balance)
- toString():String – враќа стринг во следниот формат, \n означува нов ред Name:Andrej Gajduk\n Balance:20.00$\n
- Класата Transaction претставува трансакција (префрлување пари од една на друга сметка), од страна на банката за што честопати се наплаќа провизија. За почеток треба да се напише класата Transaction со податочни членови за идентификационите броеви на две сметки, едната од која се одземаат парите и друга на која се додаваат парите, текстуален опис и износ на трансакцијата За оваа класа треба да ги имплементирате методите:
- Transaction(long from_id, long to_id,Stirng descr,String amount) – конструктор со параметри
- getAmount():String
- getFromAccountID():long
- getToAccountID():long
- toString():String – враќа текстулана репрезентација во следниот формат, Amount:50.00$\n Provision:10.00$\n Description:Sample descr\n From:513\n To:843\n
- Оваа класа треба да е immutable, можете и да ја направите апстрактна бидејќи не е наменета директно да се користи туку само како основна класа за изведување на други класи.
- Како што споменавме претходно банката наплаќа провизија за одредени трансакции. Има два типа на провизија, фискна сума и фиксен процент. Кај фиксна сума за било која трансакција без разлика на износот на трансакцијата се наплаќа исто провизија (пример 10$). Кај фиксниот процент за секој еден долар од трансакцијата банката наплаќа одреден процент провизија (на пример 5%, или 5 центи на секој долар – процентите секогаш се целобројни и провизија се наплаќа само на цели долари).
- За да се прави разлика меѓу различните типови на провизија, треба да напишете уште две класи кои ќе наследуваат од Transaction кои треба да ги именувате FlatAmountProvisionTransaction и FlatPercentProvisionTransaction.
- Првата класа FlatAmountProvisionTransaction треба да содржи соодветен конструктор
- FlatAmountProvisionTransaction(long from_id, long to_id,String amount, String flat_amount_provision) кој го иницијализира полето за опис на "FlatAmount" и соодветен get метод
- getFlatAmount():String
- Слично и класата FlatPercentProvisionTransaction треба да има соодветен конструктор
- FlatPercentProvisionTransaction (long from_id, long to_id,String amount, int cents_per_dolar) кој го иницијализира полето за опис на "FlatPercent" и соодветен get метод
- getPercent():int
- Исто така треба да се преоптовари equals(Object o):boolean методот и за двете класи.
- За крај треба да ја имплементирате класата Bank која ги чува сметките од своите корисници и дополнително врши трансакции. Класата освен сметките на своите корисници, треба да ги чува и сопственото име и вкупната сума на трансфери како и вкупната наплатена провизија од страна на банката за сите трансакции.
- Класата Bank треба да ги нуди следните методи:
- Bank(String name,Account accounts[]) – конструктор со соодветните параметри
- makeTransaction(Transaction t):boolean – врши проверка дали корисникот ги има потребните средства на сметка и дали и двете сметки на кои се однесува трансакцијата се нависитина во банката и доколку и двата услови се исполнето ја извршува трансакцијата и враќа true, во спротивно враќа false
- totalTransfers():String – ја дава вкупната сума на пари кои се префрлени во сите трансакции до сега
- totalProvision():String – ја дава вкупната провизија наплатена од банката за сите извршени трансакции до сега
- toString():String - го враќа името на банката во посебна линија во формат
- Name:Banka na RM\n \n по што следат податоците за сите корисници одделени со еден празен ред
- Провизијата се наплаќа така што на основната сума на трансакцијата се додава вредноста не провизијата и таа сума се одзема од првата сметка.
- За сите класи да се напишат соодветни equals и hashCode методи.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement