Advertisement
Guest User

Assignment 4: Dashboard Comparable

a guest
Feb 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.79 KB | None | 0 0
  1. public class Dashboard implements Comparable
  2. {
  3.  
  4. private int odometer;
  5. private int speedometer;
  6. private boolean checkEngine;
  7.  
  8. public Dashboard()
  9. {
  10. odometer = 0;
  11. speedometer = 0;
  12. checkEngine = false;
  13. }
  14. public Dashboard(int milesTravelled, int speed)
  15. {
  16. boolean checkMiles = false;
  17. boolean checkSpeed = false;
  18.  
  19. if(milesTravelled >= 0 && milesTravelled <= 99999)
  20. {
  21. odometer = milesTravelled;
  22. checkMiles = true;
  23. }
  24. else
  25. {
  26. odometer = 0;
  27. }
  28.  
  29. if(speed >= 0 && speed <= 100)
  30. {
  31. speedometer = speed;
  32. checkSpeed = true;
  33. }
  34. else
  35. {
  36. speedometer = 0;
  37. }
  38.  
  39. if(checkMiles == true && checkSpeed == true)
  40. {
  41. checkEngine = false;
  42. }
  43. else
  44. {
  45. checkEngine = true;
  46. }
  47.  
  48. }
  49.  
  50. public void accelerate()
  51. {
  52. this.speedometer++;
  53. if(this.speedometer > 100)
  54. {
  55. this.speedometer = 0;
  56. this.checkEngine = true;
  57. }
  58. }
  59. public void drive(int numMinutes)
  60. {
  61. double mph = (double)this.speedometer/60;
  62. double totalMiles = mph * numMinutes;
  63. this.odometer += (int)totalMiles;
  64. if(this.odometer > 99999)
  65. {
  66. this.odometer = 0;
  67. this.checkEngine = true;
  68. }
  69.  
  70. }
  71.  
  72.  
  73. public String toString() {
  74. String ret = "Speedometer: " + speedometer + " MPH";
  75. ret += "\nOdometer: " + String.format("%05d", odometer);
  76. if(checkEngine) {
  77. ret += "\nCheck Engine: On";
  78. } else {
  79. ret += "\nCheck Engine: Off";
  80. }
  81. return ret;
  82. }
  83.  
  84.  
  85. public int compareTo(Object other)
  86. {
  87. Dashboard temp = (Dashboard) other;
  88. int prt = 0;
  89.  
  90. if(this.odometer < temp.odometer)
  91. {
  92. prt = -1;
  93. }
  94. else if(this.odometer > temp.odometer)
  95. {
  96. prt = 1;
  97. }
  98. else if(this.odometer == temp.odometer)
  99. {
  100. if(this.speedometer < temp.speedometer)
  101. {
  102. prt = -1;
  103. }
  104. else if(this.speedometer > temp.speedometer)
  105. {
  106. prt = 1;
  107. }
  108. else if(this.speedometer == temp.speedometer)
  109. {
  110. if(this.checkEngine == false && temp.checkEngine == true)
  111. {
  112. prt = -1;
  113. }
  114. else if(this.checkEngine == true && temp.checkEngine == false)
  115. {
  116. prt = 1;
  117. }
  118. else if(this.checkEngine == true && temp.checkEngine == true)
  119. {
  120. prt = 0;
  121. }
  122. }
  123. }
  124.  
  125. return prt;
  126. }
  127.  
  128.  
  129. public String race(Dashboard other, int acc1, int acc2)
  130. {
  131. Dashboard temp2 = (Dashboard)other;
  132. String prt = "";
  133. int a = acc1;
  134. int b = acc2;
  135.  
  136. for(int c = 0; c < acc1; c++)
  137. {
  138. this.accelerate();
  139. }
  140. for(int d = 0; d < acc2; d++)
  141. {
  142. temp2.accelerate();
  143. }
  144.  
  145. if(this.checkEngine == true && temp2.checkEngine == false)
  146. {
  147. prt = "First car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 2 has won the race!";
  148. }
  149.  
  150. else if(this.checkEngine == false && temp2.checkEngine == true)
  151. {
  152. prt = "Second car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 1 has won the race!";
  153. }
  154.  
  155. else if(this.checkEngine == false && temp2.checkEngine == false)
  156. {
  157. if(this.speedometer > temp2.speedometer)
  158. {
  159. prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nCar 1 has won the race!";
  160. }
  161. else if(this.speedometer == temp2.speedometer)
  162. {
  163. prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nIt's a tie!";
  164. }
  165. else if(this.speedometer < temp2.speedometer)
  166. {
  167. prt = "\n" + this.toString() + "\n\n" + temp2.toString() + "\nCar 2 has won the race!";
  168. }
  169. }
  170. else if(this.checkEngine == true && temp2.checkEngine == true)
  171. {
  172. prt = "First car stalled out! \nSecond car stalled out!\n\n" + this.toString() + "\n\n" + temp2.toString() + "\n\nIt's a tie!";
  173. }
  174.  
  175. return prt;
  176. }
  177.  
  178.  
  179. public String difference(Dashboard other)
  180. {
  181. Dashboard temp3 = (Dashboard) other;
  182. String prt = "";
  183. int time = 0;
  184. double difference = Math.abs(this.odometer - temp3.odometer);
  185.  
  186. if(this.odometer > temp3.odometer)
  187. {
  188. return "Second car will need to drive for " + (int)((double)difference / ((double)temp3.speedometer / 60)) + " minutes to catch first car.";
  189. } else {
  190. return "First car will need to drive for " + (int)((double)difference / ((double)this.speedometer / 60)) + " minutes to catch second car.";
  191. }
  192. }
  193.  
  194.  
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement