Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. package tkp.fe.uni_lj.si;
  2.  
  3. public class Kalkulator {
  4.  
  5. private Stanje stanje = Stanje.ST1;
  6.  
  7. private enum Stanje {
  8. ST1, ST2, OP
  9. }
  10.  
  11. private float prvoStevilo, drugoStevilo;
  12. private String operator;
  13. private String vhodniSignal, izhodniSignal;
  14.  
  15. private static final String NAPAKA = "napaka";
  16. private static final String RESET = "reset";
  17. private static final String BREZ_ODGOVORA = "";
  18.  
  19. private static long TRAJANJE_CASOVNIKA_V_MS = 10000;
  20. private static long casZadnjegaSignalaVms = -1;
  21.  
  22. public String obravnavaj(String vhod) {
  23.  
  24. vhodniSignal = vhod;
  25. izvediPrehod();
  26. return izhodniSignal;
  27. }
  28.  
  29. private void izvediPrehod() {
  30.  
  31. // preverjanje casovnika?
  32. if(!seJeCasovnikIztekel()) {
  33. switch(stanje) {
  34. case ST1:
  35. prehodIzST1();
  36. break;
  37. case OP:
  38. prehodIzOP();
  39. break;
  40. case ST2:
  41. prehodIzST2();
  42. break;
  43. }
  44. }else {
  45. reset();
  46. }
  47.  
  48. casZadnjegaSignalaVms = System.currentTimeMillis();
  49. }
  50.  
  51. private boolean seJeCasovnikIztekel() {
  52. if(casZadnjegaSignalaVms!=-1 && System.currentTimeMillis() - casZadnjegaSignalaVms > TRAJANJE_CASOVNIKA_V_MS) {
  53. return true;
  54. }
  55. else {
  56. return false;
  57. }
  58. }
  59.  
  60.  
  61. private void prehodIzST1(){
  62. if(Orodja.jeSignalStevilo(vhodniSignal)) {
  63. prvoStevilo = Float.parseFloat(vhodniSignal);
  64. stanje = Stanje.OP;
  65. izhodniSignal=BREZ_ODGOVORA;
  66. }else {
  67. izhodniSignal=NAPAKA;
  68. }
  69. }
  70.  
  71. private void prehodIzOP(){
  72. if(Orodja.jeSignalOperator(vhodniSignal)) {
  73. operator = vhodniSignal;
  74. stanje = Stanje.ST2;
  75. izhodniSignal=BREZ_ODGOVORA;
  76. }else {
  77. izhodniSignal=NAPAKA;
  78. }
  79. }
  80.  
  81. private void prehodIzST2(){
  82. if(Orodja.jeSignalStevilo(vhodniSignal)) {
  83. drugoStevilo = Float.parseFloat(vhodniSignal);
  84. stanje = Stanje.ST1;
  85. izhodniSignal=Orodja.izracunaj(prvoStevilo, drugoStevilo, operator);
  86. }else {
  87. izhodniSignal=NAPAKA;
  88. }
  89. }
  90.  
  91. private void reset() {
  92. stanje = Stanje.ST1;
  93. izhodniSignal = RESET;
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement