Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.43 KB | None | 0 0
  1. Opened: 867 дена
  2. Систем за банкарско работење Problem 2 (3 / 29)
  3. Треба да се креира апликација за банка која ќе управа со сметките на повеќе корисниците и ќе врши трансакции помеѓу нив. Банката работи само со долари и притоа сите суми на пари се претставуваат како стрингови со знакот $ на крај, и точка помеѓу бројот на центи и бројот на долари без празни места. Бројот на центи треба да се состои од две цифри без разлика на износот. Пример: 10 долари 10.00$ 15 долари и 50 центи 15.50$
  4. За потребите на ваквата апликација треба да се напишат класите Account,Transaction и Bank. Класата Account претставува една сметка на еден корисник и треба да ги чува следните податоци: Име на корисникот, единствен идентификационен број и тековното салдо на сметката. Оваа класа исто така треба да ги имплементира и следниве методи
  5.  
  6. Account(String user_name,String initial_balance) – конструктор со параметри (id-то треба да го генерирате сами)
  7. getBalance():String
  8. getUserName():String
  9. getID():long
  10. setBalance(String balance)
  11. toString():String – враќа стринг во следниот формат, \n означува нов ред Name:Andrej Gajduk\n Balance:20.00$\n
  12. Класата Transaction претставува трансакција (префрлување пари од една на друга сметка), од страна на банката за што честопати се наплаќа провизија. За почеток треба да се напише класата Transaction со податочни членови за идентификационите броеви на две сметки, едната од која се одземаат парите и друга на која се додаваат парите, текстуален опис и износ на трансакцијата За оваа класа треба да ги имплементирате методите:
  13.  
  14. Transaction(long from_id, long to_id,Stirng descr,String amount) – конструктор со параметри
  15. getAmount():String
  16. getFromAccountID():long
  17. getToAccountID():long
  18. toString():String – враќа текстулана репрезентација во следниот формат, Amount:50.00$\n Provision:10.00$\n Description:Sample descr\n From:513\n To:843\n
  19. Оваа класа треба да е immutable, можете и да ја направите апстрактна бидејќи не е наменета директно да се користи туку само како основна класа за изведување на други класи.
  20.  
  21. Како што споменавме претходно банката наплаќа провизија за одредени трансакции. Има два типа на провизија, фискна сума и фиксен процент. Кај фиксна сума за било која трансакција без разлика на износот на трансакцијата се наплаќа исто провизија (пример 10$). Кај фиксниот процент за секој еден долар од трансакцијата банката наплаќа одреден процент провизија (на пример 5%, или 5 центи на секој долар – процентите секогаш се целобројни и провизија се наплаќа само на цели долари).
  22.  
  23. За да се прави разлика меѓу различните типови на провизија, треба да напишете уште две класи кои ќе наследуваат од Transaction кои треба да ги именувате FlatAmountProvisionTransaction и FlatPercentProvisionTransaction.
  24.  
  25. Првата класа FlatAmountProvisionTransaction треба да содржи соодветен конструктор
  26.  
  27. FlatAmountProvisionTransaction(long from_id, long to_id,String amount, String flat_amount_provision) кој го иницијализира полето за опис на "FlatAmount" и соодветен get метод
  28. getFlatAmount():String
  29. Слично и класата FlatPercentProvisionTransaction треба да има соодветен конструктор
  30.  
  31. FlatPercentProvisionTransaction (long from_id, long to_id,String amount, int cents_per_dolar) кој го иницијализира полето за опис на "FlatPercent" и соодветен get метод
  32. getPercent():int
  33. Исто така треба да се преоптовари equals(Object o):boolean методот и за двете класи.
  34.  
  35. За крај треба да ја имплементирате класата Bank која ги чува сметките од своите корисници и дополнително врши трансакции. Класата освен сметките на своите корисници, треба да ги чува и сопственото име и вкупната сума на трансфери како и вкупната наплатена провизија од страна на банката за сите трансакции.
  36.  
  37. Класата Bank треба да ги нуди следните методи:
  38.  
  39. Bank(String name,Account accounts[]) – конструктор со соодветните параметри
  40. makeTransaction(Transaction t):boolean – врши проверка дали корисникот ги има потребните средства на сметка и дали и двете сметки на кои се однесува трансакцијата се нависитина во банката и доколку и двата услови се исполнето ја извршува трансакцијата и враќа true, во спротивно враќа false
  41. totalTransfers():String – ја дава вкупната сума на пари кои се префрлени во сите трансакции до сега
  42. totalProvision():String – ја дава вкупната провизија наплатена од банката за сите извршени трансакции до сега
  43. toString():String - го враќа името на банката во посебна линија во формат
  44.  
  45. Name:Banka na RM\n \n по што следат податоците за сите корисници одделени со еден празен ред
  46.  
  47. Провизијата се наплаќа така што на основната сума на трансакцијата се додава вредноста не провизијата и таа сума се одзема од првата сметка.
  48.  
  49. За сите класи да се напишат соодветни equals и hashCode методи.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement